Gaudi Framework, version v21r9

Home   Generated: 3 May 2010

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::DataCallBackhandler () const
 Access to POOL data handler (if present).
void setHandler (pool::DataCallBack *h)
 Set the POOL data handler; releases existing data handler.
pool::Tokentoken ()
 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::DataCallBackm_handler
 Pointer to call handler.
pool::Tokenm_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   if ( m_token )  {
00030     m_token->addRef();
00031     return;
00032   }
00033   throw std::runtime_error("Invalid token (NULL) passed to PoolDbAddress");
00034 }

PoolDbAddress::~PoolDbAddress (  )  [virtual]

Standard Destructor.

Standard destructor.

Definition at line 37 of file PoolDbAddress.cpp.

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


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;            }

unsigned long PoolDbAddress::release (  )  [virtual]

Release reference to object.

Implements IOpaqueAddress.

Definition at line 57 of file PoolDbAddress.cpp.

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

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;}

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();   }

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

Retrieve string parameters.

Implements IOpaqueAddress.

Definition at line 67 of file PoolDbAddress.cpp.

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

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

Retrieve integer parameters.

Retrieve string parameters.

Implements IOpaqueAddress.

Definition at line 75 of file PoolDbAddress.cpp.

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

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

Pointer to directory.

Implements IOpaqueAddress.

Definition at line 68 of file PoolDbAddress.h.

00068 { return m_pRegistry;             }

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;     }

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

Set the POOL data handler; releases existing data handler.

Definition at line 82 of file PoolDbAddress.cpp.

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

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

Cache handle to container object.

Definition at line 76 of file PoolDbAddress.h.

00076 { return m_token;       }

bool PoolDbAddress::isValid (  )  const

Check link for validity.

Definition at line 88 of file PoolDbAddress.cpp.

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

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;   }


Member Data Documentation

unsigned long PoolDbAddress::m_refCount [protected]

Reference count.

Definition at line 35 of file PoolDbAddress.h.

Pointer to corresponding directory.

Definition at line 37 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.

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

Integer (unsignod long) parameters to be accessed.

Definition at line 41 of file PoolDbAddress.h.

Pointer to call handler.

Definition at line 43 of file PoolDbAddress.h.

Pointer to POOL token structure.

Definition at line 45 of file PoolDbAddress.h.


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

Generated at Mon May 3 12:25:53 2010 for Gaudi Framework, version v21r9 by Doxygen version 1.5.6 written by Dimitri van Heesch, © 1997-2004