| # Gaudi Framework, version v21r7p1 |

Home |  | Generated: 15 Feb 2010

# PoolDbAddress Class Reference

Description:. More...

`#include <PoolDb/PoolDbAddress.h>`

Inheritance diagram for PoolDbAddress:

[legend]
Collaboration diagram for PoolDbAddress:

[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   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.

IRegistry* PoolDbAddress::m_pRegistry`[protected]`

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.

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

Pointer to call handler.

Definition at line 43 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:

- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v21r7p1/GaudiPoolDb/GaudiPoolDb/PoolDbAddress.h
- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v21r7p1/GaudiPoolDb/src/PoolDbAddress.cpp