![]() |
|
|
Generated: 8 Jan 2009 |
#include <PoolDb/PoolDbAddress.h>


Definition of a transient link which is capable of locating an object in the persistent storage.
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::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. | |
| 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() == "/RunRecords" || 00045 clID() == CLID_RowWiseTuple || 00046 clID() == CLID_ColumnWiseTuple ) ) { 00047 std::cout << "PoolDbAddress::~PoolDbAddress> Token: " << cnt 00048 << " " << m_token->dbID() << " :: " 00049 << m_token->contID() << std::endl 00050 << "Possible memory leak." << std::endl; 00051 } 00052 } 00053 }
| 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 56 of file PoolDbAddress.cpp.
00057 { 00058 int cnt = --m_refCount; 00059 if ( 0 == cnt ) { 00060 delete this; 00061 } 00062 return cnt; 00063 }
| const CLID& PoolDbAddress::clID | ( | ) | const [inline, virtual] |
Retrieve class ID of the address.
Implements IOpaqueAddress.
Definition at line 60 of file PoolDbAddress.h.
| 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 66 of file PoolDbAddress.cpp.
00067 { 00068 m_par[0] = m_token->dbID(); 00069 m_par[1] = m_token->contID(); 00070 return m_par; 00071 }
| const unsigned long * PoolDbAddress::ipar | ( | ) | const [virtual] |
Retrieve integer parameters.
Retrieve string parameters.
Implements IOpaqueAddress.
Definition at line 74 of file PoolDbAddress.cpp.
00075 { 00076 m_ipar[0] = m_token->oid().first; 00077 m_ipar[1] = m_token->oid().second; 00078 return m_ipar; 00079 }
| 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 81 of file PoolDbAddress.cpp.
00082 { 00083 pool::releasePtr(m_handler); 00084 m_handler = h; 00085 }
| 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 87 of file PoolDbAddress.cpp.
00087 { 00088 const pool::Token::OID_t& oid = m_token->oid(); 00089 return oid.first != -1 && oid.second != -1; 00090 }
| 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; }
unsigned long PoolDbAddress::m_refCount [protected] |
IRegistry* PoolDbAddress::m_pRegistry [protected] |
std::string PoolDbAddress::m_par[3] [mutable, protected] |
unsigned long PoolDbAddress::m_ipar[2] [mutable, protected] |
pool::DataCallBack* PoolDbAddress::m_handler [protected] |
pool::Token* PoolDbAddress::m_token [protected] |