Gaudi Framework, version v22r0

Home   Generated: 9 Feb 2011

PoolDbAddress Class Reference

Description:. More...

#include <PoolDb/PoolDbAddress.h>

Inheritance diagram for PoolDbAddress:
Inheritance graph
[legend]
Collaboration diagram for PoolDbAddress:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 PoolDbAddress (pool::Token *aToken)
 Full constructor: all arguments MUST be valid, no checks!
virtual ~PoolDbAddress ()
 Standard Destructor.
pool::DataCallBack * handler () const
 Access to POOL data handler (if present).
void setHandler (pool::DataCallBack *h)
 Set the POOL data handler; releases existing data handler.
pool::Token * token ()
 Cache handle to container object.
bool isValid () const
 Check link for validity.
virtual void setRegistry (IRegistry *pReg)
 Set pointer to directory.
Implementation of IOpaqueAddress interface

virtual unsigned long addRef ()
 Add reference to object.
virtual unsigned long release ()
 Release reference to object.
const CLID & clID () const
 Retrieve class ID of the address.
long svcType () const
 Access : retrieve the storage type of the class id.
virtual const std::string * par () const
 Retrieve string parameters.
virtual const unsigned long * ipar () const
 Retrieve integer parameters.
virtual IRegistry * registry () const
 Pointer to directory.

Protected Attributes

unsigned long m_refCount
 Reference count.
IRegistry * m_pRegistry
 Pointer to corresponding directory.
std::string m_par [3]
 String parameters to be accessed.
unsigned long m_ipar [2]
 Integer (unsignod long) parameters to be accessed.
pool::DataCallBack * m_handler
 Pointer to call handler.
pool::Token * m_token
 Pointer to POOL token structure.

Detailed Description

Description:.

Definition of a transient link which is capable of locating an object in the persistent storage.

Author:
M.Frank
Version:
1.0

Definition at line 32 of file PoolDbAddress.h.


Constructor & Destructor Documentation

PoolDbAddress::PoolDbAddress ( pool::Token *  aToken  ) 

Full constructor: all arguments MUST be valid, no checks!

Definition at line 25 of file PoolDbAddress.cpp.

00026   : m_refCount(0), m_pRegistry(0), m_handler(0), m_token(aToken)
00027 {
00028   s_count->increment();
00029   m_ipar[0]=m_ipar[1]=0;
00030   if ( m_token )  {
00031     m_token->addRef();
00032     return;
00033   }
00034   throw std::runtime_error("Invalid token (NULL) passed to PoolDbAddress");
00035 }

PoolDbAddress::~PoolDbAddress (  )  [virtual]

Standard Destructor.

Standard destructor.

Definition at line 38 of file PoolDbAddress.cpp.

00039 {
00040   pool::releasePtr(m_handler);
00041   s_count->decrement();
00042   unsigned int cnt = m_token->release();
00043   if ( cnt != 0 ) {
00044     if ( !(m_token->contID() == "/Event"      ||
00045            m_token->contID() == "/FileRecords" ||
00046            m_token->contID() == "/RunRecords" ||
00047            clID() == CLID_RowWiseTuple        ||
00048            clID() == CLID_ColumnWiseTuple ) )  {
00049       std::cout << "PoolDbAddress::~PoolDbAddress> Token: " << cnt
00050                 << "  " << m_token->dbID() << " :: "
00051                 << m_token->contID() << std::endl
00052                 << "Possible memory leak." << std::endl;
00053     }
00054   }
00055 }


Member Function Documentation

virtual unsigned long PoolDbAddress::addRef (  )  [inline, virtual]

Add reference to object.

Implements IOpaqueAddress.

Definition at line 56 of file PoolDbAddress.h.

00056 { return ++m_refCount;            }

const CLID& PoolDbAddress::clID (  )  const [inline, virtual]

Retrieve class ID of the address.

Implements IOpaqueAddress.

Definition at line 60 of file PoolDbAddress.h.

00060 { return *(CLID*)&m_token->classID().Data1;}

pool::DataCallBack* PoolDbAddress::handler (  )  const [inline]

Access to POOL data handler (if present).

Definition at line 72 of file PoolDbAddress.h.

00072 { return m_handler;     }

const unsigned long * PoolDbAddress::ipar (  )  const [virtual]

Retrieve integer parameters.

Retrieve string parameters.

Implements IOpaqueAddress.

Definition at line 76 of file PoolDbAddress.cpp.

00077 {
00078   m_ipar[0] = m_token->oid().first;
00079   m_ipar[1] = m_token->oid().second;
00080   return m_ipar;
00081 }

bool PoolDbAddress::isValid (  )  const

Check link for validity.

Definition at line 89 of file PoolDbAddress.cpp.

00089                                     {
00090   const pool::Token::OID_t& oid = m_token->oid();
00091   return oid.first != -1 && oid.second != -1;
00092 }

const std::string * PoolDbAddress::par (  )  const [virtual]

Retrieve string parameters.

Implements IOpaqueAddress.

Definition at line 68 of file PoolDbAddress.cpp.

00069 {
00070   m_par[0] = m_token->dbID();
00071   m_par[1] = m_token->contID();
00072   return m_par;
00073 }

virtual IRegistry* PoolDbAddress::registry (  )  const [inline, virtual]

Pointer to directory.

Implements IOpaqueAddress.

Definition at line 68 of file PoolDbAddress.h.

00068 { return m_pRegistry;             }

unsigned long PoolDbAddress::release (  )  [virtual]

Release reference to object.

Implements IOpaqueAddress.

Definition at line 58 of file PoolDbAddress.cpp.

00059 {
00060   int cnt = --m_refCount;
00061   if ( 0 == cnt )   {
00062     delete this;
00063   }
00064   return cnt;
00065 }

void PoolDbAddress::setHandler ( pool::DataCallBack *  h  ) 

Set the POOL data handler; releases existing data handler.

Definition at line 83 of file PoolDbAddress.cpp.

00084 {
00085   pool::releasePtr(m_handler);
00086   m_handler = h;
00087 }

virtual void PoolDbAddress::setRegistry ( IRegistry *  pReg  )  [inline, virtual]

Set pointer to directory.

Implements IOpaqueAddress.

Definition at line 80 of file PoolDbAddress.h.

00080 { m_pRegistry = pReg;   }

long PoolDbAddress::svcType (  )  const [inline, virtual]

Access : retrieve the storage type of the class id.

Implements IOpaqueAddress.

Definition at line 62 of file PoolDbAddress.h.

00062 { return m_token->technology();   }

pool::Token* PoolDbAddress::token (  )  [inline]

Cache handle to container object.

Definition at line 76 of file PoolDbAddress.h.

00076 { return m_token;       }


Member Data Documentation

pool::DataCallBack* PoolDbAddress::m_handler [protected]

Pointer to call handler.

Definition at line 43 of file PoolDbAddress.h.

unsigned long PoolDbAddress::m_ipar[2] [mutable, protected]

Integer (unsignod long) parameters to be accessed.

Definition at line 41 of file PoolDbAddress.h.

std::string PoolDbAddress::m_par[3] [mutable, protected]

String parameters to be accessed.

Definition at line 39 of file PoolDbAddress.h.

Pointer to corresponding directory.

Definition at line 37 of file PoolDbAddress.h.

unsigned long PoolDbAddress::m_refCount [protected]

Reference count.

Definition at line 35 of file PoolDbAddress.h.

pool::Token* PoolDbAddress::m_token [protected]

Pointer to POOL token structure.

Definition at line 45 of file PoolDbAddress.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines

Generated at Wed Feb 9 16:31:32 2011 for Gaudi Framework, version v22r0 by Doxygen version 1.6.2 written by Dimitri van Heesch, © 1997-2004