Gaudi Framework, version v21r7p1

Home   Generated: 15 Feb 2010

Converter Class Reference

Converter base class. More...

#include <GaudiKernel/Converter.h>

Inheritance diagram for Converter:

Inheritance graph
[legend]
Collaboration diagram for Converter:

Collaboration graph
[legend]

List of all members.

Public Member Functions

virtual StatusCode initialize ()
 Initialize the converter.
virtual StatusCode finalize ()
 Initialize the converter.
virtual StatusCode setDataProvider (IDataProviderSvc *svc)
 Set Data provider service.
virtual SmartIF
< IDataProviderSvc > & 
dataProvider () const
 Get Data provider service.
virtual StatusCode setConversionSvc (IConversionSvc *svc)
 Set conversion service the converter is connected to.
virtual SmartIF< IConversionSvc > & conversionSvc () const
 Get conversion service the converter is connected to.
virtual StatusCode setAddressCreator (IAddressCreator *creator)
 Set address creator facility.
virtual SmartIF
< IAddressCreator > & 
addressCreator () const
 Retrieve address creator facility.
virtual const CLIDobjType () const
 Retrieve the class type of objects the converter produces.
virtual long i_repSvcType () const
 Retrieve the class type of the data store the converter uses.
virtual StatusCode createObj (IOpaqueAddress *pAddress, DataObject *&refpObject)
 Create the transient representation of an object.
virtual StatusCode fillObjRefs (IOpaqueAddress *pAddress, DataObject *pObject)
 Resolve the references of the created transient object.
virtual StatusCode updateObj (IOpaqueAddress *pAddress, DataObject *refpObject)
 Update the transient object from the other representation.
virtual StatusCode updateObjRefs (IOpaqueAddress *pAddress, DataObject *pObject)
 Update the references of an updated transient object.
virtual StatusCode createRep (DataObject *pObject, IOpaqueAddress *&refpAddress)
 Convert the transient object to the requested representation.
virtual StatusCode fillRepRefs (IOpaqueAddress *pAddress, DataObject *pObject)
 Resolve the references of the converted object.
virtual StatusCode updateRep (IOpaqueAddress *pAddress, DataObject *pObject)
 Update the converted representation of a transient object.
virtual StatusCode updateRepRefs (IOpaqueAddress *pAddress, DataObject *pObject)
 Update the references of an already converted object.
 Converter (long storage_type, const CLID &class_type, ISvcLocator *svc=0)
 Standard Constructor.
template<class T>
StatusCode service (const std::string &name, T *&psvc, bool createIf=false) const
 Access a service by name, creating it if it doesn't already exist.
template<class T>
StatusCode service (const std::string &type, const std::string &name, T *&psvc) const
 Access a service by name, type creating it if it doesn't already exist.
SmartIF< IServiceservice (const std::string &name, const bool createIf=true) const
 Return a pointer to the service identified by name (or "type/name").

Protected Member Functions

virtual ~Converter ()
 Standard Destructor.
SmartIF< ISvcLocator > & serviceLocator () const
 Retrieve pointer to service locator.
SmartIF< IMessageSvc > & msgSvc () const
 Retrieve pointer to message service.
SmartIF< IMessageSvc > & messageService () const
SmartIF< IDataManagerSvc > & dataManager () const
 Get Data Manager service.

Private Member Functions

StatusCode service_i (const std::string &svcName, bool createIf, const InterfaceID &iid, void **ppSvc) const
 implementation of service method
StatusCode service_i (const std::string &svcType, const std::string &svcName, const InterfaceID &iid, void **ppSvc) const

Private Attributes

long m_storageType
 Storage type.
const CLID m_classType
 Class type the converter can handle.
SmartIF< IAddressCreatorm_addressCreator
 Pointer to the address creation service interface.
SmartIF< IDataProviderSvcm_dataProvider
 Pointer to data provider service.
SmartIF< IDataManagerSvcm_dataManager
 Pointer to data manager service.
SmartIF< IConversionSvcm_conversionSvc
 Pointer to the connected conversion service.
SmartIF< ISvcLocatorm_svcLocator
 Service Locator reference.
SmartIF< IMessageSvcm_messageSvc
 MessageSvc reference.


Detailed Description

Converter base class.

See interface for detailed description, arguments and return values

Author:
Markus Frank
Version:
1.0

Definition at line 25 of file Converter.h.


Constructor & Destructor Documentation

Converter::Converter ( long  storage_type,
const CLID class_type,
ISvcLocator svc = 0 
)

Standard Constructor.

Definition at line 146 of file Converter.cpp.

00146                                                                                 :
00147   m_storageType(storage_type),
00148   m_classType(class_type),
00149   m_svcLocator(svc)
00150 {
00151 }

Converter::~Converter (  )  [protected, virtual]

Standard Destructor.

Definition at line 154 of file Converter.cpp.

00154                       {
00155 }


Member Function Documentation

StatusCode Converter::initialize (  )  [virtual]

Initialize the converter.

Implements IConverter.

Reimplemented in PoolDbBaseCnv, and RootHistCnv::RNTupleCnv.

Definition at line 66 of file Converter.cpp.

00066                                     {
00067   // Get a reference to the Message Service
00068   if ( !msgSvc().isValid() )   {
00069     return StatusCode::FAILURE;
00070   }
00071   return StatusCode::SUCCESS;
00072 }

StatusCode Converter::finalize ( void   )  [virtual]

Initialize the converter.

Finalize the converter.

Implements IConverter.

Reimplemented in PoolDbBaseCnv, and RootHistCnv::RNTupleCnv.

Definition at line 75 of file Converter.cpp.

00075                                {
00076   // release services
00077   m_messageSvc = 0;
00078   m_dataManager = 0;
00079   m_dataProvider = 0;
00080   m_conversionSvc = 0;
00081   m_addressCreator = 0;
00082   return StatusCode::SUCCESS;
00083 }

StatusCode Converter::setDataProvider ( IDataProviderSvc svc  )  [virtual]

Set Data provider service.

Set data provider service.

Implements IConverter.

Definition at line 86 of file Converter.cpp.

00086                                                            {
00087   m_dataProvider = svc;
00088   m_dataManager = svc;
00089   return StatusCode::SUCCESS;
00090 }

SmartIF< IDataProviderSvc > & Converter::dataProvider (  )  const [virtual]

Get Data provider service.

Get data provider service.

Implements IConverter.

Definition at line 93 of file Converter.cpp.

00093                                                              {
00094   return m_dataProvider;
00095 }

StatusCode Converter::setConversionSvc ( IConversionSvc svc  )  [virtual]

Set conversion service the converter is connected to.

Implements IConverter.

Definition at line 103 of file Converter.cpp.

00103                                                             {
00104   m_conversionSvc = svc;
00105   return StatusCode::SUCCESS;
00106 }

SmartIF< IConversionSvc > & Converter::conversionSvc (  )  const [virtual]

Get conversion service the converter is connected to.

Get data conversion service the converter is connected to.

Implements IConverter.

Definition at line 109 of file Converter.cpp.

00109                                                             {
00110   return m_conversionSvc;
00111 }

StatusCode Converter::setAddressCreator ( IAddressCreator creator  )  [virtual]

Set address creator facility.

Implements IConverter.

Definition at line 114 of file Converter.cpp.

00114                                                                   {
00115   m_addressCreator = creator;
00116   return StatusCode::SUCCESS;
00117 }

SmartIF< IAddressCreator > & Converter::addressCreator (  )  const [virtual]

Retrieve address creator facility.

Access the transient store.

Implements IConverter.

Definition at line 120 of file Converter.cpp.

00120                                                              {
00121   return m_addressCreator;
00122 }

const CLID & Converter::objType (  )  const [virtual]

Retrieve the class type of objects the converter produces.

Implements IConverter.

Definition at line 15 of file Converter.cpp.

00015                                         {
00016   return m_classType;
00017 }

long Converter::i_repSvcType (  )  const [virtual]

Retrieve the class type of the data store the converter uses.

Definition at line 20 of file Converter.cpp.

00020                                      {
00021   return m_storageType;
00022 }

StatusCode Converter::createObj ( IOpaqueAddress pAddress,
DataObject *&  refpObject 
) [virtual]

Create the transient representation of an object.

Implements IConverter.

Reimplemented in PoolDbBaseCnv, PoolDbDatabaseCnv, PoolDbDirectoryCnv, PoolDbNTupleCnv, RootHistCnv::DirectoryCnv, RootHistCnv::RDirectoryCnv, RootHistCnv::RFileCnv, RootHistCnv::RHistogramCnv< T, S, Q >, and RootHistCnv::RNTupleCnv.

Definition at line 25 of file Converter.cpp.

00025                                                                {
00026   return StatusCode::SUCCESS;
00027 }

StatusCode Converter::fillObjRefs ( IOpaqueAddress pAddress,
DataObject pObject 
) [virtual]

Resolve the references of the created transient object.

Implements IConverter.

Reimplemented in PoolDbBaseCnv, PoolDbDirectoryCnv, PoolDbNTupleCnv, and RootHistCnv::RDirectoryCnv.

Definition at line 31 of file Converter.cpp.

00031                                                                  {
00032   return StatusCode::SUCCESS;
00033 }

StatusCode Converter::updateObj ( IOpaqueAddress pAddress,
DataObject refpObject 
) [virtual]

Update the transient object from the other representation.

Implements IConverter.

Reimplemented in PoolDbBaseCnv, PoolDbDirectoryCnv, PoolDbNTupleCnv, RootHistCnv::RHistogramCnv< T, S, Q >, and RootHistCnv::RNTupleCnv.

Definition at line 36 of file Converter.cpp.

00036                                                               {
00037   return StatusCode::SUCCESS;
00038 }

StatusCode Converter::updateObjRefs ( IOpaqueAddress pAddress,
DataObject pObject 
) [virtual]

Update the references of an updated transient object.

Implements IConverter.

Reimplemented in PoolDbBaseCnv, PoolDbDirectoryCnv, PoolDbKeyedContainerCnv, and PoolDbNTupleCnv.

Definition at line 41 of file Converter.cpp.

00041                                                                  {
00042   return StatusCode::SUCCESS;
00043 }

StatusCode Converter::createRep ( DataObject pObject,
IOpaqueAddress *&  refpAddress 
) [virtual]

Convert the transient object to the requested representation.

Implements IConverter.

Reimplemented in PoolDbBaseCnv, PoolDbDirectoryCnv, PoolDbNTupleCnv, RootHistCnv::DirectoryCnv, RootHistCnv::RConverter, RootHistCnv::RDirectoryCnv, RootHistCnv::RFileCnv, and RootHistCnv::RNTupleCnv.

Definition at line 46 of file Converter.cpp.

00046                                                               {
00047   return StatusCode::SUCCESS;
00048 }

StatusCode Converter::fillRepRefs ( IOpaqueAddress pAddress,
DataObject pObject 
) [virtual]

Resolve the references of the converted object.

Implements IConverter.

Reimplemented in PoolDbBaseCnv, and PoolDbNTupleCnv.

Definition at line 51 of file Converter.cpp.

00051                                                                {
00052   return StatusCode::SUCCESS;
00053 }

StatusCode Converter::updateRep ( IOpaqueAddress pAddress,
DataObject pObject 
) [virtual]

Update the converted representation of a transient object.

Implements IConverter.

Reimplemented in PoolDbBaseCnv, PoolDbDirectoryCnv, PoolDbNTupleCnv, RootHistCnv::RDirectoryCnv, RootHistCnv::RFileCnv, and RootHistCnv::RNTupleCnv.

Definition at line 56 of file Converter.cpp.

00056                                                              {
00057   return StatusCode::SUCCESS;
00058 }

StatusCode Converter::updateRepRefs ( IOpaqueAddress pAddress,
DataObject pObject 
) [virtual]

Update the references of an already converted object.

Implements IConverter.

Reimplemented in PoolDbBaseCnv, PoolDbDirectoryCnv, and PoolDbNTupleCnv.

Definition at line 61 of file Converter.cpp.

00061                                                                    {
00062   return StatusCode::SUCCESS;
00063 }

template<class T>
StatusCode Converter::service ( const std::string name,
T *&  psvc,
bool  createIf = false 
) const [inline]

Access a service by name, creating it if it doesn't already exist.

Definition at line 88 of file Converter.h.

00088                                                                                      {
00089     return service_i(name, createIf, T::interfaceID(), (void**)&psvc);
00090   }

template<class T>
StatusCode Converter::service ( const std::string type,
const std::string name,
T *&  psvc 
) const [inline]

Access a service by name, type creating it if it doesn't already exist.

Definition at line 94 of file Converter.h.

00094                                                                                     {
00095     return service_i(type, name, T::interfaceID(), (void**)&psvc);
00096   }

SmartIF< IService > Converter::service ( const std::string name,
const bool  createIf = true 
) const

Return a pointer to the service identified by name (or "type/name").

Definition at line 181 of file Converter.cpp.

00181                                                                                      {
00182   SmartIF<IService> cnvsvc(conversionSvc());
00183   SmartIF<IService> svc;
00184   if (cnvsvc.isValid()) {
00185     const ServiceLocatorHelper helper(*serviceLocator(), "Converter", cnvsvc->name());
00186     svc = helper.service(name, false, createIf);
00187   }
00188   return svc;
00189 }

SmartIF< ISvcLocator > & Converter::serviceLocator (  )  const [protected]

Retrieve pointer to service locator.

--- Retrieve pointer to service locator

Definition at line 125 of file Converter.cpp.

00125                                                            {
00126   return m_svcLocator;
00127 }

SmartIF< IMessageSvc > & Converter::msgSvc (  )  const [protected]

Retrieve pointer to message service.

--- Retrieve pointer to message service

Definition at line 130 of file Converter.cpp.

00130                                                  {
00131   if ( !m_messageSvc.isValid() ) {
00132     m_messageSvc = serviceLocator();
00133     if( !m_messageSvc.isValid() ) {
00134       throw GaudiException("Service [MessageSvc] not found", "Converter", StatusCode::FAILURE);
00135     }
00136   }
00137   return m_messageSvc;
00138 }

SmartIF< IMessageSvc > & Converter::messageService (  )  const [protected]

Definition at line 141 of file Converter.cpp.

00141                                                          {
00142   return msgSvc();
00143 }

SmartIF< IDataManagerSvc > & Converter::dataManager (  )  const [protected]

Get Data Manager service.

Get data manager service.

Definition at line 98 of file Converter.cpp.

00098                                                            {
00099   return m_dataManager;
00100 }

StatusCode Converter::service_i ( const std::string svcName,
bool  createIf,
const InterfaceID iid,
void **  ppSvc 
) const [private]

implementation of service method

Definition at line 158 of file Converter.cpp.

00159                                                                  {
00160   // Check for name of conversion service
00161   SmartIF<IService> cnvsvc(conversionSvc());
00162   if (cnvsvc.isValid()) {
00163     const ServiceLocatorHelper helper(*serviceLocator(), "Converter", cnvsvc->name());
00164     return helper.getService(svcName, createIf, iid, ppSvc);
00165   }
00166   return StatusCode::FAILURE;
00167 }

StatusCode Converter::service_i ( const std::string svcType,
const std::string svcName,
const InterfaceID iid,
void **  ppSvc 
) const [private]

Definition at line 170 of file Converter.cpp.

00171                                                                  {
00172   // Check for name of conversion service
00173   SmartIF<IService> cnvsvc(conversionSvc());
00174   if (cnvsvc.isValid()) {
00175     const ServiceLocatorHelper helper(*serviceLocator(), "Converter", cnvsvc->name());
00176     return helper.createService(svcType, svcName, iid, ppSvc);
00177   }
00178   return StatusCode::FAILURE;
00179 }


Member Data Documentation

long Converter::m_storageType [private]

Storage type.

Definition at line 118 of file Converter.h.

const CLID Converter::m_classType [private]

Class type the converter can handle.

Definition at line 120 of file Converter.h.

Pointer to the address creation service interface.

Definition at line 122 of file Converter.h.

Pointer to data provider service.

Definition at line 124 of file Converter.h.

Pointer to data manager service.

Definition at line 126 of file Converter.h.

Pointer to the connected conversion service.

Definition at line 128 of file Converter.h.

Service Locator reference.

Definition at line 130 of file Converter.h.

MessageSvc reference.

Definition at line 132 of file Converter.h.


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

Generated at Mon Feb 15 17:38:58 2010 for Gaudi Framework, version v21r7p1 by Doxygen version 1.5.6 written by Dimitri van Heesch, © 1997-2004