CMS 3D CMS Logo

List of all members | Private Member Functions | Private Attributes | Friends
cmsutils::_bqueue_item< T > Class Template Reference

#include <bqueue.h>

Private Member Functions

 _bqueue_item ()
 
 _bqueue_item (boost::intrusive_ptr< _bqueue_item< T > > tail, const T &val)
 
 _bqueue_item (boost::intrusive_ptr< _bqueue_item< T > > tail, T &&val)
 
template<typename... Args>
 _bqueue_item (boost::intrusive_ptr< _bqueue_item< T > > tail, Args &&...args)
 
void addRef ()
 
void delRef ()
 

Private Attributes

boost::intrusive_ptr< _bqueue_item< T > > back
 
unsigned int refCount
 
T const value
 

Friends

class _bqueue_itr< T >
 
class bqueue< T >
 
void intrusive_ptr_add_ref (_bqueue_item< T > *it)
 
void intrusive_ptr_release (_bqueue_item< T > *it)
 

Detailed Description

template<class T>
class cmsutils::_bqueue_item< T >

Definition at line 43 of file bqueue.h.

Constructor & Destructor Documentation

◆ _bqueue_item() [1/4]

template<class T>
cmsutils::_bqueue_item< T >::_bqueue_item ( )
inlineprivate

Definition at line 62 of file bqueue.h.

62 : back(0), value(), refCount(0) {}
unsigned int refCount
Definition: bqueue.h:73
boost::intrusive_ptr< _bqueue_item< T > > back
Definition: bqueue.h:71

◆ _bqueue_item() [2/4]

template<class T>
cmsutils::_bqueue_item< T >::_bqueue_item ( boost::intrusive_ptr< _bqueue_item< T > >  tail,
const T val 
)
inlineprivate

Definition at line 63 of file bqueue.h.

63 : back(tail), value(val), refCount(0) {}
unsigned int refCount
Definition: bqueue.h:73
boost::intrusive_ptr< _bqueue_item< T > > back
Definition: bqueue.h:71

◆ _bqueue_item() [3/4]

template<class T>
cmsutils::_bqueue_item< T >::_bqueue_item ( boost::intrusive_ptr< _bqueue_item< T > >  tail,
T &&  val 
)
inlineprivate

Definition at line 65 of file bqueue.h.

66  : back(tail), value(std::move(val)), refCount(0) {}
unsigned int refCount
Definition: bqueue.h:73
boost::intrusive_ptr< _bqueue_item< T > > back
Definition: bqueue.h:71
def move(src, dest)
Definition: eostools.py:511

◆ _bqueue_item() [4/4]

template<class T>
template<typename... Args>
cmsutils::_bqueue_item< T >::_bqueue_item ( boost::intrusive_ptr< _bqueue_item< T > >  tail,
Args &&...  args 
)
inlineprivate

Definition at line 69 of file bqueue.h.

70  : back(tail), value(std::forward<Args>(args)...), refCount(0) {}
unsigned int refCount
Definition: bqueue.h:73
boost::intrusive_ptr< _bqueue_item< T > > back
Definition: bqueue.h:71

Member Function Documentation

◆ addRef()

template<class T>
void cmsutils::_bqueue_item< T >::addRef ( )
inlineprivate

Definition at line 55 of file bqueue.h.

References cmsutils::_bqueue_item< T >::refCount.

Referenced by cmsutils::intrusive_ptr_add_ref().

55 { ++refCount; }
unsigned int refCount
Definition: bqueue.h:73

◆ delRef()

template<class T>
void cmsutils::_bqueue_item< T >::delRef ( )
inlineprivate

Definition at line 56 of file bqueue.h.

References cmsutils::_bqueue_item< T >::refCount.

Referenced by cmsutils::intrusive_ptr_release().

56  {
57  if ((--refCount) == 0)
58  delete this;
59  }
unsigned int refCount
Definition: bqueue.h:73

Friends And Related Function Documentation

◆ _bqueue_itr< T >

template<class T>
friend class _bqueue_itr< T >
friend

Definition at line 52 of file bqueue.h.

◆ bqueue< T >

template<class T>
friend class bqueue< T >
friend

Definition at line 51 of file bqueue.h.

◆ intrusive_ptr_add_ref

template<class T>
void intrusive_ptr_add_ref ( _bqueue_item< T > *  it)
friend

Definition at line 77 of file bqueue.h.

77  {
78  it->addRef();
79  }

◆ intrusive_ptr_release

template<class T>
void intrusive_ptr_release ( _bqueue_item< T > *  it)
friend

Definition at line 81 of file bqueue.h.

81  {
82  it->delRef();
83  }

Member Data Documentation

◆ back

template<class T>
boost::intrusive_ptr<_bqueue_item<T> > cmsutils::_bqueue_item< T >::back
private

Definition at line 71 of file bqueue.h.

◆ refCount

template<class T>
unsigned int cmsutils::_bqueue_item< T >::refCount
private

◆ value

template<class T>
T const cmsutils::_bqueue_item< T >::value
private