| # Gaudi Framework, version v20r2
Generated: 18 Jul 2008

- Main Page
- Namespaces
- Classes
- Files
- Directories
- Related Pages

- Search for |

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# PoolDbKeyedContainerCnv Class Reference

`#include <src/PoolDbKeyedContainerCnv>`

Inheritance diagram for PoolDbKeyedContainerCnv:

[legend]
Collaboration diagram for PoolDbKeyedContainerCnv:

[legend]
List of all members.

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

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

## Constructor & Destructor Documentation

PoolDbKeyedContainerCnv::PoolDbKeyedContainerCnv | ( | long | typ,
|  | const CLID & | clid,
|  | ISvcLocator * | svc |
| ) |  |  |

Standard Constructor.

Definition at line 43 of file PoolDbKeyedContainerCnv.cpp.

References pool::DbInstanceCount::increment().

    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.

References pool::DbInstanceCount::decrement().

    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.

References CLID_ObjectList, CLID_ObjectVector, pool::Guid::Data1, StatusCode::FAILURE, StatusCode::isSuccess(), PoolDbBaseCnv::m_objGuid, StatusCode::SUCCESS, and PoolDbBaseCnv::updateObjRefs().

    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     return StatusCode::FAILURE;
    00082   }
    00083   return sc;
    00084 }

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

- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v20r2/GaudiPoolDb/v4r0/GaudiPoolDb/PoolDbKeyedContainerCnv.h
- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v20r2/GaudiPoolDb/v4r0/src/PoolDbKeyedContainerCnv.cpp