|
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"
77 const std::string& openMode)
override;
115 const std::string*
par,
116 const unsigned long*
ip,
117 IOpaqueAddress*& refpAddress)
override;
126 const std::string& refAddress,
127 IOpaqueAddress*& refpAddress)
override;
165 virtual void handle(
const Incident& incident)
override;
178 std::vector<std::vector<std::string> >* contAttr,
179 std::vector<std::vector<std::string> >* dbAttr,
180 std::vector<std::vector<std::string> >* domAttr = 0)
const;
185 unsigned long contextId,
188 bool doClear =
true)
const;
221 StringArrayProperty
m_poolAttr{
this,
"PoolAttributes",{},
"Pool Attributes",
"OrderedSet<std::string>"};
254 StringArrayProperty
m_metadataContainersAug{
this,
"OutputMetadataContainers", {},
"Metadata containers used for augmentations"};
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.
StringProperty m_metadataContainerProp
For SharedWriter: To use MetadataSvc to merge data placed in a certain container.
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
ToolHandle< IAthenaIPCTool > m_inputStreamingTool
IntegerProperty m_streamingTechnology
Use Streaming for selected technologies only.
BooleanProperty m_useDetailChronoStat
UseDetailChronoStat, enable detailed output for time and size statistics for AthenaPOOL: default = fa...
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.
pool::DbType m_dbType
decoded storage tech requested in "StorageTechnology" property
virtual bool useDetailChronoStat() const override
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.
virtual StatusCode readData() override
Read the next data object.
virtual StatusCode makeClient(int num) override
Make this a client.
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
BooleanProperty m_oneDataHeaderForm
If true, use only one DataHeaderForm per Stream.
virtual StatusCode io_reinit() override
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
StringProperty m_persSvcPerInputType
PersSvcPerInputType, string property, tree name to use multiple persistency services,...
virtual StatusCode createObj(IOpaqueAddress *pAddress, DataObject *&refpObject) override
Implementation of IConversionSvc: Create the transient representation of an object from persistent st...
StringProperty m_storageTechProp
Default Storage Tech for containers (ROOTTREE, ROOTTREEINDEX, ROOTRNTUPLE)
void extractPoolAttributes(const StringArrayProperty &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 void handle(const Incident &incident) override
Implementation of IIncidentListener: Handle for EndEvent incidence.
virtual ~AthenaPoolCnvSvc()=default
Destructor.
StringArrayProperty m_metadataContainersAug
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.
StringArrayProperty m_maxFileSizes
MaxFileSizes, vector with maximum file sizes for Athena POOL output files.
::StatusCode StatusCode
StatusCode definition for legacy code.
IntegerProperty m_makeStreamingToolClient
Make this instance a Streaming Client during first connect/write automatically.
BooleanProperty m_DHFilterAliases
Flag to control SG alias filtering when writing out DataHeader (see DataHeaderCnv_p6)
std::vector< std::vector< std::string > > m_inputAttr
std::map< std::string, long long > m_databaseMaxFileSize
virtual StatusCode io_finalize() override
IntegerProperty m_numberEventsPerWrite
When using TMemFile call Write on number of Events, respecting CollectionTree auto_flush.
virtual StatusCode convertAddress(const IOpaqueAddress *pAddress, std::string &refAddress) override
Convert address to string form.
uint32_t CLID
The Class ID type.
virtual StatusCode disconnectOutput(const std::string &outputConnectionSpec) override
Disconnect to the output connection.
std::vector< std::vector< std::string > > m_containerAttr
virtual StatusCode makeServer(int num) override
Make this a server.
virtual StatusCode commitOutput(const std::string &outputConnectionSpec, bool doCommit) override
Implementation of IConversionSvc: Commit pending output.
bool m_streamServerActive
BooleanProperty m_persSvcPerOutput
PersSvcPerOutput, boolean property to use multiple persistency services, one per output stream.
virtual StatusCode createRep(DataObject *pObject, IOpaqueAddress *&refpAddress) override
Implementation of IConversionSvc: Convert the transient object to the requested representation.
virtual StatusCode commitCatalog() override
Commit Catalog.
StringArrayProperty m_inputPoolAttr
Input PoolAttributes, vector with names and values of technology specific attributes for POOL.
This file contains the class definition for the IPoolSvc interface class.
StringProperty m_streamPortString
Extension to use ROOT TMemFile for event data, "?pmerge=<host>:<port>".
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).
StringProperty m_branchNameHintProp
SubLevelBranchName, naming hint policy for POOL branching: ("" = no branching)
StatusCode abortSharedWrClients(int client_n)
Send abort to SharedWriter clients if the server quits on error.
ToolHandle< IAthenaIPCTool > m_outputStreamingTool
virtual StatusCode connectOutput(const std::string &outputConnectionSpec, const std::string &openMode) override
Implementation of IConversionSvc: Connect to the output connection specification with open mode.
StringProperty m_containerNameHintProp
TopLevelContainerName, naming hint policy for top level POOL container: default = "<type>".
StringArrayProperty m_poolAttr
Output PoolAttributes, vector with names and values of technology specific attributes for POOL.
StringArrayProperty m_inputPoolAttrPerEvent
Print input PoolAttributes per event, vector with names of technology specific attributes for POOL to...
IntegerProperty m_DHFormCacheSize
Property for DataHeaderCnv input DHForm cache size.
StringProperty m_containerPrefixProp
POOL Container name prefix - will be part of or whole TTree/RNTuple name 'Default' takes the prefix f...
BooleanProperty m_parallelCompression
Use Athena Object sharing for metadata only, event data is collected and send via ROOT TMemFile.
std::string m_lastInputFileName
ServiceHandle< IAthenaSerializeSvc > m_serializeSvc
virtual StatusCode stop() override final