| The Gaudi Framework v27r1

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

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

Public Member Functions | Protected Member Functions | List of all members
TagCollectionSvc Class Reference

Gaudi tag collection service definition. More...

`#include <src/NTupleSvc/TagCollectionSvc.h>`

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

## Public Member Functions
| TagCollectionSvc (const std::string &name, ISvcLocator *svc)
| Standard Constructor. More...
| ~TagCollectionSvc () override=default
| Standard Destructor. More...
Public Member Functions inherited from NTupleSvc
virtual StatusCode | initialize ()
| DataSvc overrides: Initialize the service. More...
virtual StatusCode | reinitialize ()
| DataSvc overrides: reinitialize service. More...
virtual StatusCode | finalize ()
| DataSvc overrides: stop the service. More...
virtual IConversionSvc * | getDataLoader (IRegistry *pReg)
| DataSvc overrides: Retrieve data loader. More...
virtual NTuple::Directory * | createDirectory (DataObject *pParent, const std::string &title)
| Create Ntuple directory and register it with the data store. More...
virtual NTuple::Directory * | createDirectory (DataObject *pParent, long id)
| Create Ntuple directory and register it with the data store. More...
virtual NTuple::Directory * | createDirectory (const std::string &dirPath, long id)
| Create Ntuple directory and register it with the data store. More...
virtual NTuple::Directory * | createDirectory (const std::string &dirPath, const std::string &title)
| Create Ntuple directory and register it with the data store. More...
virtual NTuple::Directory * | createDirectory (const std::string &fullPath)
| Create Ntuple directory and register it with the data store. More...
virtual StatusCode | create (const CLID &typ, const std::string &title, NTuple::Tuple *&refpTuple)
| Create requested N tuple (Hide constructor) More...
virtual NTuple::Tuple * | book (const std::string &fullPath, const CLID &type, const std::string &title)
| Book Ntuple and register it with the data store. More...
virtual NTuple::Tuple * | book (const std::string &dirPath, const std::string &relPath, const CLID &type, const std::string &title)
| Book Ntuple and register it with the data store. More...
virtual NTuple::Tuple * | book (const std::string &dirPath, long id, const CLID &type, const std::string &title)
| Book Ntuple and register it with the data store. More...
virtual NTuple::Tuple * | book (DataObject *pParent, const std::string &relPath, const CLID &type, const std::string &title)
| Book Ntuple and register it with the data store. More...
virtual NTuple::Tuple * | book (DataObject *pParent, long id, const CLID &type, const std::string &title)
| Book Ntuple and register it with the data store. More...
virtual NTuple::Tuple * | access (const std::string &fullPath, const std::string &filename)
| Access N tuple on disk. More...
virtual StatusCode | save (const std::string &fullPath)
| Save N tuple to disk. Must be called in order to close the ntuple file properly. More...
virtual StatusCode | save (NTuple::Tuple *tuple)
| Save N tuple to disk. Must be called in order to close the ntuple file properly. More...
virtual StatusCode | save (DataObject *pParent, const std::string &relPath)
| Save N tuple to disk. Must be called in order to close the ntuple file properly. More...
virtual StatusCode | writeRecord (NTuple::Tuple *tuple)
| Write single record to N tuple. More...
virtual StatusCode | writeRecord (const std::string &fullPath)
| Write single record to N tuple. More...
virtual StatusCode | writeRecord (DataObject *pParent, const std::string &relPath)
| Write single record to N tuple. More...
virtual StatusCode | readRecord (NTuple::Tuple *tuple)
| Read single record from N tuple. More...
virtual StatusCode | readRecord (const std::string &fullPath)
| Read single record from N tuple. More...
virtual StatusCode | readRecord (DataObject *pParent, const std::string &relPath)
| Read single record from N tuple. More...
virtual bool | isConnected (const std::string &identifier) const
| Check if a datasource is connected. More...
virtual StatusCode | connect (const std::string &ident)
| Add file to list I/O list. More...
virtual StatusCode | disconnect (const std::string &nam)
| Close open connection. More...
virtual StatusCode | disconnectAll ()
| Close all open connections. More...
| NTupleSvc (const std::string &name, ISvcLocator *svc)
| Standard Constructor. More...
virtual | ~NTupleSvc ()
| Standard Destructor. More...
Public Member Functions inherited from extends< DataSvc, INTupleSvc, IDataSourceMgr >
void * | i_cast (const InterfaceID &tid) const override
| Implementation of IInterface::i_cast. More...
StatusCode | queryInterface (const InterfaceID &ti, void **pp) override
| Implementation of IInterface::queryInterface. More...
std::vector< std::string > | getInterfaceNames () const override
| Implementation of IInterface::getInterfaceNames. More...
| ~extends () override=default
| Virtual destructor. More...
Public Member Functions inherited from DataSvc
CLID | rootCLID () const override
| IDataManagerSvc: Accessor for root event CLID. More...
const std::string & | rootName () const override
| IDataManagerSvc: Accessor for root event name. More...
StatusCode | registerAddress (const std::string &fullPath, IOpaqueAddress *pAddress) override
| IDataManagerSvc: Register object address with the data store. More...
StatusCode | registerAddress (DataObject *parentObj, const std::string &objectPath, IOpaqueAddress *pAddress) override
| IDataManagerSvc: Register object address with the data store. More...
StatusCode | registerAddress (IRegistry *parentObj, const std::string &objectPath, IOpaqueAddress *pAddress) override
| IDataManagerSvc: Register object address with the data store. More...
StatusCode | unregisterAddress (const std::string &fullPath) override
| IDataManagerSvc: Unregister object address from the data store. More...
StatusCode | unregisterAddress (DataObject *pParent, const std::string &objPath) override
| IDataManagerSvc: Unregister object address from the data store. More...
StatusCode | unregisterAddress (IRegistry *pParent, const std::string &objPath) override
| IDataManagerSvc: Unregister object address from the data store. More...
StatusCode | objectLeaves (const DataObject *pObject, std::vector< IRegistry * > &refLeaves) override
| IDataManagerSvc: Explore the object store: retrieve all leaves attached to the object. More...
StatusCode | objectLeaves (const IRegistry *pRegistry, std::vector< IRegistry * > &refLeaves) override
| IDataManagerSvc: Explore the object store: retrieve all leaves attached to the object. More...
StatusCode | objectParent (const DataObject *pObject, IRegistry *&refpParent) override
| IDataManagerSvc: Explore the object store: retrieve the object's parent. More...
StatusCode | objectParent (const IRegistry *pRegistry, IRegistry *&refpParent) override
| IDataManagerSvc: Explore the object store: retrieve the object's parent. More...
StatusCode | clearSubTree (const std::string &sub_tree_path) override
| IDataManagerSvc: Remove all data objects below the sub tree identified by its full path name. More...
StatusCode | clearSubTree (DataObject *pObject) override
| IDataManagerSvc: Remove all data objects below the sub tree identified by the object. More...
StatusCode | clearStore () override
| IDataManagerSvc: Remove all data objects in the data store. More...
StatusCode | traverseSubTree (const std::string &sub_tree_path, IDataStoreAgent *pAgent) override
| IDataManagerSvc: Analyze by traversing all data objects below the sub tree identified by its full path name. More...
StatusCode | traverseSubTree (DataObject *pObject, IDataStoreAgent *pAgent) override
| IDataManagerSvc: Analyze by traversing all data objects below the sub tree. More...
StatusCode | traverseTree (IDataStoreAgent *pAgent) override
| IDataManagerSvc: Analyze by traversing all data objects in the data store. More...
StatusCode | setRoot (std::string root_name, DataObject *pRootObj) override
| Initialize data store for new event by giving new event path and root object. More...
virtual StatusCode | i_setRoot (std::string root_name, DataObject *pRootObj)
| Initialize data store for new event by giving new event path and root object. More...
StatusCode | setRoot (std::string root_path, IOpaqueAddress *pRootAddr) override
| Initialize data store for new event by giving new event path and address of root object. More...
virtual StatusCode | i_setRoot (std::string root_path, IOpaqueAddress *pRootAddr)
| Initialize data store for new event by giving new event path and address of root object. More...
StatusCode | setDataLoader (IConversionSvc *svc, IDataProviderSvc *dpsvc=nullptr) override
| IDataManagerSvc: IDataManagerSvc: Pass a default data loader to the service and optionally a data provider. More...
StatusCode | addPreLoadItem (const DataStoreItem &item) override
| Add an item to the preload list. More...
StatusCode | addPreLoadItem (const std::string &itemPath) override
| Add an item to the preload list. More...
StatusCode | removePreLoadItem (const DataStoreItem &item) override
| Remove an item from the preload list. More...
StatusCode | removePreLoadItem (const std::string &itemPath) override
| Add an item to the preload list. More...
StatusCode | resetPreLoad () override
| Clear the preload list. More...
virtual StatusCode | preLoad (int depth, int load_depth, DataObject *pObject)
| Execute one level of preloading and recursively load until the final level is reached. More...
StatusCode | preLoad () override
| load all preload items of the list More...
StatusCode | registerObject (const std::string &fullPath, DataObject *pObject) override
| Register object with the data store. More...
StatusCode | registerObject (const std::string &parentPath, const std::string &objPath, DataObject *pObject) override
| Register object with the data store. More...
StatusCode | registerObject (const std::string &parentPath, int item, DataObject *pObject) override
| Register object with the data store. More...
StatusCode | registerObject (DataObject *parentObj, const std::string &objPath, DataObject *pObject) override
| Register object with the data store. More...
StatusCode | registerObject (DataObject *parentObj, int item, DataObject *pObject) override
| Register object with the data store. More...
StatusCode | unregisterObject (const std::string &fullPath) override
| Unregister object from the data store. More...
StatusCode | unregisterObject (const std::string &parentPath, const std::string &objectPath) override
| Unregister object from the data store. More...
StatusCode | unregisterObject (const std::string &parentPath, int item) override
| Unregister object from the data store. More...
StatusCode | unregisterObject (DataObject *pObject) override
| Unregister object from the data store. More...
StatusCode | unregisterObject (DataObject *pObject, const std::string &objectPath) override
| Unregister object from the data store. More...
StatusCode | unregisterObject (DataObject *pObject, int item) override
| Unregister object from the data store. More...
StatusCode | retrieveObject (IRegistry *pDirectory, const std::string &path, DataObject *&pObject) override
| Retrieve object from data store. More...
StatusCode | retrieveObject (const std::string &fullPath, DataObject *&pObject) override
| Retrieve object identified by its full path from the data store. More...
StatusCode | retrieveObject (const std::string &parentPath, const std::string &objPath, DataObject *&pObject) override
| Retrieve object from data store. More...
StatusCode | retrieveObject (const std::string &parentPath, int item, DataObject *&pObject) override
| Retrieve object from data store. More...
StatusCode | retrieveObject (DataObject *parentObj, const std::string &objPath, DataObject *&pObject) override
| Retrieve object from data store. More...
StatusCode | retrieveObject (DataObject *parentObj, int item, DataObject *&pObject) override
| Retrieve object from data store. More...
StatusCode | findObject (const std::string &fullPath, DataObject *&pObject) override
| Find object identified by its full path in the data store. More...
StatusCode | findObject (IRegistry *pDirectory, const std::string &path, DataObject *&pObject) override
| Find object identified by its full path in the data store. More...
StatusCode | findObject (const std::string &parentPath, const std::string &objPath, DataObject *&pObject) override
| Find object in the data store. More...
StatusCode | findObject (const std::string &parentPath, int item, DataObject *&pObject) override
| Find object in the data store. More...
StatusCode | findObject (DataObject *parentObj, const std::string &objPath, DataObject *&pObject) override
| Find object in the data store. More...
StatusCode | findObject (DataObject *parentObj, int item, DataObject *&pObject) override
| Find object in the data store. More...
StatusCode | linkObject (IRegistry *from, const std::string &objPath, DataObject *to) override
| Add a link to another object. More...
StatusCode | linkObject (const std::string &fromPath, const std::string &objPath, DataObject *to) override
| Add a link to another object. More...
StatusCode | linkObject (DataObject *from, const std::string &objPath, DataObject *to) override
| Add a link to another object. More...
StatusCode | linkObject (const std::string &fullPath, DataObject *to) override
| Add a link to another object. More...
StatusCode | unlinkObject (IRegistry *from, const std::string &objPath) override
| Remove a link to another object. More...
StatusCode | unlinkObject (const std::string &fromPath, const std::string &objPath) override
| Remove a link to another object. More...
StatusCode | unlinkObject (DataObject *fromObj, const std::string &objPath) override
| Remove a link to another object. More...
StatusCode | unlinkObject (const std::string &fullPath) override
| Remove a link to another object. More...
StatusCode | updateObject (IRegistry *pDirectory) override
| Update object identified by its directory entry. More...
StatusCode | updateObject (const std::string &updatePath) override
| Update object. More...
StatusCode | updateObject (DataObject *toUpdate) override
| Update object. More...
StatusCode | updateObject (const std::string &parentPath, const std::string &updatePath) override
| Update object. More...
StatusCode | updateObject (DataObject *pParent, const std::string &updatePath) override
| Update object. More...
StatusCode | initialize () override
| Service initialization. More...
StatusCode | reinitialize () override
| Service initialization. More...
StatusCode | finalize () override
| Service initialization. More...
| DataSvc (const std::string &name, ISvcLocator *svc)
| Standard Constructor. More...
| ~DataSvc () override
| Standard Destructor. More...
Public Member Functions inherited from extends< Service, IDataProviderSvc, IDataManagerSvc >
void * | i_cast (const InterfaceID &tid) const override
| Implementation of IInterface::i_cast. More...
StatusCode | queryInterface (const InterfaceID &ti, void **pp) override
| Implementation of IInterface::queryInterface. More...
std::vector< std::string > | getInterfaceNames () const override
| Implementation of IInterface::getInterfaceNames. More...
| ~extends () override=default
| Virtual destructor. More...
Public Member Functions inherited from Service
const std::string & | name () const override
| Retrieve name of the service. More...
StatusCode | configure () override
StatusCode | initialize () override
StatusCode | start () override
StatusCode | stop () override
StatusCode | finalize () override
StatusCode | terminate () override
Gaudi::StateMachine::State | FSMState () const override
Gaudi::StateMachine::State | targetFSMState () const override
StatusCode | reinitialize () override
StatusCode | restart () override
StatusCode | sysInitialize () override
| Initialize Service. More...
StatusCode | sysStart () override
| Initialize Service. More...
StatusCode | sysStop () override
| Initialize Service. More...
StatusCode | sysFinalize () override
| Finalize Service. More...
StatusCode | sysReinitialize () override
| Re-initialize the Service. More...
StatusCode | sysRestart () override
| Re-initialize the Service. More...
StatusCode | setProperty (const Property &p) override
StatusCode | setProperty (const std::string &s) override
StatusCode | setProperty (const std::string &n, const std::string &v) override
StatusCode | getProperty (Property *p) const override
const Property & | getProperty (const std::string &name) const override
StatusCode | getProperty (const std::string &n, std::string &v) const override
const std::vector< Property * > & | getProperties () const override
bool | hasProperty (const std::string &name) const override
template<class TYPE >
StatusCode | setProperty (const std::string &name, const TYPE &value)
| set the property form the value More...
| Service (std::string name, ISvcLocator *svcloc)
| Standard Constructor. More...
SmartIF< ISvcLocator > & | serviceLocator () const override
| Retrieve pointer to service locator. More...
StatusCode | setProperties ()
| Method for setting declared properties to the values specified for the job. More...
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. More...
template<class T >
StatusCode | service (const std::string &name, T *&psvc, bool createIf=true) const
template<typename IFace = IService>
SmartIF< IFace > | service (const std::string &name, 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. More...
template<class T >
Property * | declareProperty (const std::string &name, T &property, const std::string &doc="none") const
| Declare the named property. More...
Property * | declareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") const
| Declare remote named properties. More...
template<class T >
StatusCode | declarePrivateTool (ToolHandle< T > &handle, std::string toolTypeAndName="", bool createIf=true)
| Declare used Private tool. More...
template<class T >
StatusCode | declarePublicTool (ToolHandle< T > &handle, std::string toolTypeAndName="", bool createIf=true)
| Declare used Public tool. More...
SmartIF< IAuditorSvc > & | auditorSvc () const
| The standard auditor service.May not be invoked before sysInitialize() has been invoked. More...
Public Member Functions inherited from CommonMessagingBase
virtual | ~CommonMessagingBase ()=default
| Virtual destructor. More...
SmartIF< IMessageSvc > & | msgSvc () const
| The standard message service. More...
MsgStream & | msgStream () const
| Return an uninitialized MsgStream. More...
MsgStream & | msgStream (const MSG::Level level) const
| Predefined configurable message stream for the efficient printouts. More...
MsgStream & | always () const
| shortcut for the method msgStream(MSG::ALWAYS) More...
MsgStream & | fatal () const
| shortcut for the method msgStream(MSG::FATAL) More...
MsgStream & | err () const
| shortcut for the method msgStream(MSG::ERROR) More...
MsgStream & | error () const
| shortcut for the method msgStream(MSG::ERROR) More...
MsgStream & | warning () const
| shortcut for the method msgStream(MSG::WARNING) More...
MsgStream & | info () const
| shortcut for the method msgStream(MSG::INFO) More...
MsgStream & | debug () const
| shortcut for the method msgStream(MSG::DEBUG) More...
MsgStream & | verbose () const
| shortcut for the method msgStream(MSG::VERBOSE) More...
MsgStream & | msg () const
| shortcut for the method msgStream(MSG::INFO) More...
MSG::Level | msgLevel () const
| get the output level from the embedded MsgStream More...
MSG::Level | outputLevel () const __attribute__((deprecated))
| Backward compatibility function for getting the output level. More...
bool | msgLevel (MSG::Level lvl) const
| get the output level from the embedded MsgStream More...
Public Member Functions inherited from extend_interfaces< Interfaces...>
| ~extend_interfaces () override=default
| Virtual destructor. More...

## Protected Member Functions
StatusCode | connect (const std::string &ident, std::string &logname) override
| Add file to list I/O list. More...
virtual StatusCode | createService (const std::string &nam, const std::string &typ, const std::vector< Prop > &props, IConversionSvc *&pSvc)
| Create conversion service. More...
Protected Member Functions inherited from NTupleSvc
StatusCode | createService (const std::string &nam, const std::string &typ, const std::vector< Prop > &props, IConversionSvc *&pSvc)
| Create conversion service. More...
void | releaseConnection (Connection &c)
| Finalize single service. More...
StatusCode | attachTuple (const std::string &filename, const std::string &logname, const char typ, const long t)
| Attach output/input file. More...
StatusCode | updateDirectories ()
| Update directory data. More...
Protected Member Functions inherited from DataSvc
bool | checkRoot ()
| Check if root path is valid. More...
virtual DataObject * | createDefaultObject () const
| Create default objects in case forced creation of leaves is requested. More...
virtual StatusCode | loadObject (IRegistry *pNode)
| Invoke Persistency service to create transient object from its persistent representation. More...
virtual StatusCode | loadObject (IConversionSvc *pLoader, IRegistry *pNode)
| Invoke Persistency service to create transient object from its persistent representation. More...
StatusCode | retrieveEntry (DataSvcHelpers::RegistryEntry *pNode, const std::string &path, DataSvcHelpers::RegistryEntry *&pEntry)
| Retrieve registry entry from store. More...
DataObject * | handleDataFault (IRegistry *pReg, const std::string &path="")
| Invoke data fault handling if enabled. More...
Protected Member Functions inherited from Service
| ~Service () override
| Standard Destructor. More...
int | outputLevel () const
| get the `Service's` output level More...
Protected Member Functions inherited from CommonMessaging< implements< IService, IProperty, IStateful > >
void | updateMsgStreamOutputLevel (int level)
| Update the output level of the cached MsgStream. More...

## Additional Inherited Members
Public Types inherited from extends< DataSvc, INTupleSvc, IDataSourceMgr >
using | base_class = extends
| Typedef to this class. More...
using | extend_interfaces_base = extend_interfaces< Interfaces...>
| Typedef to the base of this class. More...
Public Types inherited from DataSvc
typedef std::vector< DataStoreItem > | LoadItems
| Define set of load items. More...
Public Types inherited from extends< Service, IDataProviderSvc, IDataManagerSvc >
using | base_class = extends
| Typedef to this class. More...
using | extend_interfaces_base = extend_interfaces< Interfaces...>
| Typedef to the base of this class. More...
Public Types inherited from Service
typedef Gaudi::PluginService::Factory< IService *, const std::string &, ISvcLocator * > | Factory
Public Types inherited from CommonMessaging< implements< IService, IProperty, IStateful > >
using | base_class = CommonMessaging
Public Types inherited from extend_interfaces< Interfaces...>
using | ext_iids = typename Gaudi::interface_list_cat< typename Interfaces::ext_iids...>::type
| take union of the ext_iids of all Interfaces... More...
Protected Types inherited from NTupleSvc
typedef std::vector< std::string > | DBaseEntries
typedef std::map< std::string, Connection > | Connections
typedef std::pair< std::string, std::string > | Prop
Protected Attributes inherited from NTupleSvc
DBaseEntries | m_output
| Output streams. More...
DBaseEntries | m_input
| Input streams. More...
Connections | m_connections
| Container of connection points. More...
Protected Attributes inherited from DataSvc
CLID | m_rootCLID = 110
| Integer Property corresponding to CLID of root entry. More...
std::string | m_rootName = "/Event"
| Name of root event. More...
SmartIF< IConversionSvc > | m_dataLoader = nullptr
| Pointer to data loader service. More...
SmartIF< IIncidentSvc > | m_incidentSvc = nullptr
| Pointer to incident service. More...
LoadItems | m_preLoads
| Items to be pre-loaded. More...
bool | m_forceLeaves = false
| Allow forced creation of default leaves on registerObject. More...
bool | m_enableAccessHdlr = false
| Flag to enable interrupts on data access requests. More...
bool | m_enableFaultHdlr = false
| Flag to enable interrupts on data creation requests. More...
DataSvcHelpers::RegistryEntry * | m_root = nullptr
| Pointer to root entry. More...
DataSvcHelpers::InhibitMap * | m_inhibitMap = nullptr
| Map with object paths to be inhibited from loading. More...
std::vector< std::string > | m_inhibitPathes
| Property for the inhibited leaves. More...
std::string | m_accessName = "DataAccess"
| Name of the data access incident. More...
std::string | m_faultName = "DataFault"
| Name of the data fault incident. More...
Protected Attributes inherited from Service
IntegerProperty | m_outputLevel = MSG::NIL
| Service output level. More...
Gaudi::StateMachine::State | m_state = Gaudi::StateMachine::OFFLINE
| Service state. More...
Gaudi::StateMachine::State | m_targetState = Gaudi::StateMachine::OFFLINE
| Service state. More...

## Detailed Description

Gaudi tag collection service definition.

Description: See the base class definition files for more detailed documentation of the implementing class. The basic functionality of the implementation is enhanced to allow for more general N-tuples, which can be used also as event tag collections.

M.Frank 1.0

Definition at line 26 of file TagCollectionSvc.h.

## Constructor & Destructor Documentation

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

Standard Constructor.

Definition at line 46 of file TagCollectionSvc.cpp.

47 : NTupleSvc(name, svc)
48 {
49 }
NTupleSvc::NTupleSvc
NTupleSvc(const std::string &name, ISvcLocator *svc)
Standard Constructor.
Definition: NTupleSvc.cpp:60

TagCollectionSvc::~TagCollectionSvc | ( |  | ) |
| override default

Standard Destructor.

## Member Function Documentation

StatusCode TagCollectionSvc::connect | ( | const std::string & | ident,
|  | std::string & | logname
| ) |  |
| override protected virtual

Add file to list I/O list.

Reimplemented from NTupleSvc.

Definition at line 53 of file TagCollectionSvc.cpp.

53 {
54 DataObject* pO = nullptr;
55 StatusCode status = findObject(m_rootName, pO);
56 if ( status.isSuccess() ) {
57 status = INVALID_ROOT;
58 if ( pO->registry() ) {
59 char typ=0;
60 std::vector<Prop> props;
61 long loc = ident.find(" ");
62 std::string filename, svc = "DbCnvSvc";
63 logname = ident.substr(0,loc);
64 using Parser = Gaudi::Utils::AttribStringParser;
65 // we assume that there is always a " "
66 // (but if it is not there, we probably will not match the pattern)
67 for (auto attrib: Parser(ident.substr(loc + 1))) {
68 switch( ::toupper(attrib.tag[0]) ) {
69 case 'A':
70 props.emplace_back( "Server", attrib.value);
71 break;
72 case 'F': /* FILE='<file name>' */
73 case 'D': /* DATAFILE='<file name>' */
74 filename = std::move(attrib.value);
75 break;
76 case 'O': /* OPT='<NEW<CREATE,WRITE>, UPDATE, READ>' */
77 switch( ::toupper(attrib.value[0]) ) {
78 case 'C':
79 case 'N':
80 case 'W': typ = 'N'; break;
81 case 'U': typ = 'U'; break;
82 case 'O':
83 case 'R':
84 switch( ::toupper(attrib.value[2]) ) {
85 case 'C': /* RECREATE */ typ = 'R'; break;
86 case 'A': /* READ */
87 default: typ = 'O'; break;
88 }
89 break;
90 default: typ = 0; break;
91 }
92 break;
93 case 'S': // SVC='<service type>'
94 switch( ::toupper(attrib.tag[1]) ) {
95 case 'V': svc = std::move(attrib.value); break;
96 case 'H':
97 switch(::toupper(attrib.value[0])) {
98 case 'Y':
99 props.emplace_back( "ShareFiles", attrib.value);
100 break ;
101 }
102 break;
103 }
104 break;
105 case 'T': // TYP='<HBOOK,ROOT,OBJY,...>'
106 switch(::toupper(attrib.value[0])) {
107 case 'H':
108 svc = "HbookCnv::ConvSvc";
109 break;
110 case 'P':
111 props.emplace_back( "DbType", attrib.value);
112 svc = "PoolDbCnvSvc";
113 break;
114 default:
115 props.emplace_back( "DbType", attrib.value);
116 svc = "DbCnvSvc";
117 break;
118 }
119 break;
120 default:
121 props.emplace_back( attrib.tag, attrib.value);
122 break;
123 }
124 }
125 if ( 0 != typ ) {
126 IConversionSvc* pSvc = nullptr;
127 status = createService(name()+'.'+logname, svc, props, pSvc);
128 if ( status.isSuccess() ) {
129 status = attachTuple(filename,logname,typ,pSvc->repSvcType());
130 if ( status.isSuccess() ) {
131 m_connections.emplace(m_rootName+'/'+logname,Connection(pSvc));
132 return StatusCode::SUCCESS;
133 }
134 }
135 }
136 }
137 }
138 error() << "Cannot add " << ident << " invalid filename!" << endmsg;
139 return StatusCode::FAILURE;
140 }
Gaudi::Utils::AttribStringParser
Parse attribute strings allowing iteration over the various attributes.
Definition: AttribStringParser.h:30
IConversionSvc
Definition: IConversionSvc.h:37
StatusCode::isSuccess
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:76
DataSvc::m_rootName
std::string m_rootName
Name of root event.
Definition: DataSvc.h:55
graphanalysis.filename
string filename
Definition: graphanalysis.py:109
DataObject::registry
IRegistry * registry() const
Get pointer to Registry.
Definition: DataObject.h:74
std::string
STL class.
Service::name
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:319
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:118
StatusCode::FAILURE
Definition: StatusCode.h:29
IConverter::repSvcType
virtual long repSvcType() const =0
Retrieve the class type of the data store the converter uses.
StatusCode::SUCCESS
Definition: StatusCode.h:30
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
DataSvc::findObject
StatusCode findObject(const std::string &fullPath, DataObject *&pObject) override
Find object identified by its full path in the data store.
Definition: DataSvc.cpp:828
std::move
T move(T...args)
std::string::find
T find(T...args)
std::vector
STL class.
std::map::emplace
T emplace(T...args)
std::string::substr
T substr(T...args)
NTupleSvc::attachTuple
StatusCode attachTuple(const std::string &filename, const std::string &logname, const char typ, const long t)
Attach output/input file.
Definition: NTupleSvc.cpp:461
DataObject
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:30
toupper
void toupper(std::string &s)
Definition: StatusCodeSvc.cpp:10
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
TagCollectionSvc::createService
virtual StatusCode createService(const std::string &nam, const std::string &typ, const std::vector< Prop > &props, IConversionSvc *&pSvc)
Create conversion service.
Definition: TagCollectionSvc.cpp:143
std::vector::emplace_back
T emplace_back(T...args)
NTupleSvc::m_connections
Connections m_connections
Container of connection points.
Definition: NTupleSvc.h:128

StatusCode TagCollectionSvc::createService | ( | const std::string & | nam,
|  | const std::string & | typ,
|  | const std::vector< Prop > & | props,
|  | IConversionSvc *& | pSvc
| ) |  |
| protected virtual

Create conversion service.

Parameters

  nam | Name of the service to be created
  svc | Service type if sepecified in the options
  props |

Definition at line 143 of file TagCollectionSvc.cpp.

146 {
147 pSvc = nullptr;
148 using Gaudi::Utils::TypeNameString;
149 auto mgr = serviceLocator()->as<ISvcManager>();
150
151 // TagCollectionSvc has to directly create a ConversionSvc to manage it directly.
152 StatusCode status = NO_INTERFACE;
153 if ( mgr ) {
154 SmartIF<IService> isvc = mgr->createService(TypeNameString(nam, typ));
155 if (isvc) {
156 auto icsvc = isvc.as<IConversionSvc>();
157 if ( icsvc ) {
158 auto iprop = isvc.as<IProperty>();
159 if ( iprop ) {
160 for ( const auto& p : props ) {
161 iprop->setProperty(p.first, p.second).ignore();
162 }
163 // NTupleSvc has to directly create a ConversionSvc to manage it directly.
164 status = isvc->sysInitialize();
165 if ( status.isSuccess() ) {
166 status = icsvc->setDataProvider(this);
167 if ( status.isSuccess() ) {
168 pSvc = icsvc.get();
169 pSvc->addRef();
170 }
171 }
172 }
173 }
174 }
175 }
176 return status;
177 }
SmartIF< IService >
Service::serviceLocator
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: Service.cpp:324
IConversionSvc
Definition: IConversionSvc.h:37
ISvcManager
The ISvcManager is the interface implemented by the Service Factory in the Application Manager to sup...
Definition: ISvcManager.h:28
ISvcLocator::as
SmartIF< IFace > as()
Definition: ISvcLocator.h:106
IService::sysInitialize
virtual StatusCode sysInitialize()=0
Initialize Service.
SmartIF::as
SmartIF< IFace > as() const
return a new SmartIF instance to another interface
Definition: SmartIF.h:110
Gaudi::Utils::TypeNameString
Helper class to parse a string of format "type/name".
Definition: TypeNameString.h:9
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
IProperty::setProperty
virtual StatusCode setProperty(const Property &p)=0
Set the property by property.
IInterface::addRef
virtual unsigned long addRef()=0
Increment the reference count of Interface instance.
StatusCode::ignore
void ignore() const
Definition: StatusCode.h:108
IProperty
The IProperty is the basic interface for all components which have properties that can be set or get...
Definition: IProperty.h:21

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

- GaudiSvc/src/NTupleSvc/TagCollectionSvc.h
- GaudiSvc/src/NTupleSvc/TagCollectionSvc.cpp