 |
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef ATHENAPOOLCNVSVC_ATHENAPOOLCNVSVC_H
6 #define ATHENAPOOLCNVSVC_ATHENAPOOLCNVSVC_H
15 #include "GaudiKernel/IClassIDSvc.h"
16 #include "GaudiKernel/IIncidentListener.h"
17 #include "GaudiKernel/IIoComponent.h"
18 #include "GaudiKernel/ServiceHandle.h"
19 #include "GaudiKernel/ToolHandle.h"
76 const std::string& openMode)
override;
114 const std::string*
par,
115 const unsigned long*
ip,
116 IOpaqueAddress*& refpAddress)
override;
125 const std::string& refAddress,
126 IOpaqueAddress*& refpAddress)
override;
148 virtual void handle(
const Incident& incident)
override;
161 std::vector<std::vector<std::string> >* contAttr,
162 std::vector<std::vector<std::string> >* dbAttr,
163 std::vector<std::vector<std::string> >* domAttr = 0)
const;
168 unsigned long contextId,
171 bool doClear =
true)
const;
189 Gaudi::Property<std::map<std::string, std::string>>
m_storageTechProp{
this,
"StorageTechnology", {{
"*",
"ROOTTREEINDEX"}}};
200 Gaudi::Property<std::vector<std::string>>
m_poolAttr{
this,
"PoolAttributes",{},
"Pool Attributes",
"OrderedSet<std::string>"};
208 Gaudi::Property<std::vector<std::string>>
m_inputPoolAttr{
this,
"InputPoolAttributes",{}};
216 Gaudi::Property<std::vector<std::string>>
m_maxFileSizes{
this,
"MaxFileSizes",{}};
ServiceHandle< IPoolSvc > m_poolSvc
std::vector< unsigned int > m_contextAttr
virtual StatusCode registerCleanUp(IAthenaPoolCleanUp *cnv) override
Implement registerCleanUp to register a IAthenaPoolCleanUp to be called during cleanUp.
StatusCode createAddress(long svcType, const CLID &clid, const std::string *par, const unsigned long *ip, IOpaqueAddress *&refpAddress) override
Create a Generic address using explicit arguments to identify a single object.
virtual StatusCode cleanUp(const std::string &connection) override
Implement cleanUp to call all registered IAthenaPoolCleanUp cleanUp() function.
This class holds all the necessary information to guide the writing of an object in a physical place.
This class provides the interface to the LCG POOL persistency software.
This file contains the class definition for the IAthenaPoolCnvSvc interface class.
virtual StatusCode initialize() override
Required of all Gaudi Services.
unsigned outputContextId(const std::string &outputConnection)
tbb::concurrent_hash_map< std::string, double > BasicStopWatchResultMap_t
ServiceHandle< IClassIDSvc > m_clidSvc
Gaudi::Property< int > m_numberEventsPerWrite
To use MetadataSvc to merge data placed in a certain container When using TMemFile call Write on numb...
long long m_domainMaxFileSize
std::vector< std::vector< std::string > > m_inputAttrPerEvent
virtual StatusCode decodeOutputSpec(std::string &connectionSpec, int &outputTech) const override
Extract/deduce the DB technology from the connection string/file specification.
This class provides the interface for the AthenaPoolCleanUp which is used to clean up AthenaPoolConve...
std::vector< std::vector< std::string > > m_databaseAttr
PMonUtils::BasicStopWatchResultMap_t m_chronoMap
Map that holds chrono information.
virtual StatusCode fillRepRefs(IOpaqueAddress *pAddress, DataObject *pObject) override
Implementation of IConversionSvc: Resolve the references of the converted object.
Gaudi::Property< std::string > m_containerPrefixProp
POOL Container name prefix - will be part of or whole TTree/RNTuple name 'Default' takes the prefix f...
virtual bool useDetailChronoStat() const override
Gaudi::Property< std::vector< std::string > > m_maxFileSizes
MaxFileSizes, vector with maximum file sizes for Athena POOL output files.
virtual void setObjPtr(void *&obj, const Token *token) override
AthenaPoolCnvSvc(const std::string &name, ISvcLocator *pSvcLocator)
Standard Service Constructor.
virtual IPoolSvc * getPoolSvc() override
StatusCode processPoolAttributes(std::vector< std::vector< std::string > > &attr, const std::string &fileName, unsigned long contextId, bool doGet=true, bool doSet=true, bool doClear=true) const
Set/get technology dependent POOL attributes.
void flushDataHeaderForms(const std::string &streamName="*")
Tell DataHeaderCnv to write out all DataHeaderForms for a given streamName (default is all)
std::map< std::string, int > m_fileFlushSetting
virtual StatusCode io_reinit() override
Gaudi::Property< bool > m_useDetailChronoStat
UseDetailChronoStat, enable detailed output for time and size statistics for AthenaPOOL: default = fa...
This class provides a token that identifies in a unique way objects on the persistent storage.
virtual Token * registerForWrite(Placement *placement, const void *obj, const RootType &classDesc) override
virtual StatusCode createObj(IOpaqueAddress *pAddress, DataObject *&refpObject) override
Implementation of IConversionSvc: Create the transient representation of an object from persistent st...
virtual void handle(const Incident &incident) override
Implementation of IIncidentListener: Handle for EndEvent incidence.
Gaudi::Property< std::string > m_branchNameHintProp
SubLevelBranchName, naming hint policy for POOL branching: ("" = no branching)
virtual ~AthenaPoolCnvSvc()=default
Destructor.
virtual StatusCode setInputAttributes(const std::string &fileName) override
Set the input file attributes, if any are requested from jobOpts.
virtual StatusCode finalize() override
Required of all Gaudi Services.
::StatusCode StatusCode
StatusCode definition for legacy code.
Gaudi::Property< bool > m_persSvcPerOutput
PersSvcPerOutput, boolean property to use multiple persistency services, one per output stream.
std::vector< std::vector< std::string > > m_inputAttr
std::map< std::string, long long > m_databaseMaxFileSize
virtual StatusCode io_finalize() override
virtual StatusCode convertAddress(const IOpaqueAddress *pAddress, std::string &refAddress) override
Convert address to string form.
Gaudi::Property< std::vector< std::string > > m_inputPoolAttrPerEvent
Print input PoolAttributes per event, vector with names of technology specific attributes for POOL to...
Gaudi::Property< bool > m_oneDataHeaderForm
If true, use only one DataHeaderForm per Stream.
Gaudi::Property< std::vector< std::string > > m_poolAttr
Output PoolAttributes, vector with names and values of technology specific attributes for POOL.
uint32_t CLID
The Class ID type.
Gaudi::Property< int > m_DHFormCacheSize
Property for DataHeaderCnv input DHForm cache size.
virtual StatusCode disconnectOutput(const std::string &outputConnectionSpec) override
Disconnect to the output connection.
Gaudi::Property< std::string > m_containerNameHintProp
TopLevelContainerName, naming hint policy for top level POOL container: default = "<type>".
std::vector< std::vector< std::string > > m_containerAttr
void extractPoolAttributes(const Gaudi::Property< std::vector< std::string >> &property, std::vector< std::vector< std::string > > *contAttr, std::vector< std::vector< std::string > > *dbAttr, std::vector< std::vector< std::string > > *domAttr=0) const
Extract POOL ItechnologySpecificAttributes for Domain, Database and Container from property.
virtual StatusCode commitOutput(const std::string &outputConnectionSpec, bool doCommit) override
Implementation of IConversionSvc: Commit pending output.
Gaudi::Property< std::vector< std::string > > m_inputPoolAttr
Input PoolAttributes, vector with names and values of technology specific attributes for POOL.
virtual StatusCode createRep(DataObject *pObject, IOpaqueAddress *&refpAddress) override
Implementation of IConversionSvc: Convert the transient object to the requested representation.
Gaudi::Property< std::string > m_persSvcPerInputType
PersSvcPerInputType, string property, tree name to use multiple persistency services,...
This file contains the class definition for the IPoolSvc interface class.
std::vector< std::vector< std::string > > m_domainAttr
std::map< std::string, int > m_fileCommitCounter
This class provides a encapsulation of a GUID/UUID/CLSID/IID data structure (128 bit number).
Gaudi::Property< bool > m_DHFilterAliases
Flag to control SG alias filtering when writing out DataHeader (see DataHeaderCnv_p6)
virtual StatusCode connectOutput(const std::string &outputConnectionSpec, const std::string &openMode) override
Implementation of IConversionSvc: Connect to the output connection specification with open mode.
virtual StatusCode stop() override
Gaudi::Property< std::map< std::string, std::string > > m_storageTechProp
Default Storage Tech for containers (ROOTTREE, ROOTTREEINDEX, ROOTRNTUPLE)
std::string m_lastInputFileName
decoded storage tech requested in "StorageTechnology" property
std::map< std::string, int > m_storageTechMap