Gaudi Framework, version v20r3

Generated: 24 Nov 2008

PoolDbAddress Class Reference

#include <PoolDb/PoolDbAddress.h>

Inheritance diagram for PoolDbAddress:

Inheritance graph
[legend]
Collaboration diagram for PoolDbAddress:

Collaboration graph
[legend]

List of all members.


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.


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::string * par () const
 Retrieve string parameters.
virtual const unsigned long * ipar () 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.

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            clID() == CLID_RowWiseTuple   ||
00045            clID() == CLID_ColumnWiseTuple ) )  {
00046       std::cout << "PoolDbAddress::~PoolDbAddress> Token: " << cnt 
00047                 << "  " << m_token->dbID() << " :: " 
00048                 << m_token->contID() << std::endl
00049                 << "Possible memory leak." << std::endl;
00050     }
00051   }
00052 }


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 55 of file PoolDbAddress.cpp.

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

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 65 of file PoolDbAddress.cpp.

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

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

Retrieve integer parameters.

Retrieve string parameters.

Implements IOpaqueAddress.

Definition at line 73 of file PoolDbAddress.cpp.

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

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 80 of file PoolDbAddress.cpp.

00081 {
00082   pool::releasePtr(m_handler);
00083   m_handler = h;
00084 }

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 86 of file PoolDbAddress.cpp.

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

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 Nov 24 14:46:11 2008 for Gaudi Framework, version v20r3 by Doxygen version 1.5.6 written by Dimitri van Heesch, © 1997-2004