CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Classes | Functions
cmsutils Namespace Reference

Classes

class  _bqueue_item
 
class  _bqueue_itr
 
class  bqueue
 

Functions

template<class T >
void intrusive_ptr_add_ref (_bqueue_item< T > *it)
 
template<class T >
void intrusive_ptr_release (_bqueue_item< T > *it)
 
template<typename T >
void swap (bqueue< T > &rh, bqueue< T > &lh)
 

Detailed Description

Backwards linked queue with "head sharing"

Author: Giovanni Petrucciani

For use in trajectory building, where we want to "fork" a trajectory candidate in two without copying around all the hits before the fork.

Supported operations (mimics a std container):

Note that boost::intrusive_ptr is used for items, so they are deleted automatically while avoiding problems if one deletes a queue which shares the head with another one

Disclaimer: I'm not sure the const_iterator is really const-correct..

Function Documentation

template<class T >
void cmsutils::intrusive_ptr_add_ref ( _bqueue_item< T > *  it)
inline

Definition at line 55 of file bqueue.h.

References cmsutils::_bqueue_item< T >::addRef().

55 { it->addRef(); }
template<class T >
void cmsutils::intrusive_ptr_release ( _bqueue_item< T > *  it)
inline

Definition at line 56 of file bqueue.h.

References cmsutils::_bqueue_item< T >::delRef().

56 { it->delRef(); }
template<typename T >
void cmsutils::swap ( bqueue< T > &  rh,
bqueue< T > &  lh 
)

Definition at line 185 of file bqueue.h.

References cmsutils::bqueue< T >::swap().

185  {
186  rh.swap(lh);
187  }
bool int lh
Definition: SSEVec.h:37