![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
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"
43 public virtual IIncidentListener,
44 public virtual IIoComponent {
78 const std::string& openMode);
116 const std::string*
par,
117 const unsigned long*
ip,
118 IOpaqueAddress*& refpAddress);
127 const std::string& refAddress,
128 IOpaqueAddress*& refpAddress);
166 void handle(
const Incident& incident);
176 std::vector<std::vector<std::string> >* contAttr,
177 std::vector<std::vector<std::string> >* dbAttr,
178 std::vector<std::vector<std::string> >* domAttr = 0)
const;
183 unsigned long contextId,
186 bool doClear =
true)
const;
219 StringArrayProperty
m_poolAttr{
this,
"PoolAttributes",{},
"Pool Attributes",
"OrderedSet<std::string>"};
252 StringArrayProperty
m_metadataContainersAug{
this,
"OutputMetadataContainers", {},
"Metadata containers used for augmentations"};
ServiceHandle< IPoolSvc > m_poolSvc
std::vector< unsigned int > m_contextAttr
StatusCode disconnectOutput(const std::string &outputConnectionSpec)
Disconnect to the output connection.
StatusCode registerCleanUp(IAthenaPoolCleanUp *cnv)
Implement registerCleanUp to register a IAthenaPoolCleanUp to be called during cleanUp.
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.
unsigned outputContextId(const std::string &outputConnection)
tbb::concurrent_hash_map< std::string, double > BasicStopWatchResultMap_t
virtual StatusCode commitCatalog()
Commit Catalog.
Token * registerForWrite(Placement *placement, const void *obj, const RootType &classDesc)
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...
StatusCode commitOutput(const std::string &outputConnectionSpec, bool doCommit)
Implementation of IConversionSvc: Commit pending output.
long long m_domainMaxFileSize
std::vector< std::vector< std::string > > m_inputAttrPerEvent
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.
StatusCode queryInterface(const InterfaceID &riid, void **ppvInterface)
Required of all Gaudi services: see Gaudi documentation for details.
StatusCode decodeOutputSpec(std::string &connectionSpec, int &outputTech) const
Extract/deduce the DB technology from the connection string/file specification.
pool::DbType m_dbType
decoded storage tech requested in "StorageTechnology" property
AthenaPoolCnvSvc(const std::string &name, ISvcLocator *pSvcLocator)
Standard Service Constructor.
StatusCode convertAddress(const IOpaqueAddress *pAddress, std::string &refAddress)
Convert address to string form.
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.
StatusCode finalize()
Required of all Gaudi Services.
std::map< std::string, int > m_fileFlushSetting
This class provides a token that identifies in a unique way objects on the persistent storage.
StringProperty m_persSvcPerInputType
PersSvcPerInputType, string property, tree name to use multiple persistency services,...
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.
StatusCode fillRepRefs(IOpaqueAddress *pAddress, DataObject *pObject)
Implementation of IConversionSvc: Resolve the references of the converted object.
StatusCode createAddress(long svcType, const CLID &clid, const std::string *par, const unsigned long *ip, IOpaqueAddress *&refpAddress)
Create a Generic address using explicit arguments to identify a single object.
virtual StatusCode makeServer(int num)
Make this a server.
virtual ~AthenaPoolCnvSvc()=default
Destructor.
StringArrayProperty m_metadataContainersAug
bool useDetailChronoStat() const
StringArrayProperty m_maxFileSizes
MaxFileSizes, vector with maximum file sizes for Athena POOL output files.
StatusCode connectOutput(const std::string &outputConnectionSpec, const std::string &openMode)
Implementation of IConversionSvc: Connect to the output connection specification with open mode.
::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
IntegerProperty m_numberEventsPerWrite
When using TMemFile call Write on number of Events, respecting CollectionTree auto_flush.
uint32_t CLID
The Class ID type.
std::vector< std::vector< std::string > > m_containerAttr
StatusCode initialize()
Required of all Gaudi Services.
bool m_streamServerActive
BooleanProperty m_persSvcPerOutput
PersSvcPerOutput, boolean property to use multiple persistency services, one per output stream.
StatusCode setInputAttributes(const std::string &fileName)
Set the input file attributes, if any are requested from jobOpts.
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.
virtual StatusCode readData()
Read the next data object.
StatusCode cleanUp(const std::string &connection)
Implement cleanUp to call all registered IAthenaPoolCleanUp cleanUp() function.
StringProperty m_streamPortString
Extension to use ROOT TMemFile for event data, "?pmerge=<host>:<port>".
std::vector< std::vector< std::string > > m_domainAttr
void setObjPtr(void *&obj, const Token *token)
std::map< std::string, int > m_fileCommitCounter
StatusCode createRep(DataObject *pObject, IOpaqueAddress *&refpAddress)
Implementation of IConversionSvc: Convert the transient object to the requested representation.
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
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.
void handle(const Incident &incident)
Implementation of IIncidentListener: Handle for EndEvent incidence.
StringProperty m_containerPrefixProp
POOL Container name prefix - will be part of or whole TTree/RNTuple name 'Default' takes the prefix f...
StatusCode createObj(IOpaqueAddress *pAddress, DataObject *&refpObject)
Implementation of IConversionSvc: Create the transient representation of an object from persistent st...
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 makeClient(int num)
Make this a client.
This class provides the interface between Athena and PoolSvc.