CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
IOVEditor.h
Go to the documentation of this file.
1 #ifndef CondCore_IOVService_IOVEditor_h
2 #define CondCore_IOVService_IOVEditor_h
3 
5 
8 
9 //
10 // Package: CondCore/IOVService
11 // Class : IOVEditor
12 //
16 //
17 // Author: Zhen Xie
18 // Fixes and other changes: Giacomo Govi
19 //
20 
21 namespace cond{
22 
23  class IOVElement;
24  class IOVSequence;
25 
27  public:
28  explicit IOVImportIterator( boost::shared_ptr<cond::IOVProxyData>& destIov );
29 
30  virtual ~IOVImportIterator();
31 
32  void setUp( cond::IOVProxy& sourceIov, cond::Time_t since, cond::Time_t till, bool outOfOrder, size_t bulkSize = 1 );
33 
34  void setUp( cond::DbSession& sourceSess, const std::string& sourceIovToken, cond::Time_t since, cond::Time_t till,
35  bool outOfOrder, size_t bulkSize = 1 );
36 
37  void setUp( cond::IOVProxy& sourceIov, size_t bulkSize = 1 );
38 
39  void setUp( cond::DbSession& sourceSess, const std::string& sourceIovToken, size_t bulkSize = 1 );
40 
41  bool hasMoreElements();
42 
43  size_t importMoreElements();
44 
45  size_t importAll();
46 
47  private:
49  boost::shared_ptr<cond::IOVProxyData> m_destIov;
51  size_t m_bulkSize;
54  };
55 
56  class IOVEditor{
57  public:
58 
59  // default constructor
60  IOVEditor();
61 
63  ~IOVEditor();
64 
65  //
66  explicit IOVEditor(cond::DbSession& dbSess);
67 
68  // constructor from existing iov
69  IOVEditor( cond::DbSession& dbSess, const std::string& token);
70 
71  IOVEditor( const IOVEditor& rhs );
72 
73  IOVEditor& operator=( const IOVEditor& rhs );
74 
75  void reload();
76 
77  void load( const std::string& token );
78 
80 
81  // create empty default sequence
83 
84  // create empty sequence with fixed time boundary
85  std::string create(cond::TimeType timetype, cond::Time_t lastTill, const std::string& metadata );
86 
87  // ####### TO BE REOMOVED ONLY USED IN TESTS
88  std::string create(cond::TimeType timetype, cond::Time_t lastTill );
89 
91  unsigned int insert( cond::Time_t tillTime, const std::string& payloadToken );
92 
95  unsigned int append( cond::Time_t sinceTime, const std::string& payloadToken );
96 
98  unsigned int freeInsert( cond::Time_t sinceTime, const std::string& payloadToken );
99 
101  void bulkAppend( std::vector< std::pair<cond::Time_t, std::string > >& values );
102 
103  void bulkAppend(std::vector< cond::IOVElement >& values);
104 
105  //stamp iov
106  void stamp(std::string const & icomment, bool append=false);
107 
109  void editMetadata( std::string const & metadata, bool append=false);
110 
113 
115  void updateClosure( cond::Time_t newtillTime );
116 
117  // remove last entry
118  unsigned int truncate(bool withPayload=false);
119 
120  // delete all entries
121  void deleteEntries( bool withPayload=false);
122 
123  //
124  size_t import( cond::DbSession& sourceSess, const std::string& sourceIovToken );
125 
126  //
127  boost::shared_ptr<IOVImportIterator> importIterator();
128 
129  TimeType timetype() const;
130 
131  std::string const & token() const;
132 
133  cond::IOVProxy proxy() const;
134 
135  private:
136 
137  bool validTime(cond::Time_t time, cond::TimeType timetype) const;
138  bool validTime(cond::Time_t time) const;
139 
140  void debugInfo(std::ostream & co) const;
141  void reportError(std::string message) const;
142  void reportError(std::string message, cond::Time_t time) const;
143 
144  private:
145 
147  boost::shared_ptr<cond::IOVProxyData> m_iov;
148  };
149 }//ns cond
150 #endif
std::string create(cond::TimeType timetype)
Definition: IOVEditor.cc:260
void debugInfo(std::ostream &co) const
Definition: IOVEditor.cc:208
void load(const std::string &token)
Definition: IOVEditor.cc:202
void reportError(std::string message) const
Definition: IOVEditor.cc:231
IOVEditor & operator=(const IOVEditor &rhs)
Definition: IOVEditor.cc:191
bool validTime(cond::Time_t time, cond::TimeType timetype) const
Definition: IOVEditor.cc:284
std::string const & token() const
Definition: IOVEditor.cc:542
void setScope(cond::IOVSequence::ScopeType scope)
set the scope
Definition: IOVEditor.cc:395
Container::const_iterator const_iterator
Definition: IOVSequence.h:29
unsigned int freeInsert(cond::Time_t sinceTime, const std::string &payloadToken)
insert a payload with known since in any position
Definition: IOVEditor.cc:451
cond::IOVProxy m_sourceIov
Definition: IOVEditor.h:48
IOVSequence::const_iterator m_cursor
Definition: IOVEditor.h:52
TimeType
Definition: Time.h:21
IOVImportIterator(boost::shared_ptr< cond::IOVProxyData > &destIov)
Definition: IOVEditor.cc:50
unsigned int truncate(bool withPayload=false)
Definition: IOVEditor.cc:485
unsigned long long Time_t
Definition: Time.h:16
TimeType timetype() const
Definition: IOVEditor.cc:538
unsigned int insert(cond::Time_t tillTime, const std::string &payloadToken)
Assign a payload with till time. Returns the payload index in the iov sequence.
Definition: IOVEditor.cc:297
bool createIOVContainerIfNecessary()
Definition: IOVEditor.cc:249
IOVSequence::const_iterator m_till
Definition: IOVEditor.h:53
cond::IOVProxy proxy() const
Definition: IOVEditor.cc:546
void updateClosure(cond::Time_t newtillTime)
Update the closure of the iov sequence.
Definition: IOVEditor.cc:405
unsigned int append(cond::Time_t sinceTime, const std::string &payloadToken)
Definition: IOVEditor.cc:416
cond::Time_t m_lastSince
Definition: IOVEditor.h:50
virtual ~IOVImportIterator()
Definition: IOVEditor.cc:60
void bulkAppend(std::vector< std::pair< cond::Time_t, std::string > > &values)
Bulk append of iov chunck.
Definition: IOVEditor.cc:321
void stamp(std::string const &icomment, bool append=false)
Definition: IOVEditor.cc:375
void deleteEntries(bool withPayload=false)
Definition: IOVEditor.cc:504
boost::shared_ptr< IOVImportIterator > importIterator()
Definition: IOVEditor.cc:531
void setUp(cond::IOVProxy &sourceIov, cond::Time_t since, cond::Time_t till, bool outOfOrder, size_t bulkSize=1)
Definition: IOVEditor.cc:63
boost::shared_ptr< cond::IOVProxyData > m_destIov
Definition: IOVEditor.h:49
boost::shared_ptr< cond::IOVProxyData > m_iov
Definition: IOVEditor.h:147
~IOVEditor()
Destructor.
Definition: IOVEditor.cc:173
void editMetadata(std::string const &metadata, bool append=false)
edit metadata
Definition: IOVEditor.cc:385