CernVM-FS  2.12.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ScrubbingPipeline Class Reference

#include <pipeline.h>

Inheritance diagram for ScrubbingPipeline:
Collaboration diagram for ScrubbingPipeline:

Public Member Functions

 ScrubbingPipeline ()
 
 ~ScrubbingPipeline ()
 
void Spawn ()
 
void Process (IngestionSource *source, shash::Algorithms hash_algorithm, shash::Suffix hash_suffix)
 
void WaitFor ()
 
void OnFileProcessed (const ScrubbingResult &scrubbing_result)
 
- Public Member Functions inherited from Observable< ScrubbingResult >
virtual ~Observable ()
 
CallbackPtr RegisterListener (typename BoundClosure< ScrubbingResult, DelegateT, ClosureDataT >::CallbackMethod method, DelegateT *delegate, ClosureDataT data)
 
CallbackPtr RegisterListener (typename BoundCallback< ScrubbingResult, DelegateT >::CallbackMethod method, DelegateT *delegate)
 
CallbackPtr RegisterListener (typename Callback< ScrubbingResult >::CallbackFunction fn)
 
void UnregisterListener (CallbackPtr callback_object)
 
void UnregisterListeners ()
 

Private Attributes

bool spawned_
 
Tube< FileItemtube_input_
 
Tube< FileItemtube_counter_
 
TubeConsumerGroup< FileItemtasks_read_
 
TubeGroup< BlockItemtubes_chunk_
 
TubeConsumerGroup< BlockItemtasks_chunk_
 
TubeGroup< BlockItemtubes_hash_
 
TubeConsumerGroup< BlockItemtasks_hash_
 
TubeGroup< BlockItemtubes_scrubbing_callback_
 
TubeConsumerGroup< BlockItemtasks_scrubbing_callback_
 
ItemAllocator item_allocator_
 

Static Private Attributes

static const uint64_t kMemLowWatermark = 384 * 1024 * 1024
 
static const uint64_t kMemHighWatermark = 512 * 1024 * 1024
 
static const unsigned kMaxFilesInFlight = 8000
 
static const unsigned kNforkScrubbingCallback = 1
 
static const unsigned kNforkHash = 2
 
static const unsigned kNforkChunk = 1
 
static const unsigned kNforkRead = 8
 

Additional Inherited Members

- Public Types inherited from Observable< ScrubbingResult >
typedef Callbackable
< ScrubbingResult >
::CallbackTN
CallbackPtr
 
- Public Types inherited from Callbackable< ScrubbingResult >
typedef CallbackBase
< ScrubbingResult
CallbackTN
 
- Static Public Member Functions inherited from Callbackable< ScrubbingResult >
static CallbackTNMakeClosure (typename BoundClosure< ScrubbingResult, DelegateT, ClosureDataT >::CallbackMethod method, DelegateT *delegate, const ClosureDataT &closure_data)
 
static CallbackTNMakeCallback (typename BoundCallback< ScrubbingResult, DelegateT >::CallbackMethod method, DelegateT *delegate)
 
static CallbackTNMakeCallback (typename Callback< ScrubbingResult >::CallbackFunction function)
 
- Protected Types inherited from Observable< ScrubbingResult >
typedef std::set< CallbackPtrCallbacks
 
- Protected Member Functions inherited from Observable< ScrubbingResult >
void RegisterListener (CallbackPtr callback_object)
 
 Observable ()
 
void NotifyListeners (const ScrubbingResult &parameter)
 

Detailed Description

Definition at line 120 of file pipeline.h.

Constructor & Destructor Documentation

ScrubbingPipeline::ScrubbingPipeline ( )

Definition at line 192 of file pipeline.cc.

Here is the call graph for this function:

ScrubbingPipeline::~ScrubbingPipeline ( )

Definition at line 232 of file pipeline.cc.

Here is the call graph for this function:

Member Function Documentation

void ScrubbingPipeline::OnFileProcessed ( const ScrubbingResult scrubbing_result)

Definition at line 242 of file pipeline.cc.

Referenced by ScrubbingPipeline().

Here is the call graph for this function:

Here is the caller graph for this function:

void ScrubbingPipeline::Process ( IngestionSource source,
shash::Algorithms  hash_algorithm,
shash::Suffix  hash_suffix 
)

Definition at line 249 of file pipeline.cc.

Referenced by swissknife::CommandScrub::FileCallback().

Here is the call graph for this function:

Here is the caller graph for this function:

void ScrubbingPipeline::Spawn ( )

Definition at line 267 of file pipeline.cc.

Referenced by swissknife::CommandScrub::Main().

Here is the call graph for this function:

Here is the caller graph for this function:

void ScrubbingPipeline::WaitFor ( )

Definition at line 276 of file pipeline.cc.

Referenced by swissknife::CommandScrub::Main().

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

ItemAllocator ScrubbingPipeline::item_allocator_
private

Definition at line 158 of file pipeline.h.

Referenced by ScrubbingPipeline().

const unsigned ScrubbingPipeline::kMaxFilesInFlight = 8000
staticprivate

Definition at line 136 of file pipeline.h.

const uint64_t ScrubbingPipeline::kMemHighWatermark = 512 * 1024 * 1024
staticprivate

Definition at line 135 of file pipeline.h.

Referenced by ScrubbingPipeline().

const uint64_t ScrubbingPipeline::kMemLowWatermark = 384 * 1024 * 1024
staticprivate

Definition at line 134 of file pipeline.h.

Referenced by ScrubbingPipeline().

const unsigned ScrubbingPipeline::kNforkChunk = 1
staticprivate

Definition at line 139 of file pipeline.h.

Referenced by ScrubbingPipeline().

const unsigned ScrubbingPipeline::kNforkHash = 2
staticprivate

Definition at line 138 of file pipeline.h.

Referenced by ScrubbingPipeline().

const unsigned ScrubbingPipeline::kNforkRead = 8
staticprivate

Definition at line 140 of file pipeline.h.

Referenced by ScrubbingPipeline().

const unsigned ScrubbingPipeline::kNforkScrubbingCallback = 1
staticprivate

Definition at line 137 of file pipeline.h.

Referenced by ScrubbingPipeline().

bool ScrubbingPipeline::spawned_
private

Definition at line 142 of file pipeline.h.

Referenced by Spawn(), and ~ScrubbingPipeline().

TubeConsumerGroup<BlockItem> ScrubbingPipeline::tasks_chunk_
private

Definition at line 150 of file pipeline.h.

Referenced by ScrubbingPipeline(), Spawn(), and ~ScrubbingPipeline().

TubeConsumerGroup<BlockItem> ScrubbingPipeline::tasks_hash_
private

Definition at line 153 of file pipeline.h.

Referenced by ScrubbingPipeline(), Spawn(), and ~ScrubbingPipeline().

TubeConsumerGroup<FileItem> ScrubbingPipeline::tasks_read_
private

Definition at line 147 of file pipeline.h.

Referenced by ScrubbingPipeline(), Spawn(), and ~ScrubbingPipeline().

TubeConsumerGroup<BlockItem> ScrubbingPipeline::tasks_scrubbing_callback_
private

Definition at line 156 of file pipeline.h.

Referenced by ScrubbingPipeline(), Spawn(), and ~ScrubbingPipeline().

Tube<FileItem> ScrubbingPipeline::tube_counter_
private

Definition at line 145 of file pipeline.h.

Referenced by Process(), ScrubbingPipeline(), and WaitFor().

Tube<FileItem> ScrubbingPipeline::tube_input_
private

Definition at line 143 of file pipeline.h.

Referenced by Process(), and ScrubbingPipeline().

TubeGroup<BlockItem> ScrubbingPipeline::tubes_chunk_
private

Definition at line 149 of file pipeline.h.

Referenced by ScrubbingPipeline().

TubeGroup<BlockItem> ScrubbingPipeline::tubes_hash_
private

Definition at line 152 of file pipeline.h.

Referenced by ScrubbingPipeline().

TubeGroup<BlockItem> ScrubbingPipeline::tubes_scrubbing_callback_
private

Definition at line 155 of file pipeline.h.

Referenced by ScrubbingPipeline().


The documentation for this class was generated from the following files: