|
Gaudi Framework, version v21r8 |
| Home | Generated: 17 Mar 2010 |
#include <src/PoolDbKeyedContainerCnv>


Public Member Functions | |
| PoolDbKeyedContainerCnv (long typ, const CLID &clid, ISvcLocator *svc) | |
| Standard Constructor. | |
| virtual | ~PoolDbKeyedContainerCnv () |
| Standard Destructor. | |
| virtual StatusCode | updateObjRefs (IOpaqueAddress *pAddr, DataObject *pObj) |
| Update the references of an updated transient object. | |
Description:
Definition of the generic Db data converter for container objects like ObjectVector<TYPE> or ObjectList<TYPE>. The only thing this converter relies on is an object factory, which is capable of creating objects of the requested type.
For a detailed description of the overridden function see the the base classes.
Author: M.Frank Version: 1.0
Definition at line 28 of file PoolDbKeyedContainerCnv.h.
| PoolDbKeyedContainerCnv::PoolDbKeyedContainerCnv | ( | long | typ, | |
| const CLID & | clid, | |||
| ISvcLocator * | svc | |||
| ) |
Standard Constructor.
Definition at line 43 of file PoolDbKeyedContainerCnv.cpp.
00044 : PoolDbBaseCnv( typ, clid, svc ) 00045 { 00046 pool::DbInstanceCount::increment(this); 00047 }
| PoolDbKeyedContainerCnv::~PoolDbKeyedContainerCnv | ( | ) | [virtual] |
Standard Destructor.
Definition at line 50 of file PoolDbKeyedContainerCnv.cpp.
00050 { 00051 pool::DbInstanceCount::decrement(this); 00052 }
| StatusCode PoolDbKeyedContainerCnv::updateObjRefs | ( | IOpaqueAddress * | pAddr, | |
| DataObject * | pObj | |||
| ) | [virtual] |
Update the references of an updated transient object.
Reimplemented from PoolDbBaseCnv.
Definition at line 56 of file PoolDbKeyedContainerCnv.cpp.
00057 { 00058 StatusCode sc = PoolDbBaseCnv::updateObjRefs(pAddr, pObj); 00059 if ( sc.isSuccess() ) { 00060 ObjectTypes obj(pObj); 00061 const CLID id = (m_objGuid.Data1&0xFFFF0000); 00062 switch(id) { 00063 case CLID_ObjectList: /* ObjectList */ 00064 return StatusCode::SUCCESS; 00065 case CLID_ObjectVector: /* ObjectVector */ 00066 return StatusCode::SUCCESS; 00067 case CLID_ObjectVector+0x0030000: /* Keyed object map */ 00068 obj.KeyMap->configureDirectAccess(); 00069 return StatusCode::SUCCESS; 00070 case CLID_ObjectVector+0x0040000: /* Keyed object hashmap */ 00071 obj.KeyHashMap->configureDirectAccess(); 00072 return StatusCode::SUCCESS; 00073 case CLID_ObjectVector+0x0050000: /* Keyed indirection array */ 00074 obj.KeyArray->configureDirectAccess(); 00075 return StatusCode::SUCCESS; 00076 case 0: /* Any other object */ 00077 return StatusCode::SUCCESS; 00078 default: 00079 return obj.update(0); 00080 } 00081 // cannot reach this point 00082 } 00083 return sc; 00084 }