Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

Anp::Handle< T > Class Template Reference

#include <Handle.h>

List of all members.

Public Member Functions

 Handle ()
 Handle (T *ptr)
 Handle (const Handle &rhs)
 ~Handle ()
const Handleoperator= (const Handle &rhs)
T * operator-> () const
T * get () const
T & operator * () const
bool valid () const
void release ()

Private Member Functions

void init ()

Private Attributes

T * p

template<typename T>
class Anp::Handle< T >


Constructor & Destructor Documentation

template<typename T>
Anp::Handle< T >::Handle  ) 
 

default ctor

Definition at line 134 of file PhysicsNtuple/Handle.h.

00134                   : p(0)
00135 {}

template<typename T>
Anp::Handle< T >::Handle T *  ptr  )  [explicit]
 

ctor from a raw pointer

Definition at line 141 of file PhysicsNtuple/Handle.h.

References Anp::Handle< T >::init().

00141                             : p(realPtr)
00142 {
00143     init();
00144 }

template<typename T>
Anp::Handle< T >::Handle const Handle< T > &  rhs  ) 
 

copy ctor

Definition at line 150 of file PhysicsNtuple/Handle.h.

References Anp::Handle< T >::init().

00150                                    : p(rhs.p)
00151 {
00152     init();
00153 }

template<typename T>
Anp::Handle< T >::~Handle  ) 
 

dtor

Definition at line 193 of file PhysicsNtuple/Handle.h.

References Anp::Handle< T >::p, and Anp::Handle< T >::release().

00194 {
00195    if (p)
00196    {
00197       p -> release();
00198    }
00199 }


Member Function Documentation

template<typename T>
T * Anp::Handle< T >::get  )  const
 

provides access to pointer

Definition at line 214 of file PhysicsNtuple/Handle.h.

00215 { 
00216    return p; 
00217 }

template<typename T>
void Anp::Handle< T >::init void   )  [private]
 

init

Definition at line 181 of file PhysicsNtuple/Handle.h.

References Anp::Handle< T >::p.

Referenced by Anp::Handle< T >::Handle(), and Anp::Handle< T >::operator=().

00182 {
00183    if (p)
00184    {
00185       p -> add_ref();
00186    }
00187 }

template<typename T>
T & Anp::Handle< T >::operator *  )  const
 

dereference operator

Definition at line 223 of file PhysicsNtuple/Handle.h.

00224 { 
00225    return *p; 
00226 }

template<typename T>
T * Anp::Handle< T >::operator->  )  const
 

operator-> allows usage with pointer semantics

Definition at line 205 of file PhysicsNtuple/Handle.h.

00206 { 
00207    return p; 
00208 }

template<typename T>
const Handle< T > & Anp::Handle< T >::operator= const Handle< T > &  rhs  ) 
 

assignment operator

Definition at line 160 of file PhysicsNtuple/Handle.h.

References Anp::Handle< T >::init(), Anp::Handle< T >::p, and Anp::Handle< T >::release().

00161 {
00162    if (p != rhs.p)
00163    {
00164       if (p)
00165       {
00166          p -> release();
00167       }
00168       
00169       p = rhs.p;
00170       init();
00171    }
00172 
00173    return *this;
00174 }

template<typename T>
void Anp::Handle< T >::release  ) 
 

release - set pointer to 0

Definition at line 246 of file PhysicsNtuple/Handle.h.

References Anp::Handle< T >::p.

Referenced by Anp::PlotKinem::Fill(), Anp::PlotBasic::Fill(), Anp::PlotVtx::GetPlot(), Anp::SelectFlux::Init(), Anp::Handle< T >::operator=(), Anp::PlotTime::Run(), and Anp::Handle< T >::~Handle().

00247 {
00248    if (p)
00249    {
00250       p -> release();
00251    }
00252    p = 0;
00253 }

template<typename T>
bool Anp::Handle< T >::valid  )  const
 

check if pointer is set to 0

Definition at line 232 of file PhysicsNtuple/Handle.h.

Referenced by Anp::EventDisplay::Add(), Anp::RunkNN::Alg(), TestDataModule::Analyze(), SetKNNModule::Analyze(), NueModule::Analyze(), AnalysisInfoAna::Analyze(), SetKNNModule::AnalyzeRecord(), Anp::RunModule::Config(), Anp::RunAlgStore::Config(), Anp::RunAlgSnarl::Config(), Anp::RunAlgEvent::Config(), Anp::DrawSnarl::Config(), Anp::SelectTrue::End(), Anp::SelectKinem::End(), Anp::SelectCount::End(), Anp::RunModule::End(), Anp::PlotPur::End(), Anp::PlotEff::End(), Anp::AlgThread::End(), Anp::PlotVtx::Fill(), Anp::SelectTrue::GetAlg(), Anp::SelectKinem::GetAlg(), Anp::SelectCount::GetCount(), Anp::SelectFlux::Init(), Anp::RunModule::Init(), Anp::AlgThread::Init(), Anp::PlotPur::IsMatch(), Anp::PlotEff::IsMatch(), MuonRemovalInfoAna::LoadROPID(), Anp::operator==(), Anp::PlotTruth::Plot(), Anp::PlotReson::Plot(), Anp::PlotFlux::Plot(), Anp::EventDisplay::PrintTab(), SetKNNModule::Reco(), FixModule::Reco(), Anp::SelectTrue::Run(), Anp::SelectKinem::Run(), Anp::SelectFlux::Run(), Anp::RunModule::Run(), Anp::PlotTruth::Run(), Anp::PlotPur::Run(), and Anp::AlgThread::Run().

00233 {
00234    if (p)
00235    {
00236       return true;
00237    }
00238    
00239    return false;
00240 }


Member Data Documentation

template<typename T>
T* Anp::Handle< T >::p [private]
 

Definition at line 127 of file PhysicsNtuple/Handle.h.

Referenced by Anp::Handle< T >::init(), Anp::Handle< T >::operator=(), Anp::Handle< T >::release(), and Anp::Handle< T >::~Handle().


The documentation for this class was generated from the following file:
Generated on Mon Feb 15 11:10:31 2010 for loon by  doxygen 1.3.9.1