G4ReferenceCountedHandle< X > Class Template Reference

#include <G4ReferenceCountedHandle.hh>


Public Member Functions

 G4ReferenceCountedHandle (X *rep=0)
 G4ReferenceCountedHandle (const G4ReferenceCountedHandle< X > &right)
 ~G4ReferenceCountedHandle ()
G4ReferenceCountedHandle<
X > & 
operator= (const G4ReferenceCountedHandle< X > &right)
G4ReferenceCountedHandle<
X > & 
operator= (X *objPtr)
unsigned int Count () const
X * operator-> () const
G4bool operator! () const
 operator bool () const
X * operator() () const
void * operator new (size_t)
void operator delete (void *pObj)


Detailed Description

template<class X>
class G4ReferenceCountedHandle< X >

Definition at line 63 of file G4ReferenceCountedHandle.hh.


Constructor & Destructor Documentation

template<class X>
G4ReferenceCountedHandle< X >::G4ReferenceCountedHandle ( X *  rep = 0  )  [inline]

Definition at line 222 of file G4ReferenceCountedHandle.hh.

00223  : fObj( 0 )
00224 {
00225   if( rep != 0 ) {
00226       fObj = new G4CountedObject<X>( rep );
00227   }
00228 }

template<class X>
G4ReferenceCountedHandle< X >::G4ReferenceCountedHandle ( const G4ReferenceCountedHandle< X > &  right  )  [inline]

Definition at line 232 of file G4ReferenceCountedHandle.hh.

00233  : fObj( right.fObj )
00234 {
00235     fObj->AddRef();
00236 }

template<class X>
G4ReferenceCountedHandle< X >::~G4ReferenceCountedHandle (  )  [inline]

Definition at line 239 of file G4ReferenceCountedHandle.hh.

00240 {
00241     if( fObj ) fObj->Release();
00242 }


Member Function Documentation

template<class X>
unsigned int G4ReferenceCountedHandle< X >::Count (  )  const [inline]

Definition at line 268 of file G4ReferenceCountedHandle.hh.

00269 {
00270     return( fObj ? fObj->fCount : 0 );
00271 }

template<class X>
G4ReferenceCountedHandle< X >::operator bool (  )  const [inline]

Definition at line 286 of file G4ReferenceCountedHandle.hh.

00287 {
00288     return( ( fObj ) ? true : false );
00289 }

template<class X>
void G4ReferenceCountedHandle< X >::operator delete ( void *  pObj  )  [inline]

Definition at line 304 of file G4ReferenceCountedHandle.hh.

References aRCHAllocator.

00305 {
00306     aRCHAllocator.FreeSingle( (G4ReferenceCountedHandle<void>*)pObj );
00307 }

template<class X>
void * G4ReferenceCountedHandle< X >::operator new ( size_t   )  [inline]

Definition at line 298 of file G4ReferenceCountedHandle.hh.

References aRCHAllocator.

00299 {
00300     return( (void *)aRCHAllocator.MallocSingle() );
00301 }

template<class X>
G4bool G4ReferenceCountedHandle< X >::operator! (  )  const [inline]

Definition at line 280 of file G4ReferenceCountedHandle.hh.

00281 {
00282     return( ( !fObj ) ? true : false );
00283 }

template<class X>
X * G4ReferenceCountedHandle< X >::operator() (  )  const [inline]

Definition at line 292 of file G4ReferenceCountedHandle.hh.

00293 {
00294     return( fObj ? fObj->fRep : 0 );
00295 }

template<class X>
X * G4ReferenceCountedHandle< X >::operator-> (  )  const [inline]

Definition at line 274 of file G4ReferenceCountedHandle.hh.

00275 {
00276     return( fObj ? fObj->fRep : 0 );
00277 }

template<class X>
G4ReferenceCountedHandle< X > & G4ReferenceCountedHandle< X >::operator= ( X *  objPtr  )  [inline]

Definition at line 259 of file G4ReferenceCountedHandle.hh.

00260 {
00261     if( fObj )
00262       fObj->Release();
00263     this->fObj = new  G4CountedObject<X>( objPtr );
00264     return *this;
00265 }

template<class X>
G4ReferenceCountedHandle< X > & G4ReferenceCountedHandle< X >::operator= ( const G4ReferenceCountedHandle< X > &  right  )  [inline]

Definition at line 246 of file G4ReferenceCountedHandle.hh.

References G4ReferenceCountedHandle< X >::fObj.

00247 {
00248     if( fObj != right.fObj ) {
00249       if( fObj )
00250         fObj->Release();
00251       this->fObj = right.fObj;
00252       fObj->AddRef();
00253     }
00254     return *this;
00255 }


The documentation for this class was generated from the following file:
Generated on Mon May 27 17:53:16 2013 for Geant4 by  doxygen 1.4.7