CMS 3D CMS Logo

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 56 of file bqueue.h.

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

{ it->addRef(); }
template<class T >
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(); }
template<typename T >
void cmsutils::swap ( bqueue< T > &  rh,
bqueue< T > &  lh 
)

Definition at line 189 of file bqueue.h.

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

                                          {
    rh.swap(lh);
  }