| # Gaudi Framework, version v25r0 |

Home |  | Generated: Mon Feb 17 2014

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

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
DetDataSvc Class Reference

More...

`#include <DetectorDataSvc/DetDataSvc.h>`

Inheritance diagram for DetDataSvc:
[legend]
Collaboration diagram for DetDataSvc:
[legend]

## Public Member Functions
virtual StatusCode | initialize ()
| Initialize the service.
virtual StatusCode | reinitialize ()
| Initialize the service.
virtual StatusCode | finalize ()
| Finalize the service.
virtual StatusCode | clearStore ()
| Remove all data objects in the data store.
virtual StatusCode | updateObject (DataObject *toUpdate)
| Update object.
| DetDataSvc (const std::string &name, ISvcLocator *svc)
| Standard Constructor.
virtual | ~DetDataSvc ()
| Standard Destructor.
virtual bool | validEventTime () const
| Check if the event time has been set.
virtual const Gaudi::Time & | eventTime () const
| Get the event time.
virtual void | setEventTime (const Gaudi::Time &time)
| Set the new event time.
virtual void | handle (const Incident &)
| Inform that a new incident has occured.
Public Member Functions inherited from extends2< DataSvc, IDetDataSvc, IIncidentListener >
| extends2 (A1 a1, A2 a2, A3 a3)
| Templated constructor with 3 arguments.
| extends2 (A1 a1, A2 a2)
| Templated constructor with 2 arguments.
| extends2 (A1 a1)
| Templated constructor with 1 argument.
| extends2 ()
| Default constructor.
virtual void * | i_cast (const InterfaceID &tid) const
| Implementation of IInterface::i_cast.
virtual StatusCode | queryInterface (const InterfaceID &ti, void **pp)
| Implementation of IInterface::queryInterface.
virtual std::vector< std::string > | getInterfaceNames () const
| Implementation of IInterface::getInterfaceNames.
virtual | ~extends2 ()
| Virtual destructor.
Public Member Functions inherited from DataSvc
virtual CLID | rootCLID () const
| IDataManagerSvc: Accessor for root event CLID.
virtual std::string | rootName () const
| IDataManagerSvc: Accessor for root event name.
virtual StatusCode | registerAddress (const std::string &fullPath, IOpaqueAddress *pAddress)
| IDataManagerSvc: Register object address with the data store.
virtual StatusCode | registerAddress (DataObject *parentObj, const std::string &objectPath, IOpaqueAddress *pAddress)
| IDataManagerSvc: Register object address with the data store.
virtual StatusCode | registerAddress (IRegistry *parentObj, const std::string &objectPath, IOpaqueAddress *pAddress)
| IDataManagerSvc: Register object address with the data store.
virtual StatusCode | unregisterAddress (const std::string &fullPath)
| IDataManagerSvc: Unregister object address from the data store.
virtual StatusCode | unregisterAddress (DataObject *pParent, const std::string &objPath)
| IDataManagerSvc: Unregister object address from the data store.
virtual StatusCode | unregisterAddress (IRegistry *pParent, const std::string &objPath)
| IDataManagerSvc: Unregister object address from the data store.
virtual StatusCode | objectLeaves (const DataObject *pObject, std::vector< IRegistry * > &refLeaves)
| IDataManagerSvc: Explore the object store: retrieve all leaves attached to the object.
virtual StatusCode | objectLeaves (const IRegistry *pRegistry, std::vector< IRegistry * > &refLeaves)
| IDataManagerSvc: Explore the object store: retrieve all leaves attached to the object.
virtual StatusCode | objectParent (const DataObject *pObject, IRegistry *&refpParent)
| IDataManagerSvc: Explore the object store: retrieve the object's parent.
virtual StatusCode | objectParent (const IRegistry *pRegistry, IRegistry *&refpParent)
| IDataManagerSvc: Explore the object store: retrieve the object's parent.
virtual StatusCode | clearSubTree (const std::string &sub_tree_path)
| IDataManagerSvc: Remove all data objects below the sub tree identified by its full path name.
virtual StatusCode | clearSubTree (DataObject *pObject)
| IDataManagerSvc: Remove all data objects below the sub tree identified by the object.
virtual StatusCode | traverseSubTree (const std::string &sub_tree_path, IDataStoreAgent *pAgent)
| IDataManagerSvc: Analyze by traversing all data objects below the sub tree identified by its full path name.
virtual StatusCode | traverseSubTree (DataObject *pObject, IDataStoreAgent *pAgent)
| IDataManagerSvc: Analyze by traversing all data objects below the sub tree.
virtual StatusCode | traverseTree (IDataStoreAgent *pAgent)
| IDataManagerSvc: Analyze by traversing all data objects in the data store.
virtual StatusCode | setRoot (const std::string &root_name, DataObject *pRootObj)
| Initialize data store for new event by giving new event path and root object.
virtual StatusCode | i_setRoot (const std::string &root_name, DataObject *pRootObj)
| Initialize data store for new event by giving new event path and root object.
virtual StatusCode | setRoot (const std::string &root_path, IOpaqueAddress *pRootAddr)
| Initialize data store for new event by giving new event path and address of root object.
virtual StatusCode | i_setRoot (const std::string &root_path, IOpaqueAddress *pRootAddr)
| Initialize data store for new event by giving new event path and address of root object.
virtual StatusCode | setDataLoader (IConversionSvc *svc)
| IDataManagerSvc: IDataManagerSvc: Pass a default data loader to the service.
virtual StatusCode | addPreLoadItem (const DataStoreItem &item)
| Add an item to the preload list.
virtual StatusCode | addPreLoadItem (const std::string &itemPath)
| Add an item to the preload list.
virtual StatusCode | removePreLoadItem (const DataStoreItem &item)
| Remove an item from the preload list.
virtual StatusCode | removePreLoadItem (const std::string &itemPath)
| Add an item to the preload list.
virtual StatusCode | resetPreLoad ()
| Clear the preload list.
virtual StatusCode | preLoad (int depth, int load_depth, DataObject *pObject)
| Execute one level of preloading and recursively load until the final level is reached.
virtual StatusCode | preLoad ()
| load all preload items of the list
virtual StatusCode | registerObject (const std::string &fullPath, DataObject *pObject)
| Register object with the data store.
virtual StatusCode | registerObject (const std::string &parentPath, const std::string &objPath, DataObject *pObject)
| Register object with the data store.
virtual StatusCode | registerObject (const std::string &parentPath, int item, DataObject *pObject)
| Register object with the data store.
virtual StatusCode | registerObject (DataObject *parentObj, const std::string &objPath, DataObject *pObject)
| Register object with the data store.
virtual StatusCode | registerObject (DataObject *parentObj, int item, DataObject *pObject)
| Register object with the data store.
virtual StatusCode | unregisterObject (const std::string &fullPath)
| Unregister object from the data store.
virtual StatusCode | unregisterObject (const std::string &parentPath, const std::string &objectPath)
| Unregister object from the data store.
virtual StatusCode | unregisterObject (const std::string &parentPath, int item)
| Unregister object from the data store.
virtual StatusCode | unregisterObject (DataObject *pObject)
| Unregister object from the data store.
virtual StatusCode | unregisterObject (DataObject *pObject, const std::string &objectPath)
| Unregister object from the data store.
virtual StatusCode | unregisterObject (DataObject *pObject, int item)
| Unregister object from the data store.
virtual StatusCode | retrieveObject (IRegistry *pDirectory, const std::string &path, DataObject *&pObject)
| Retrieve object from data store.
virtual StatusCode | retrieveObject (const std::string &fullPath, DataObject *&pObject)
| Retrieve object identified by its full path from the data store.
virtual StatusCode | retrieveObject (const std::string &parentPath, const std::string &objPath, DataObject *&pObject)
| Retrieve object from data store.
virtual StatusCode | retrieveObject (const std::string &parentPath, int item, DataObject *&pObject)
| Retrieve object from data store.
virtual StatusCode | retrieveObject (DataObject *parentObj, const std::string &objPath, DataObject *&pObject)
| Retrieve object from data store.
virtual StatusCode | retrieveObject (DataObject *parentObj, int item, DataObject *&pObject)
| Retrieve object from data store.
virtual StatusCode | findObject (const std::string &fullPath, DataObject *&pObject)
| Find object identified by its full path in the data store.
virtual StatusCode | findObject (IRegistry *pDirectory, const std::string &path, DataObject *&pObject)
| Find object identified by its full path in the data store.
virtual StatusCode | findObject (const std::string &parentPath, const std::string &objPath, DataObject *&pObject)
| Find object in the data store.
virtual StatusCode | findObject (const std::string &parentPath, int item, DataObject *&pObject)
| Find object in the data store.
virtual StatusCode | findObject (DataObject *parentObj, const std::string &objPath, DataObject *&pObject)
| Find object in the data store.
virtual StatusCode | findObject (DataObject *parentObj, int item, DataObject *&pObject)
| Find object in the data store.
virtual StatusCode | linkObject (IRegistry *from, const std::string &objPath, DataObject *to)
| Add a link to another object.
virtual StatusCode | linkObject (const std::string &fromPath, const std::string &objPath, DataObject *to)
| Add a link to another object.
virtual StatusCode | linkObject (DataObject *from, const std::string &objPath, DataObject *to)
| Add a link to another object.
virtual StatusCode | linkObject (const std::string &fullPath, DataObject *to)
| Add a link to another object.
virtual StatusCode | unlinkObject (IRegistry *from, const std::string &objPath)
| Remove a link to another object.
virtual StatusCode | unlinkObject (const std::string &fromPath, const std::string &objPath)
| Remove a link to another object.
virtual StatusCode | unlinkObject (DataObject *fromObj, const std::string &objPath)
| Remove a link to another object.
virtual StatusCode | unlinkObject (const std::string &fullPath)
| Remove a link to another object.
virtual StatusCode | updateObject (IRegistry *pDirectory)
| Update object identified by its directory entry.
virtual StatusCode | updateObject (const std::string &updatePath)
| Update object.
virtual StatusCode | updateObject (const std::string &parentPath, const std::string &updatePath)
| Update object.
virtual StatusCode | updateObject (DataObject *pParent, const std::string &updatePath)
| Update object.
| DataSvc (const std::string &name, ISvcLocator *svc)
| Standard Constructor.
virtual | ~DataSvc ()
| Standard Destructor.
Public Member Functions inherited from extends2< Service, IDataProviderSvc, IDataManagerSvc >
| extends2 (A1 a1, A2 a2, A3 a3)
| Templated constructor with 3 arguments.
| extends2 (A1 a1, A2 a2)
| Templated constructor with 2 arguments.
| extends2 (A1 a1)
| Templated constructor with 1 argument.
| extends2 ()
| Default constructor.
Public Member Functions inherited from Service
virtual unsigned long | release ()
| Release Interface instance.
virtual const std::string & | name () const
| Retrieve name of the service.
virtual StatusCode | configure ()
virtual StatusCode | start ()
virtual StatusCode | stop ()
virtual StatusCode | terminate ()
virtual Gaudi::StateMachine::State | FSMState () const
virtual Gaudi::StateMachine::State | targetFSMState () const
virtual StatusCode | restart ()
virtual StatusCode | sysInitialize ()
| Initialize Service.
virtual StatusCode | sysStart ()
| Initialize Service.
virtual StatusCode | sysStop ()
| Initialize Service.
virtual StatusCode | sysFinalize ()
| Finalize Service.
virtual StatusCode | sysReinitialize ()
| Re-initialize the Service.
virtual StatusCode | sysRestart ()
| Re-initialize the Service.
virtual StatusCode | setProperty (const Property &p)
virtual StatusCode | setProperty (const std::string &s)
virtual StatusCode | setProperty (const std::string &n, const std::string &v)
virtual StatusCode | getProperty (Property *p) const
virtual const Property & | getProperty (const std::string &name) const
virtual StatusCode | getProperty (const std::string &n, std::string &v) const
virtual const std::vector < Property * > & | getProperties () const
template<class TYPE >
StatusCode | setProperty (const std::string &name, const TYPE &value)
| set the property form the value
| Service (const std::string &name, ISvcLocator *svcloc)
| Standard Constructor.
SmartIF< ISvcLocator > & | serviceLocator () const
| Retrieve pointer to service locator.
StatusCode | setProperties ()
| Method for setting declared properties to the values specified for the job.
template<class T >
StatusCode | service (const std::string &name, const T *&psvc, bool createIf=true) const
| Access a service by name, creating it if it doesn't already exist.
template<class T >
StatusCode | service (const std::string &name, T *&psvc, bool createIf=true) const
template<class T >
StatusCode | service (const std::string &svcType, const std::string &svcName, T *&psvc) const
| Access a service by name and type, creating it if it doesn't already exist.
template<class T >
Property * | declareProperty (const std::string &name, T &property, const std::string &doc="none") const
| Declare the named property.
Property * | declareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") const
| Declare remote named properties.
SmartIF< IAuditorSvc > & | auditorSvc () const
| The standard auditor service.May not be invoked before sysInitialize() has been invoked.
Public Member Functions inherited from CommonMessaging< implements3< IService, IProperty, IStateful > >
| CommonMessaging (const A1 &a1, const A2 &a2, const A3 &a3)
| Templated constructor with 3 arguments.
| CommonMessaging (const A1 &a1, const A2 &a2)
| Templated constructor with 2 arguments.
| CommonMessaging (const A1 &a1)
| Templated constructor with 1 argument.
| CommonMessaging ()
| Default constructor.
virtual | ~CommonMessaging ()
| Virtual destructor.
SmartIF< IMessageSvc > & | msgSvc () const
| The standard message service.
MsgStream & | msgStream () const
| Return an uninitialized MsgStream.
MsgStream & | msgStream (const MSG::Level level) const
| Predefined configurable message stream for the efficient printouts.
MsgStream & | always () const
| shortcut for the method msgStream(MSG::ALWAYS)
MsgStream & | fatal () const
| shortcut for the method msgStream(MSG::FATAL)
MsgStream & | err () const
| shortcut for the method msgStream(MSG::ERROR)
MsgStream & | error () const
| shortcut for the method msgStream(MSG::ERROR)
MsgStream & | warning () const
| shortcut for the method msgStream(MSG::WARNING)
MsgStream & | info () const
| shortcut for the method msgStream(MSG::INFO)
MsgStream & | debug () const
| shortcut for the method msgStream(MSG::DEBUG)
MsgStream & | verbose () const
| shortcut for the method msgStream(MSG::VERBOSE)
MsgStream & | msg () const
| shortcut for the method msgStream(MSG::INFO)
MSG::Level | msgLevel () const
| get the output level from the embedded MsgStream
bool | msgLevel (MSG::Level lvl) const
| get the output level from the embedded MsgStream
Public Member Functions inherited from extend_interfaces2< I1, I2 >
virtual | ~extend_interfaces2 ()
| Virtual destructor.

## Private Member Functions
StatusCode | setupDetectorDescription ()
| Deal with Detector Description initialization.

## Private Attributes
int | m_detStorageType
| Detector Data Persistency Storage type.
std::string | m_detDbLocation
| Location of detector Db (filename,URL)
std::string | m_detDbRootName
| Name of the root node of the detector.
std::string | m_persistencySvcName
| Name of the persistency service.
bool | m_usePersistency
| Flag to control if the persistency is required.
Gaudi::Time | m_eventTime
| Current event time.
SmartIF< IAddressCreator > | m_addrCreator
| Address Creator to be used.

## Additional Inherited Members
Public Types inherited from extends2< DataSvc, IDetDataSvc, IIncidentListener >
typedef extends2 | base_class
| Typedef to this class.
typedef extend_interfaces2 < IDetDataSvc, IIncidentListener > | extend_interfaces_base
| Typedef to the base of this class.
typedef extend_interfaces_base::ext_iids | interfaces
| MPL set of all the implemented interfaces.
Protected Member Functions inherited from DataSvc
bool | checkRoot ()
| Check if root path is valid.
virtual IConversionSvc * | getDataLoader (IRegistry *pReg)
| Retrieve customizable data loader according to registry entry to be retrieved.
virtual DataObject * | createDefaultObject () const
| Create default objects in case forced creation of leaves is requested.
virtual StatusCode | loadObject (IRegistry *pNode)
| Invoke Persistency service to create transient object from its persistent representation.
virtual StatusCode | loadObject (IConversionSvc *pLoader, IRegistry *pNode)
| Invoke Persistency service to create transient object from its persistent representation.
StatusCode | retrieveEntry (DataSvcHelpers::RegistryEntry *pNode, const std::string &path, DataSvcHelpers::RegistryEntry *&pEntry)
| Retrieve registry entry from store.
DataObject * | handleDataFault (IRegistry *pReg, const std::string &path="")
| Invoke data fault handling if enabled.
Protected Attributes inherited from DataSvc
CLID | m_rootCLID
| Integer Property corresponding to CLID of root entry.
std::string | m_rootName
| Name of root event.
IConversionSvc * | m_dataLoader
| Pointer to data loader service.
IIncidentSvc * | m_incidentSvc
| Pointer to incident service.
LoadItems | m_preLoads
| Items to be pre-loaded.
bool | m_forceLeaves
| Allow forced creation of default leaves on registerObject.
bool | m_enableAccessHdlr
| Flag to enable interrupts on data access requests.
bool | m_enableFaultHdlr
| Flag to enable interrupts on data creation requests.
DataSvcHelpers::RegistryEntry * | m_root
| Pointer to root entry.
DataSvcHelpers::InhibitMap * | m_inhibitMap
| Map with object paths to be inhibited from loading.
std::vector< std::string > | m_inhibitPathes
| Property for the inhibited leaves.
std::string | m_accessName
| Name of the data access incident.
std::string | m_faultName
| Name of the data fault incident.

## Detailed Description

A DataSvc specialized in detector data.

Author
  Marco Clemencic (previous author unknown)

Definition at line 24 of file DetDataSvc.h.

## Constructor & Destructor Documentation

DetDataSvc::DetDataSvc | ( | const std::string & | name,
|  | ISvcLocator * | svc
| ) |  |

Standard Constructor.

Definition at line 185 of file DetDataSvc.cpp.

:
base_class(name,svc), m_eventTime(0) {
declareProperty("DetStorageType", m_detStorageType = XML_StorageType );
declareProperty("DetDbLocation", m_detDbLocation = "empty" );
declareProperty("DetDbRootName", m_detDbRootName = "dd" );
declareProperty("UsePersistency", m_usePersistency = false );
declareProperty("PersistencySvc", m_persistencySvcName = "DetectorPersistencySvc" );
m_rootName = "/dd";
m_rootCLID = CLID_Catalog;
m_addrCreator = 0;
}

DetDataSvc::~DetDataSvc | ( |  | ) |
| virtual

Standard Destructor.

Definition at line 198 of file DetDataSvc.cpp.

{
}

## Member Function Documentation

StatusCode DetDataSvc::clearStore | ( |  | ) |
| virtual

Remove all data objects in the data store.

Reimplemented from DataSvc.

Definition at line 151 of file DetDataSvc.cpp.

{
MsgStream log(msgSvc(), name());
DataSvc::clearStore().ignore();
if( m_usePersistency ) {
// Create root address
unsigned long iargs[] = {0,0};
const std::string args[] = {m_detDbLocation, m_detDbRootName};
IOpaqueAddress* rootAddr;
StatusCode sc = m_addrCreator->createAddress (m_detStorageType,
CLID_Catalog,
args,
iargs,
rootAddr);
// Set detector data store root
if( sc.isSuccess() ) {
std::string dbrName = "/" + m_detDbRootName;
sc = i_setRoot( dbrName, rootAddr );
if( sc.isFailure() ) {
error() << "Unable to set detector data store root" << endmsg;
}
} else {
error() << "Unable to create address for /dd" << endmsg;
}
return sc;
}
return StatusCode::SUCCESS;
}

const Gaudi::Time & DetDataSvc::eventTime | ( |  | ) | const
| virtual

Get the event time.

Definition at line 213 of file DetDataSvc.cpp.

{
return m_eventTime;
}

StatusCode DetDataSvc::finalize | ( |  | ) |
| virtual

Finalize the service.

Reimplemented from DataSvc.

Definition at line 132 of file DetDataSvc.cpp.

{
DEBMSG << "Finalizing" << endmsg;
// clears the store
m_usePersistency = false; // avoid creation of an empty store when clearing
clearStore().ignore();
// Releases the address creator
m_addrCreator = 0;
// Releases the DataLoader
setDataLoader(0).ignore();
// Finalize the base class
return DataSvc::finalize();
}

void DetDataSvc::handle | ( | const Incident & | inc | ) |
| virtual

Inform that a new incident has occured.

Inform that a new incident has occurred.

Definition at line 218 of file DetDataSvc.cpp.

{
ON_DEBUG {
debug() << "New incident received" << endmsg;
debug() << "Incident source: " << inc.source() << endmsg;
debug() << "Incident type: " << inc.type() << endmsg;
}
return;
}

StatusCode DetDataSvc::initialize | ( |  | ) |
| virtual

Initialize the service.

Reimplemented from DataSvc.

Definition at line 27 of file DetDataSvc.cpp.

{
// Call base class initialization
StatusCode sc = DataSvc::initialize();
if( UNLIKELY(sc.isFailure()) ) return sc;
// Set Data Loader
SmartIF<IConversionSvc> cnv_svc(serviceLocator()->service(m_persistencySvcName));
if( UNLIKELY(!cnv_svc.isValid()) ) {
error() << "Unable to retrieve " << m_persistencySvcName << endmsg;
return StatusCode::FAILURE;
}
sc = setDataLoader(cnv_svc);
if( UNLIKELY(sc.isFailure()) ) {
error() << "Unable to set DataLoader" << endmsg;
return sc;
}
// Get address creator from the DetectorPersistencySvc
m_addrCreator = cnv_svc;
if ( UNLIKELY(!m_addrCreator.isValid()) ) {
error() << "Unable to get AddressCreator." << endmsg;
return StatusCode::FAILURE;
}
return setupDetectorDescription();
}

StatusCode DetDataSvc::reinitialize | ( |  | ) |
| virtual

Initialize the service.

Reimplemented from DataSvc.

Definition at line 114 of file DetDataSvc.cpp.

{
// The DetectorDataSvc does not need to be re-initialized. If it is done
// all the Algorithms having references to DetectorElements will become
// invalid and crash the program. (Pere Mato)
// Call base class reinitialization
//StatusCode sc = DataSvc::reinitialize();
//if( sc.isFailure() ) return sc;
// Delete the associated event time
//if( 0 != m_eventTime ) delete m_eventTime;
//m_eventTimeDefined = false;
//return setupDetectorDescription();
return StatusCode::SUCCESS;
}

void DetDataSvc::setEventTime | ( | const Gaudi::Time & | time | ) |
| virtual

Set the new event time.

Definition at line 202 of file DetDataSvc.cpp.

{
m_eventTime = time;
DEBMSG << "Event Time set to " << eventTime() << endmsg;
}

StatusCode DetDataSvc::setupDetectorDescription | ( |  | ) |
| private

Deal with Detector Description initialization.

Todo:
  : remove references to obsolete package XMLDDDBROOT

Definition at line 55 of file DetDataSvc.cpp.

{
// Initialize the detector data transient store
ON_DEBUG {
debug() << "Storage type used is: " << m_detStorageType << endmsg;
debug() << "Setting DetectorDataSvc root node... " << endmsg;
}
if( m_usePersistency ) {
IOpaqueAddress* rootAddr;
if( m_detDbLocation.empty() || "empty" == m_detDbLocation ) {
// if the name of DBlocation is not given - construct it!
// by retrieving the value of XMLDDBROOT
if ( isEnvSet("XMLDDDBROOT") ) {
m_detDbLocation = getEnv("XMLDDDBROOT");
m_detDbLocation += "/DDDB/lhcb.xml";
}
}
if( m_detDbLocation.empty() || "empty" == m_detDbLocation ) {
error() << "Detector data location name not set. Detector data will "
"not be found." << endmsg;
return StatusCode::FAILURE;
}
else {
// Create address
unsigned long iargs[]={0,0};
const std::string args[] = {m_detDbLocation, m_detDbRootName};
StatusCode sc = m_addrCreator->createAddress (m_detStorageType,
CLID_Catalog,
args,
iargs,
rootAddr);
if( sc.isSuccess() ) {
std::string dbrName = "/" + m_detDbRootName;
sc = i_setRoot( dbrName, rootAddr );
if( sc.isFailure() ) {
error() << "Unable to set detector data store root" << endmsg;
return sc;
}
}
else {
error() << "Unable to create address for /dd" << endmsg;
return sc;
}
}
// Writing the description file in the output log file [bugs #2854]
always() << "Detector description database: " << m_detDbLocation << endmsg;
}
else {
info() << "Detector description not requested to be loaded" << endmsg;
}
return StatusCode::SUCCESS;
}

StatusCode DetDataSvc::updateObject | ( | DataObject * | toUpdate | ) |
| virtual

Update object.

Todo:
  update also its ancestors in the data store if necessary

Reimplemented from DataSvc.

Definition at line 229 of file DetDataSvc.cpp.

{
DEBMSG << "Method updateObject starting" << endmsg;
// Check that object to update exists
if ( 0 == toUpdate ) {
error() << "There is no DataObject to update" << endmsg;
return INVALID_OBJECT;
}
// Retrieve IValidity interface of object to update
IValidity* condition = dynamic_cast<IValidity*>( toUpdate );
if ( 0 == condition ) {
warning()
<< "Cannot update DataObject: DataObject does not implement IValidity"
<< endmsg;
return StatusCode::SUCCESS;
}
// Check that the event time has been defined
if ( !validEventTime() ) {
warning()
<< "Cannot update DataObject: event time undefined"
<< endmsg;
return StatusCode::SUCCESS;
}
// No need to update if condition is valid
if ( condition->isValid( eventTime() ) ) {
DEBMSG << "DataObject is valid: no need to update" << endmsg;
return StatusCode::SUCCESS;
} else {
DEBMSG << "DataObject is invalid: update it" << endmsg;
}
// TODO: before loading updated object, update HERE its parent in data store
// Now delegate update to the conversion service by calling the base class
DEBMSG << "Delegate update to relevant conversion service" << endmsg;
StatusCode status = DataSvc::updateObject(toUpdate);
if ( !status.isSuccess() ) {
error() << "Could not update DataObject" << endmsg;
if ( status == NO_DATA_LOADER )
error() << "There is no data loader" << endmsg;
return status;
}
// Now cross-check that the new condition is valid
condition = dynamic_cast<IValidity*>(toUpdate);
if ( 0 == condition ) {
error() << "Updated DataObject does not implement IValidity" << endmsg;
return StatusCode::FAILURE;
}
if ( FSMState() == Gaudi::StateMachine::RUNNING &&
!condition->isValid( eventTime() ) ) {
error() << "Updated DataObject is not valid" << endmsg;
error() << "Are you sure the conversion service has updated it?" << endmsg;
return StatusCode::FAILURE;
}
// DataObject was successfully updated
DEBMSG << "Method updateObject exiting successfully" << endmsg;
return StatusCode::SUCCESS;
}

bool DetDataSvc::validEventTime | ( |  | ) | const
| virtual

Check if the event time has been set.

Kept for backward compatibility, returns always true.

Definition at line 208 of file DetDataSvc.cpp.

{
return true;
}

## Member Data Documentation

SmartIF<IAddressCreator> DetDataSvc::m_addrCreator
| private

Address Creator to be used.

Definition at line 101 of file DetDataSvc.h.

std::string DetDataSvc::m_detDbLocation
| private

Location of detector Db (filename,URL)

Definition at line 86 of file DetDataSvc.h.

std::string DetDataSvc::m_detDbRootName
| private

Name of the root node of the detector.

Definition at line 89 of file DetDataSvc.h.

int DetDataSvc::m_detStorageType
| private

Detector Data Persistency Storage type.

Definition at line 83 of file DetDataSvc.h.

Gaudi::Time DetDataSvc::m_eventTime
| private

Current event time.

Definition at line 98 of file DetDataSvc.h.

std::string DetDataSvc::m_persistencySvcName
| private

Name of the persistency service.

Definition at line 92 of file DetDataSvc.h.

bool DetDataSvc::m_usePersistency
| private

Flag to control if the persistency is required.

Definition at line 95 of file DetDataSvc.h.

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

- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v25r0/GaudiSvc/src/DetectorDataSvc/DetDataSvc.h
- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v25r0/GaudiSvc/src/DetectorDataSvc/DetDataSvc.cpp