This is Unofficial EPICS BASE Doxygen Site
epicsSingleton< TYPE >::reference Class Reference

#include "epicsSingleton.h"

Public Member Functions

 reference (epicsSingleton &)
 
 reference (const reference &)
 
 ~reference ()
 
epicsSingleton< TYPE >::referenceoperator= (const reference &)
 
TYPEoperator-> ()
 
const TYPEoperator-> () const
 
TYPEoperator* ()
 
const TYPEoperator* () const
 

Detailed Description

template<class TYPE>
class epicsSingleton< TYPE >::reference

Definition at line 47 of file epicsSingleton.h.

Constructor & Destructor Documentation

template<class TYPE >
epicsSingleton< TYPE >::reference::reference ( epicsSingleton es)
inline

Definition at line 80 of file epicsSingleton.h.

80  :
81  _pSingleton ( & es )
82 {
83  es._singletonUntyped.
84  incrRefCount ( & epicsSingleton < TYPE > :: _build );
85 }
template<class TYPE >
epicsSingleton< TYPE >::reference::reference ( const reference ref)
inline

Definition at line 89 of file epicsSingleton.h.

89  :
90  _pSingleton ( ref._pSingleton )
91 {
92  assert ( _pSingleton );
93  _pSingleton->_singletonUntyped.
94  incrRefCount ( & epicsSingleton < TYPE > :: _build );
95 }
#define assert(exp)
Declare that a condition should be true.
Definition: epicsAssert.h:70
template<class TYPE >
epicsSingleton< TYPE >::reference::~reference ( )
inline

Definition at line 99 of file epicsSingleton.h.

100 {
101  assert ( _pSingleton );
102  _pSingleton->_singletonUntyped.
103  decrRefCount ( & epicsSingleton < TYPE > :: _destroy );
104 }
#define assert(exp)
Declare that a condition should be true.
Definition: epicsAssert.h:70

Member Function Documentation

template<class TYPE >
TYPE & epicsSingleton< TYPE >::reference::operator* ( )
inline

Definition at line 146 of file epicsSingleton.h.

147 {
148  return * this->operator -> ();
149 }
template<class TYPE >
const TYPE & epicsSingleton< TYPE >::reference::operator* ( ) const
inline

Definition at line 154 of file epicsSingleton.h.

155 {
156  return * this->operator -> ();
157 }
template<class TYPE >
TYPE * epicsSingleton< TYPE >::reference::operator-> ( )
inline

Definition at line 126 of file epicsSingleton.h.

127 {
128  assert ( _pSingleton );
129  return reinterpret_cast < TYPE * >
130  ( _pSingleton->_singletonUntyped.pInstance () );
131 }
void * pInstance() const
#define assert(exp)
Declare that a condition should be true.
Definition: epicsAssert.h:70
#define TYPE
Definition: defs.h:70
template<class TYPE >
const TYPE * epicsSingleton< TYPE >::reference::operator-> ( ) const
inline

Definition at line 136 of file epicsSingleton.h.

137 {
138  assert ( _pSingleton );
139  return reinterpret_cast < const TYPE * >
140  ( _pSingleton->_singletonUntyped.pInstance () );
141 }
void * pInstance() const
#define assert(exp)
Declare that a condition should be true.
Definition: epicsAssert.h:70
#define TYPE
Definition: defs.h:70
template<class TYPE >
epicsSingleton< TYPE >::reference & epicsSingleton< TYPE >::reference::operator= ( const reference ref)

Definition at line 109 of file epicsSingleton.h.

110 {
111  if ( _pSingleton != ref._pSingleton ) {
112  assert ( _pSingleton );
113  _pSingleton->_singletonUntyped.
114  decrRefCount ( epicsSingleton < TYPE > :: _destroy );
115  _pSingleton = ref._pSingleton;
116  assert ( _pSingleton );
117  _pSingleton->_singletonUntyped.
118  incrRefCount ( & epicsSingleton < TYPE > :: _build );
119  }
120  return *this;
121 }
#define assert(exp)
Declare that a condition should be true.
Definition: epicsAssert.h:70

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