14#include "GaudiKernel/IIoComponent.h"
36class PoolSvc :
public extends<AthService, IPoolSvc, IIoComponent> {
43 virtual StatusCode
start()
override;
44 virtual StatusCode
stop()
override;
46 virtual StatusCode
finalize()
override;
74 unsigned int maxFile = 0)
override;
82 const coral::Context*
context()
const override;
103 void lookupBestPfn(
const std::string& token, std::string& pfn, std::string&
type)
const override;
109 void renamePfn(
const std::string& pf,
const std::string& newpf)
override;
118 const std::string& connection,
119 const std::string& collectionName,
128 const std::string& collection,
129 const unsigned long ientry)
const override;
160 long long int getFileSize(
const std::string& dbName,
long tech,
unsigned int contextId)
const override;
174 const std::string& dbName,
175 const std::string& contName =
"",
181 const std::string&
data,
188 const std::string&
data,
190 const std::string& dbName,
191 const std::string& contName =
"",
199 using base_class::base_class;
212 std::lock_guard<CallMutex> temp_lock( glob_mtx );
214 m_lock = std::unique_lock< CallMutex >{ *ctx_mutexes[contextId] };
234 Gaudi::Property<std::string>
m_fileOpen{
this,
"FileOpen",
"overwrite"};
240 Gaudi::Property<std::string>
m_writeCatalog{
this,
"WriteCatalog",
"xmlcatalog_file:PoolFileCatalog.xml"};
242 Gaudi::Property<std::vector<std::string>>
m_readCatalog{
this,
"ReadCatalog",{},
"List of catalog files to read from",
"OrderedSet<std::string>"};
255 Gaudi::Property<int>
m_timeOut{
this,
"ConnectionTimeOut",5};
257 Gaudi::Property<bool>
m_connClean{
this,
"ConnectionCleanUp",
false};
277 std::unique_ptr<pool::IDatabase>
getDbHandle(
unsigned int contextId,
const std::string& dbName)
const;
This file contains the class definition for the Guid class (migrated from POOL).
char data[hepevt_bytes_allocation_ATLAS]
This file contains the class definition for the IPoolSvc interface class.
Define macros for attributes used to control the static checker.
This class holds all the necessary information to guide the writing of an object in a physical place.
ContextLock(int contextId, CallMutex &glob_mtx, const std::vector< CallMutex * > &ctx_mutexes)
std::unique_lock< CallMutex > m_lock
This class provides the interface to the LCG POOL persistency software.
virtual long long int getFileSize(const std::string &dbName, long tech, unsigned int contextId) const override
Get POOL FileSize attribute for database without logging a message.
virtual StatusCode io_reinit() override
pool::IFileCatalog * createCatalog()
virtual Token * registerForWrite(const Placement *placement, const void *obj, const RootType &classDesc) override
virtual ~PoolSvc()
Destructor.
virtual StatusCode connect(pool::ITransaction::Type type, unsigned int contextId=IPoolSvc::kInputStream) override
Connect to a logical database unit; PersistencySvc is chosen according to transaction type (accessmod...
Gaudi::Property< int > m_retrialTimeOut
ConnectionRetrialTimeOut, the retrial time out for CORAL Connection Service: default = 300 seconds.
Gaudi::Property< int > m_timeOut
ConnectionTimeOut, the time out for CORAL Connection Service: default = 5 seconds.
virtual void renamePfn(const std::string &pf, const std::string &newpf) override
Gaudi::Property< int > m_retrialPeriod
ConnectionRetrialPeriod, retry period for CORAL Connection Service: default = 30 seconds.
virtual const coral::Context * context() const override
pool::IFileCatalog * m_catalog
Gaudi::Property< std::vector< std::string > > m_frontierRefresh
std::string poolCondPath(const std::string &leaf)
Resolve a file using ATLAS_POOLCOND_PATH.
void patchCatalog(const std::string &pfn, pool::IDatabase &dbH) const
virtual unsigned int getInputContext(const std::string &label, unsigned int maxFile=0) override
Gaudi::Property< bool > m_sortReplicas
Use DBReplicaSvc to sort database connections, default = true.
std::recursive_mutex CallMutex
Gaudi::Property< std::string > m_defaultROOTContainerType
Default ROOT container type.
virtual void lookupBestPfn(const std::string &token, std::string &pfn, std::string &type) const override
virtual StatusCode setAttribute(const std::string &optName, const std::string &data, long tech, unsigned int contextId=IPoolSvc::kOutputStream) const override
Set POOL attributes - domain.
Gaudi::Property< bool > m_connClean
ConnectionCleanUp - whether to use CORAL connection management thread: default = false.
Gaudi::Property< bool > m_useROOTIMT
Use ROOT Implicit MultiThreading, default = true.
virtual StatusCode commit(unsigned int contextId=IPoolSvc::kInputStream) const override
Commit data for a given contextId and flush buffer.
std::unique_ptr< pool::IContainer > getContainerHandle(pool::IDatabase *dbH, const std::string &contName) const
Get Container handle.
virtual Token * getToken(const std::string &connection, const std::string &collection, const unsigned long ientry) const override
virtual StatusCode start() override
Required of all Gaudi services:
Gaudi::Property< int > m_frontierComp
Frontier proprties, compression level and list of schemas to be refreshed: default = 5.
StatusCode setupPersistencySvc()
virtual const std::map< std::string, unsigned int > & getInputContextMap() const override
virtual StatusCode io_finalize() override
Gaudi::Property< int > m_dbAgeLimit
MaxFilesOpen, option to have PoolSvc limit the number of open Input Files: default = 0 (No files are ...
Gaudi::Property< bool > m_useROOTMaxTree
Increase virtual TTree size to avoid backreads in multithreading, default = false.
std::map< std::string, unsigned int > m_outputContextLabel
std::vector< pool::IPersistencySvc * > m_persistencySvcVec
virtual StatusCode disconnectDb(const std::string &connection, unsigned int contextId=IPoolSvc::kInputStream) const override
Disconnect single Database.
std::vector< CallMutex * > m_pers_mut
std::map< std::string, unsigned int > m_inputContextLabel
virtual void setObjPtr(void *&obj, const Token *token) override
virtual void loadComponent(const std::string &compName) override
Gaudi::Property< std::vector< std::string > > m_readCatalog
ReadCatalog, the list of additional POOL input file catalogs to consult: default = empty vector.
std::string m_mainOutputLabel
virtual const pool::IFileCatalog * catalog() const override
std::map< unsigned int, unsigned int > m_contextMaxFile
virtual pool::ICollection * createCollection(const std::string &collectionType, const std::string &connection, const std::string &collectionName, unsigned int contextId=IPoolSvc::kInputStream) const override
virtual void setShareMode(bool shareCat) override
std::unique_ptr< pool::IDatabase > getDbHandle(unsigned int contextId, const std::string &dbName) const
Get Database handle.
coral::Context * m_context
virtual StatusCode commitAndHold(unsigned int contextId=IPoolSvc::kInputStream) const override
Commit data for a given contextId and hold buffer.
virtual StatusCode disconnect(unsigned int contextId=IPoolSvc::kInputStream) const override
Disconnect PersistencySvc associated with a contextId.
virtual StatusCode finalize() override
Required of all Gaudi services:
virtual StatusCode initialize() override
Required of all Gaudi services:
virtual StatusCode setFrontierCache(const std::string &conn) override
Setup Frontier cache for given logical or physical connection name.
virtual unsigned int getOutputContext(const std::string &label) override
Gaudi::Property< std::string > m_writeCatalog
WriteCatalog, the file catalog to be used to register output files (also default input catalog): defa...
virtual StatusCode stop() override
Gaudi::Property< bool > m_attemptCatalogPatch
AttemptCatalogPatch, option to create catalog: default = false.
std::map< unsigned int, std::list< Guid > > m_guidLists ATLAS_THREAD_SAFE
virtual StatusCode getAttribute(const std::string &optName, std::string &data, long tech, unsigned int contextId=IPoolSvc::kInputStream) const override
Get POOL attributes - domain.
Gaudi::Property< std::string > m_fileOpen
FileOpen, the open mode for the file ("append" or "overwrite").
This class provides a token that identifies in a unique way objects on the persistent storage.
An interface to a storage technology specific collection of event references and attributes.
IContainer is the base class for container objects.
IDatabase is the base class for database objects.
IPersistencySvc is the abstract interface for all services which execute the conversion between trans...
Type
Transaction type enumeration.
std::string label(const std::string &format, int i)