ATLAS Offline Software
CollSplitByGUIDBase.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef COLLECTIONuTILITIES_COLLSPLITGUIDBASE_H
6 #define COLLECTIONuTILITIES_COLLSPLITGUIDBASE_H
7 
8 
10 
17 
18 
19 #include <string>
20 #include <map>
21 
22 namespace pool
23 {
24 
25  class CollectionService;
26 
28  {
29  public:
30  CollSplitByGUIDBase( const std::string& name = "CollSplitByGUID" );
32 
34  CollSplitByGUIDBase& operator= ( const CollSplitByGUIDBase& ) = delete;
35 
36  virtual bool init( std::vector<std::string> argv_v );
37 
38  virtual int execute( std::vector<std::string> argv_v );
39 
42 
43 
44 
45  std::string m_thisProgram;
46 
49 
51  std::string m_splitRef;
52 
53  // src collection info
54  std::vector<int> m_srcCountVec;
55 
56  // dst collection info
57  std::vector<bool> m_dstCollExistVec;
58 
59  // output modifiers
61 
62  //unsigned int numEventsPerCommit = 10000;
64 
67 
68  std::vector<std::string> m_inputQuery;
69 
70  // Classes handling command line options
74 
76  coral::MessageStream m_log;
77 
78  // Vector of args
80 
81  std::vector< pool::ICollection* > m_srcCollections;
82 
85 
86  protected:
87  virtual void openSourceCollections();
88  virtual void openDestCollections();
89  virtual void copyRows();
90  virtual void finalize();
91 
93  virtual bool readGuidList( const std::string& filename );
95  virtual std::string generateNextCollName( );
97  virtual std::string collectionNameForGuid( const std::string& guid );
98 
99 
100  // map GUID->output collection name (read from guid list file)
101  std::map<std::string,std::string> CollNameforGuidMap;
102 
103  // sequence counter to generate unique output collection names
105 
106  };
107 }
108 
109 #endif
pool::CollSplitByGUIDBase::collectionNameForGuid
virtual std::string collectionNameForGuid(const std::string &guid)
get a user-specified output collection for a given GUID (empty string if none given)
pool::CollSplitByGUIDBase::m_rowsCached
int m_rowsCached
Definition: CollSplitByGUIDBase.h:63
pool::CollSplitByGUIDBase::m_numEventsPerCommit
int m_numEventsPerCommit
Definition: CollSplitByGUIDBase.h:65
pool
pool namespace
Definition: libname.h:15
pool::CollSplitByGUIDBase::setCollectionPool
virtual void setCollectionPool(CollectionPool *)
use a different collection pool handler than the default one
pool::CollSplitByGUIDBase::openDestCollections
virtual void openDestCollections()
pool::CollSplitByGUIDBase
Definition: CollSplitByGUIDBase.h:28
pool::CollSplitByGUIDBase::m_maxSplit
int m_maxSplit
maximum number of allowed output collections
Definition: CollSplitByGUIDBase.h:48
pool::CollSplitByGUIDBase::finalize
virtual void finalize()
pool::CollSplitByGUIDBase::copyRows
virtual void copyRows()
pool::CollSplitByGUIDBase::init
virtual bool init(std::vector< std::string > argv_v)
pool::CollSplitByGUIDBase::m_srcCountVec
std::vector< int > m_srcCountVec
Definition: CollSplitByGUIDBase.h:54
pool::CollectionPool
Definition: CollectionPool.h:30
pool::CollSplitByGUIDBase::m_numRowsCached
int m_numRowsCached
Definition: CollSplitByGUIDBase.h:66
CollectionPool.h
pool::Args2Container
Definition: Args2Container.h:100
pool::CollSplitByGUIDBase::CollSplitByGUIDBase
CollSplitByGUIDBase(const std::string &name="CollSplitByGUID")
pool::CollSplitByGUIDBase::m_queryinfo
QueryInfo m_queryinfo
Definition: CollSplitByGUIDBase.h:72
pool::CollSplitByGUIDBase::CollNameforGuidMap
std::map< std::string, std::string > CollNameforGuidMap
Definition: CollSplitByGUIDBase.h:101
ICollection.h
Args2Container.h
pool::CollSplitByGUIDBase::~CollSplitByGUIDBase
virtual ~CollSplitByGUIDBase()
pool::CollSplitByGUIDBase::m_thisProgram
std::string m_thisProgram
Definition: CollSplitByGUIDBase.h:45
pool::QueryInfo
Definition: QueryInfo.h:31
pool::CollSplitByGUIDBase::m_splitRef
std::string m_splitRef
name of the Token attribute that is used for splitting
Definition: CollSplitByGUIDBase.h:51
pool::CollSplitByGUIDBase::readGuidList
virtual bool readGuidList(const std::string &filename)
read user-prepared list of GUIDs and output collection names
pool_uuid.guid
guid
Definition: pool_uuid.py:112
pool::CollSplitByGUIDBase::generateNextCollName
virtual std::string generateNextCollName()
generate next output collection name
pool::CollSplitByGUIDBase::m_srcinfo
SrcInfo m_srcinfo
Definition: CollSplitByGUIDBase.h:73
pool::CollSplitByGUIDBase::m_minEvents
int m_minEvents
Definition: CollSplitByGUIDBase.h:60
pool::CollSplitByGUIDBase::m_log
coral::MessageStream m_log
Definition: CollSplitByGUIDBase.h:76
CatalogInfo.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
pool::CollSplitByGUIDBase::m_collectionPool
CollectionPool * m_collectionPool
pool of output collections
Definition: CollSplitByGUIDBase.h:84
pool::CollSplitByGUIDBase::m_dstCollExistVec
std::vector< bool > m_dstCollExistVec
Definition: CollSplitByGUIDBase.h:57
pool::SrcInfo
Definition: SrcInfo.h:31
pool::CollSplitByGUIDBase::m_catinfo
CatalogInfo m_catinfo
Definition: CollSplitByGUIDBase.h:71
pool::CollSplitByGUIDBase::m_outputCollSeqN
int m_outputCollSeqN
Definition: CollSplitByGUIDBase.h:104
pool::CatalogInfo
Definition: CatalogInfo.h:35
pool::ATLAS_NOT_THREAD_SAFE
DbStatus DbObjectHandle< T >::makeLink ATLAS_NOT_THREAD_SAFE(const Token *pToken, Token::OID_t &linkH) const
Add persistent association entry.
Definition: DbObject.h:220
pool::CollSplitByGUIDBase::m_argsVec
Args2Container m_argsVec
Definition: CollSplitByGUIDBase.h:79
CaloCellTimeCorrFiller.filename
filename
Definition: CaloCellTimeCorrFiller.py:24
pool::CollSplitByGUIDBase::execute
virtual int execute(std::vector< std::string > argv_v)
pool::CollectionService
Definition: CollectionService.h:26
checker_macros.h
Define macros for attributes used to control the static checker.
SrcInfo.h
pool::CollSplitByGUIDBase::m_collectionService
pool::CollectionService * m_collectionService
Definition: CollSplitByGUIDBase.h:75
pool::CollSplitByGUIDBase::CollSplitByGUIDBase
CollSplitByGUIDBase(const CollSplitByGUIDBase &)=delete
QueryInfo.h
pool::CollSplitByGUIDBase::openSourceCollections
virtual void openSourceCollections()
pool::CollSplitByGUIDBase::m_srcCollections
std::vector< pool::ICollection * > m_srcCollections
Definition: CollSplitByGUIDBase.h:81
pool::CollSplitByGUIDBase::m_inputQuery
std::vector< std::string > m_inputQuery
Definition: CollSplitByGUIDBase.h:68