| # 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 Types | Protected Attributes | List of all members
HistogramPersistencySvc Class Reference

HistogramPersistencySvc class implementation definition. More...

`#include <HistogramPersistencySvc.h>`

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

## Public Types
typedef std::vector< std::string > | Strings
| the actual type for the vector of strings
typedef std::set< std::string > | Set
| for report: unconverted histograms

## Public Member Functions
PersistencySvc overrides
virtual StatusCode | initialize ()
| Initialize the service.
virtual StatusCode | reinitialize ()
| Reinitialize the service.
virtual StatusCode | finalize ()
| Finalize the service.
virtual StatusCode | createRep (DataObject *pObject, IOpaqueAddress *&refpAddress)
| Implementation of IConverter: Convert the transient object to the requested representation.
: Object implementation
| HistogramPersistencySvc (const std::string &name, ISvcLocator *svc)
| Standard Constructor.
virtual | ~HistogramPersistencySvc ()
| Standard Destructor.
Public Member Functions inherited from PersistencySvc
long | repSvcType () const
| Return default service type.
const CLID & | objType () const
| Retrieve the class type of objects the converter produces. (DUMMY)
virtual StatusCode | createObj (IOpaqueAddress *pAddress, DataObject *&refpObject)
| Implementation of IConverter: Create the transient representation of an object.
virtual StatusCode | fillObjRefs (IOpaqueAddress *pAddress, DataObject *pObject)
| Implementation of IConverter: Resolve the references of the created transient object.
virtual StatusCode | updateObj (IOpaqueAddress *pAddress, DataObject *refpObject)
| Implementation of IConverter: Update the transient object from the other representation.
virtual StatusCode | updateObjRefs (IOpaqueAddress *pAddress, DataObject *pObject)
| Implementation of IConverter: Update the references of an updated transient object.
virtual StatusCode | fillRepRefs (IOpaqueAddress *pAddress, DataObject *pObject)
| Implementation of IConverter: Resolve the references of the converted object.
virtual StatusCode | updateRep (IOpaqueAddress *pAddress, DataObject *pObject)
| Implementation of IConverter: Update the converted representation of a transient object.
virtual StatusCode | updateRepRefs (IOpaqueAddress *pAddress, DataObject *pObject)
| Implementation of IConverter: Update the references of an already converted object.
virtual StatusCode | setDataProvider (IDataProviderSvc *pStore)
| Define transient datastore.
virtual SmartIF < IDataProviderSvc > & | dataProvider () const
| Access reference to transient datastore.
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 StatusCode | addConverter (IConverter *pConverter)
| Add converter object to conversion service.
virtual StatusCode | addConverter (const CLID &clid)
| Add converter object to conversion service.
virtual IConverter * | converter (const CLID &clid)
| Retrieve converter from list.
virtual StatusCode | removeConverter (const CLID &clid)
| Remove converter object from conversion service (if present).
virtual StatusCode | connectOutput (const std::string &outputFile, const std::string &openMode)
| Connect the output file to the service with open mode.
virtual StatusCode | connectOutput (const std::string &outputFile)
| Connect the output file to the service.
virtual StatusCode | commitOutput (const std::string &output, bool do_commit)
| Commit pending output.
virtual StatusCode | createAddress (long svc_type, const CLID &clid, const std::string *pars, const unsigned long *ipars, IOpaqueAddress *&refpAddress)
| Create a Generic address using explicit arguments to identify a single object.
virtual StatusCode | convertAddress (const IOpaqueAddress *pAddress, std::string &refAddress)
| Convert an address to string form.
virtual StatusCode | createAddress (long svc_type, const CLID &clid, const std::string &refAddress, IOpaqueAddress *&refpAddress)
| Convert an address in string form to object form.
virtual StatusCode | addCnvService (IConversionSvc *service)
| Add a new Service.
virtual StatusCode | removeCnvService (long type)
| Remove a Service.
virtual StatusCode | setDefaultCnvService (long type)
| Set default service type.
virtual StatusCode | getService (long service_type, IConversionSvc *&refpSvc)
| Retrieve conversion service identified by technology.
virtual StatusCode | getService (const std::string &service_type, IConversionSvc *&refpSvc)
| Retrieve conversion service identified by technology.
| PersistencySvc (const std::string &name, ISvcLocator *svc)
| Standard Constructor.
virtual | ~PersistencySvc ()
| Standard Destructor.
Public Member Functions inherited from extends3< Service, IConversionSvc, IPersistencySvc, IAddressCreator >
| extends3 (A1 a1, A2 a2, A3 a3)
| Templated constructor with 3 arguments.
| extends3 (A1 a1, A2 a2)
| Templated constructor with 2 arguments.
| extends3 (A1 a1)
| Templated constructor with 1 argument.
| extends3 ()
| 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 | ~extends3 ()
| Virtual destructor.
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_interfaces3< I1, I2, I3 >
virtual | ~extend_interfaces3 ()
| Virtual destructor.

## Protected Attributes
std::string | m_histPersName
| Name of the Hist Pers type.
std::string | m_outputFile
| Name of the outputFile.
Strings | m_convert
| the list of patterns to be converted
Strings | m_exclude
| the list of patterns to be excludes
Set | m_converted
| for the final report: the list of converted histograms
Set | m_excluded
| for the final report: the list of excluded histograms
bool | m_warnings
| Flag to disable warning messages when using external input.
Protected Attributes inherited from PersistencySvc
long | m_cnvDefType
| Default service type.
SmartIF< IDataProviderSvc > | m_dataSvc
| Pointer to datma provider service.
Services | m_cnvServices
| List of convermsion workers.
SmartIF< IConversionSvc > | m_cnvDefault
| Default output service.
StringArrayProperty | m_svcNames
| Names of services to be requested from the service locator and added by default.
bool | m_enable
| Flag to indicate that the service is enabled.
SmartIF< IAddressCreator > | m_addrCreator
| Pointer to the IAddressCreator interface of this, for addressCreator().

## Additional Inherited Members
Protected Types inherited from PersistencySvc
typedef std::map< long, ServiceEntry > | Services
Protected Member Functions inherited from PersistencySvc
void | svcNamesHandler (Property &theProp)
| Handlers for Service Names Property.
SmartIF< IConversionSvc > & | service (const std::string &nam)
| Retrieve conversion service by name.
SmartIF< IConversionSvc > & | service (long service_type)
| Retrieve conversion service from list.
SmartIF< IAddressCreator > & | addressCreator (long service_type)
| Retrieve address creator from list.
void | encodeAddrHdr (long service_type, const CLID &clid, std::string &address) const
| Retrieve string from storage type and clid.
void | decodeAddrHdr (const std::string &address, long &service_type, CLID &clid, std::string &address_trailer) const
| Retrieve storage type and clid from address header of string.
StatusCode | makeCall (int typ, IOpaqueAddress *&pAddress, DataObject *&pObject)
| Implementation helper.
bool | enable (bool value)
| Set enabled flag.

## Detailed Description

HistogramPersistencySvc class implementation definition.

System: The LHCb Offline System

Package: HistogramPersistencySvc

Dependencies:

- PersistencySvc definition: "Kernel/Interfaces/PersistencySvc.h"

History:

    +---------+----------------------------------------------+---------+
    |    Date |                 Comment                      | Who     |
    +---------+----------------------------------------------+---------+
    | 3/11/98 | Initial version                              | M.Frank |
    +---------+----------------------------------------------+---------+

Author
  Markus Frank

Version
  1.0

Definition at line 48 of file HistogramPersistencySvc.h.

## Member Typedef Documentation

typedef std::set<std::string> HistogramPersistencySvc::Set

for report: unconverted histograms

Definition at line 76 of file HistogramPersistencySvc.h.

typedef std::vector<std::string> HistogramPersistencySvc::Strings

the actual type for the vector of strings

Definition at line 74 of file HistogramPersistencySvc.h.

## Constructor & Destructor Documentation

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

Standard Constructor.

Definition at line 247 of file HistogramPersistencySvc.cpp.

: PersistencySvc(name, svc)
//
, m_convert ()
, m_exclude ()
, m_converted ()
, m_excluded ()
//
{
std::vector<std::string> defServices;
defServices.push_back("RootHistSvc");
m_svcNames.set(defServices);
declareProperty ("HistogramPersistency", m_histPersName = "");
declareProperty ("OutputFile", m_outputFile = "");
//
declareProperty
("ConvertHistos" , m_convert ,
"The list of patterns to be accepted for conversion" ) ;
//
declareProperty
("ExcludeHistos" , m_exclude ,
"The list of patterns to be excluded for conversion" ) ;
declareProperty("Warnings",m_warnings=true,
"Set this property to false to suppress warning messages");
}

HistogramPersistencySvc::~HistogramPersistencySvc | ( |  | ) |
| virtual

Standard Destructor.

Definition at line 276 of file HistogramPersistencySvc.cpp.

{}

## Member Function Documentation

StatusCode HistogramPersistencySvc::createRep | ( | DataObject * | pObject,
|  | IOpaqueAddress *& | refpAddress
| ) |  |
| virtual

Implementation of IConverter: Convert the transient object to the requested representation.

Reimplemented from PersistencySvc.

Definition at line 205 of file HistogramPersistencySvc.cpp.

{
// enable the conversion
enable ( true ) ;
// conversion is possible ?
if ( "NONE" == m_histPersName )
{
enable ( false ) ;
return PersistencySvc::createRep ( pObj , refpAddr ) ; // RETURN
}
// histogram ?
if ( 0 != dynamic_cast<AIDA::IBaseHistogram*> ( pObj ) )
{
bool select = false ;
// Empty ConvertHistos property means convert all
if ( m_convert.empty() ) { select = true ; }
else
{
for ( Strings::const_iterator item = m_convert.begin() ;
m_convert.end() != item ; ++item )
{ if ( match ( pObj , *item ) ) { select = true ; break ; } }
}
// exclude ?
for ( Strings::const_iterator item = m_exclude.begin() ;
m_exclude.end() != item && select ; ++item )
{ if ( match ( pObj , *item ) ) { select = false ; break ; } }
//
enable ( select ) ;
//
const std::string& path = oname ( pObj ) ;
//
if ( !select ) { m_excluded.insert ( path ) ; }
else { m_converted.insert ( path ) ; }
}
//
return PersistencySvc::createRep ( pObj , refpAddr ) ; // RETURN
}

StatusCode HistogramPersistencySvc::finalize | ( |  | ) |
| virtual

Finalize the service.

Reimplemented from PersistencySvc.

Definition at line 52 of file HistogramPersistencySvc.cpp.

{
//
MsgStream log ( msgSvc() , name() );
if ( !(m_convert.empty() && m_exclude.empty()) )
{ // print message if any of the two properties is used
log << MSG::INFO << "Histograms Converted/Excluded: "
<< m_converted.size() << "/" << m_excluded.size() << endmsg ;
}
if (msgLevel(MSG::DEBUG)) {
if ( !m_excluded.empty() )
{
log << MSG::DEBUG << "Excluded Histos : #" << m_excluded.size() ;
for ( Set::const_iterator item = m_excluded.begin() ;
m_excluded.end() != item ; ++item )
{ log << std::endl << " '" << (*item) << "'" ; }
log << endmsg ;
}
//
if ( !m_converted.empty() )
{
log << MSG::DEBUG << "Converted Histos : #" << m_converted.size() ;
for ( Set::const_iterator item = m_converted.begin() ;
m_converted.end() != item ; ++item )
{ log << std::endl << " '" << (*item) << "'" ; }
log << endmsg ;
}
}
return PersistencySvc::finalize();
}

StatusCode HistogramPersistencySvc::initialize | ( |  | ) |
| virtual

Initialize the service.

Reimplemented from PersistencySvc.

Definition at line 85 of file HistogramPersistencySvc.cpp.

{
StatusCode status = PersistencySvc::initialize();
if ( status.isSuccess() ) {
status = reinitialize();
}
return status;
}

StatusCode HistogramPersistencySvc::reinitialize | ( |  | ) |
| virtual

Reinitialize the service.

Reimplemented from Service.

Definition at line 95 of file HistogramPersistencySvc.cpp.

{
MsgStream log(msgSvc(), name());
// Obtain the IProperty of the ApplicationMgr
SmartIF<IProperty> prpMgr(serviceLocator());
if ( !prpMgr.isValid() ) {
log << MSG::FATAL << "IProperty interface not found in ApplicationMgr." << endmsg;
return StatusCode::FAILURE;
}
else {
setProperty(prpMgr->getProperty("HistogramPersistency")).ignore();
}
// To keep backward compatibility, we set the property of conversion service
// into JobOptions catalogue
if( m_outputFile != "" ) {
SmartIF<IJobOptionsSvc> joptsvc(serviceLocator()->service("JobOptionsSvc"));
if( joptsvc.isValid() ) {
StringProperty p("OutputFile", m_outputFile);
if ( m_histPersName == "ROOT" ) {
joptsvc->addPropertyToCatalogue("RootHistSvc", p).ignore();
} else if (m_histPersName == "HBOOK" ) {
joptsvc->addPropertyToCatalogue("HbookHistSvc", p).ignore();
}
}
}
// Load the Histogram persistency service that's required as default
setConversionSvc(0).ignore();
if ( m_histPersName == "ROOT" ) {
setConversionSvc(service("RootHistSvc")).ignore();
if ( !conversionSvc() ) {
return StatusCode::FAILURE;
}
enable(true);
}
else if ( m_histPersName == "HBOOK" ) {
setConversionSvc(service("HbookHistSvc")).ignore();
if ( !conversionSvc() ) {
return StatusCode::FAILURE;
}
enable(true);
}
else if ( m_histPersName == "NONE" ) {
enable(false);
if ( m_warnings ) {
log << MSG::WARNING << "Histograms saving not required." << endmsg;
}
}
else {
setConversionSvc(service(m_histPersName)).ignore();
if ( !conversionSvc() ) {
return StatusCode::FAILURE;
}
enable(true);
if ( m_warnings ) {
log << MSG::WARNING << "Unknown Histogram Persistency Mechanism " << m_histPersName << endmsg;
}
}
return StatusCode::SUCCESS;
}

## Member Data Documentation

Strings HistogramPersistencySvc::m_convert
| protected

the list of patterns to be converted

Definition at line 84 of file HistogramPersistencySvc.h.

Set HistogramPersistencySvc::m_converted
| protected

for the final report: the list of converted histograms

Definition at line 88 of file HistogramPersistencySvc.h.

Strings HistogramPersistencySvc::m_exclude
| protected

the list of patterns to be excludes

Definition at line 86 of file HistogramPersistencySvc.h.

Set HistogramPersistencySvc::m_excluded
| protected

for the final report: the list of excluded histograms

Definition at line 90 of file HistogramPersistencySvc.h.

std::string HistogramPersistencySvc::m_histPersName
| protected

Name of the Hist Pers type.

Definition at line 80 of file HistogramPersistencySvc.h.

std::string HistogramPersistencySvc::m_outputFile
| protected

Name of the outputFile.

Definition at line 82 of file HistogramPersistencySvc.h.

bool HistogramPersistencySvc::m_warnings
| protected

Flag to disable warning messages when using external input.

Definition at line 92 of file HistogramPersistencySvc.h.

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

- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v25r0/GaudiCommonSvc/src/PersistencySvc/HistogramPersistencySvc.h
- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v25r0/GaudiCommonSvc/src/PersistencySvc/HistogramPersistencySvc.cpp