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) |
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..
void cmsutils::intrusive_ptr_add_ref | ( | _bqueue_item< T > * | it | ) | [inline] |
Definition at line 56 of file bqueue.h.
References cmsutils::_bqueue_item< T >::addRef().
{ it->addRef(); }
void cmsutils::intrusive_ptr_release | ( | _bqueue_item< T > * | it | ) | [inline] |
Definition at line 57 of file bqueue.h.
References cmsutils::_bqueue_item< T >::delRef().
{ it->delRef(); }