Gaudi Framework, version v21r8

Home   Generated: 17 Mar 2010

PoolDbKeyedContainerCnv Class Reference

.h More...

#include <src/PoolDbKeyedContainerCnv>

Inheritance diagram for PoolDbKeyedContainerCnv:

Inheritance graph
[legend]
Collaboration diagram for PoolDbKeyedContainerCnv:

Collaboration graph
[legend]

List of all members.

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.


Detailed Description

.h

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.


Constructor & Destructor Documentation

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 }


Member Function Documentation

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 }


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

Generated at Wed Mar 17 18:18:57 2010 for Gaudi Framework, version v21r8 by Doxygen version 1.5.6 written by Dimitri van Heesch, © 1997-2004