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 CLIDclID () const
 Retrieve class ID of the address.
long svcType () const
 Access : retrieve the storage type of the class id.
virtual const std::stringpar () const
 Retrieve string parameters.
virtual const unsigned longipar () const
 Retrieve integer parameters.
virtual IRegistryregistry () const
 Pointer to directory.

Protected Attributes

unsigned long m_refCount
 Reference count.
IRegistrym_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