CernVM-FS  2.12.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
TubeGroup< ItemT > Class Template Reference

#include <tube.h>

Inheritance diagram for TubeGroup< ItemT >:
Collaboration diagram for TubeGroup< ItemT >:

Public Member Functions

 TubeGroup ()
 
 ~TubeGroup ()
 
void TakeTube (Tube< ItemT > *t)
 
void Activate ()
 
Tube< ItemT >::Link * Dispatch (ItemT *item)
 
Tube< ItemT >::Link * DispatchAny (ItemT *item)
 

Private Attributes

bool is_active_
 
std::vector< Tube< ItemT > * > tubes_
 
atomic_int32 round_robin_
 

Additional Inherited Members

- Private Member Functions inherited from SingleCopy
 SingleCopy ()
 

Detailed Description

template<class ItemT>
class TubeGroup< ItemT >

A tube group manages a fixed set of Tubes and dispatches items among them in such a way that items with the same tag (a positive integer) are all sent to the same tube.

Definition at line 246 of file tube.h.

Constructor & Destructor Documentation

template<class ItemT>
TubeGroup< ItemT >::TubeGroup ( )
inline

Definition at line 248 of file tube.h.

template<class ItemT>
TubeGroup< ItemT >::~TubeGroup ( )
inline

Definition at line 252 of file tube.h.

Member Function Documentation

template<class ItemT>
void TubeGroup< ItemT >::Activate ( )
inline

Definition at line 262 of file tube.h.

Referenced by IngestionPipeline::IngestionPipeline(), and ScrubbingPipeline::ScrubbingPipeline().

Here is the caller graph for this function:

template<class ItemT>
Tube<ItemT>::Link* TubeGroup< ItemT >::Dispatch ( ItemT *  item)
inline

Like Tube::EnqueueBack(), but pick a tube according to ItemT::tag()

Definition at line 271 of file tube.h.

Referenced by TaskHash::Process(), TaskCompress::Process(), TaskChunk::Process(), and TaskRead::Process().

Here is the caller graph for this function:

template<class ItemT>
Tube<ItemT>::Link* TubeGroup< ItemT >::DispatchAny ( ItemT *  item)
inline

Like Tube::EnqueueBack(), use tubes one after another

Definition at line 281 of file tube.h.

Referenced by TaskWrite::OnChunkComplete().

Here is the caller graph for this function:

template<class ItemT>
void TubeGroup< ItemT >::TakeTube ( Tube< ItemT > *  t)
inline

Definition at line 257 of file tube.h.

Referenced by IngestionPipeline::IngestionPipeline(), and ScrubbingPipeline::ScrubbingPipeline().

Here is the caller graph for this function:

Member Data Documentation

template<class ItemT>
bool TubeGroup< ItemT >::is_active_
private
template<class ItemT>
atomic_int32 TubeGroup< ItemT >::round_robin_
private

Definition at line 291 of file tube.h.

Referenced by TubeGroup< FileItem >::DispatchAny(), and TubeGroup< FileItem >::TubeGroup().

template<class ItemT>
std::vector<Tube<ItemT> *> TubeGroup< ItemT >::tubes_
private

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