1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
|
#ifndef CondCore_CondDB_IDbSchema_h
#define CondCore_CondDB_IDbSchema_h
//
#include <boost/date_time/posix_time/posix_time.hpp>
#include "CondFormats/Common/interface/Time.h"
#include "CondCore/CondDB/interface/Types.h"
#include "CondCore/CondDB/interface/Binary.h"
namespace cond {
namespace persistency {
class ITagTable {
public:
virtual ~ITagTable() {}
virtual bool exists() = 0;
virtual void create() = 0;
virtual bool select(const std::string& name) = 0;
virtual bool select(const std::string& name,
cond::TimeType& timeType,
std::string& objectType,
cond::SynchronizationType& synchronizationType,
cond::Time_t& endOfValidity,
cond::Time_t& lastValidatedTime,
int& protectionCode) = 0;
virtual bool getMetadata(const std::string& name,
std::string& description,
boost::posix_time::ptime& insertionTime,
boost::posix_time::ptime& modificationTime) = 0;
virtual void insert(const std::string& name,
cond::TimeType timeType,
const std::string& objectType,
cond::SynchronizationType synchronizationType,
cond::Time_t endOfValidity,
const std::string& description,
cond::Time_t lastValidatedTime,
const boost::posix_time::ptime& insertionTime) = 0;
virtual void update(const std::string& name,
cond::SynchronizationType synchronizationType,
cond::Time_t& endOfValidity,
cond::Time_t lastValidatedTime,
const boost::posix_time::ptime& updateTime) = 0;
virtual void updateMetadata(const std::string& name,
const std::string& description,
const boost::posix_time::ptime& updateTime) = 0;
virtual void updateValidity(const std::string& name,
cond::Time_t lastValidatedTime,
const boost::posix_time::ptime& updateTime) = 0;
virtual void setProtectionCode(const std::string& name, int code) = 0;
virtual void unsetProtectionCode(const std::string& name, int code) = 0;
};
class IPayloadTable {
public:
virtual ~IPayloadTable() {}
virtual bool exists() = 0;
virtual void create() = 0;
virtual bool select(const cond::Hash& payloadHash,
std::string& objectType,
cond::Binary& payloadData,
cond::Binary& streamerInfoData) = 0;
virtual bool getType(const cond::Hash& payloadHash, std::string& objectType) = 0;
virtual cond::Hash insertIfNew(const std::string& objectType,
const cond::Binary& payloadData,
const cond::Binary& streamerInfoData,
const boost::posix_time::ptime& insertionTime) = 0;
};
class IIOVTable {
public:
virtual ~IIOVTable() {}
virtual bool exists() = 0;
virtual void create() = 0;
virtual size_t getGroups(const std::string& tag,
const boost::posix_time::ptime& snapshotTime,
unsigned long long groupSize,
std::vector<cond::Time_t>& groups) = 0;
virtual size_t select(const std::string& tag,
cond::Time_t lowerGroup,
cond::Time_t upperGroup,
const boost::posix_time::ptime& snapshotTime,
std::vector<std::tuple<cond::Time_t, cond::Hash> >& iovs) = 0;
virtual bool getLastIov(const std::string& tag,
const boost::posix_time::ptime& snapshotTime,
cond::Time_t& since,
cond::Hash& hash) = 0;
virtual bool getSize(const std::string& tag, const boost::posix_time::ptime& snapshotTime, size_t& size) = 0;
virtual bool getRange(const std::string& tag,
cond::Time_t begin,
cond::Time_t end,
const boost::posix_time::ptime& snapshotTime,
std::vector<std::tuple<cond::Time_t, cond::Hash> >& iovs) = 0;
virtual void insertOne(const std::string& tag,
cond::Time_t since,
cond::Hash payloadHash,
const boost::posix_time::ptime& insertTime) = 0;
virtual void insertMany(
const std::string& tag,
const std::vector<std::tuple<cond::Time_t, cond::Hash, boost::posix_time::ptime> >& iovs) = 0;
virtual void eraseOne(const std::string& tag, cond::Time_t since, cond::Hash payloadId) = 0;
virtual void eraseMany(const std::string& tag,
const std::vector<std::tuple<cond::Time_t, cond::Hash> >& iovs) = 0;
virtual void erase(const std::string& tag) = 0;
};
class ITagAccessPermissionTable {
public:
virtual ~ITagAccessPermissionTable() {}
virtual bool exists() = 0;
virtual void create() = 0;
virtual bool getAccessPermission(const std::string& tagName,
const std::string& credential,
int credentialType,
int accessType) = 0;
virtual void setAccessPermission(const std::string& tagName,
const std::string& credential,
int credentialType,
int accessType) = 0;
virtual void removeAccessPermission(const std::string& tagName,
const std::string& credential,
int credentialType) = 0;
virtual void removeEntriesForCredential(const std::string& credential, int credentialType) = 0;
};
class ITagLogTable {
public:
virtual ~ITagLogTable() {}
virtual bool exists() = 0;
virtual void create() = 0;
virtual void insert(const std::string& tag,
const boost::posix_time::ptime& eventTime,
const std::string& userName,
const std::string& hostName,
const std::string& command,
const std::string& action,
const std::string& userText) = 0;
};
class IIOVSchema {
public:
virtual ~IIOVSchema() {}
virtual bool exists() = 0;
virtual bool create() = 0;
virtual ITagTable& tagTable() = 0;
virtual IIOVTable& iovTable() = 0;
virtual IPayloadTable& payloadTable() = 0;
virtual ITagLogTable& tagLogTable() = 0;
virtual ITagAccessPermissionTable& tagAccessPermissionTable() = 0;
};
class IGTTable {
public:
virtual ~IGTTable() {}
virtual bool exists() = 0;
virtual void create() = 0;
virtual bool select(const std::string& name) = 0;
virtual bool select(const std::string& name, cond::Time_t& validity, boost::posix_time::ptime& snapshotTime) = 0;
virtual bool select(const std::string& name,
cond::Time_t& validity,
std::string& description,
std::string& release,
boost::posix_time::ptime& snapshotTime) = 0;
virtual void insert(const std::string& name,
cond::Time_t validity,
const std::string& description,
const std::string& release,
const boost::posix_time::ptime& snapshotTime,
const boost::posix_time::ptime& insertionTime) = 0;
virtual void update(const std::string& name,
cond::Time_t validity,
const std::string& description,
const std::string& release,
const boost::posix_time::ptime& snapshotTime,
const boost::posix_time::ptime& insertionTime) = 0;
};
class IGTMapTable {
public:
virtual ~IGTMapTable() {}
virtual bool exists() = 0;
virtual void create() = 0;
virtual bool select(const std::string& gtName,
std::vector<std::tuple<std::string, std::string, std::string> >& tags) = 0;
virtual bool select(const std::string& gtName,
const std::string& preFix,
const std::string& postFix,
std::vector<std::tuple<std::string, std::string, std::string> >& tags) = 0;
virtual void insert(const std::string& gtName,
const std::vector<std::tuple<std::string, std::string, std::string> >& tags) = 0;
};
class IGTSchema {
public:
virtual ~IGTSchema() {}
virtual bool exists() = 0;
virtual void create() = 0;
virtual IGTTable& gtTable() = 0;
virtual IGTMapTable& gtMapTable() = 0;
};
class IRunInfoTable {
public:
virtual ~IRunInfoTable() {}
virtual bool exists() = 0;
virtual void create() = 0;
virtual bool select(cond::Time_t runNumber, boost::posix_time::ptime& start, boost::posix_time::ptime& end) = 0;
virtual cond::Time_t getLastInserted(boost::posix_time::ptime& start, boost::posix_time::ptime& end) = 0;
virtual bool getInclusiveRunRange(
cond::Time_t lower,
cond::Time_t upper,
std::vector<std::tuple<cond::Time_t, boost::posix_time::ptime, boost::posix_time::ptime> >& runData) = 0;
virtual bool getInclusiveTimeRange(
const boost::posix_time::ptime& lower,
const boost::posix_time::ptime& upper,
std::vector<std::tuple<cond::Time_t, boost::posix_time::ptime, boost::posix_time::ptime> >& runData) = 0;
virtual void insertOne(cond::Time_t runNumber,
const boost::posix_time::ptime& start,
const boost::posix_time::ptime& end) = 0;
virtual void insert(
const std::vector<std::tuple<cond::Time_t, boost::posix_time::ptime, boost::posix_time::ptime> >& runs) = 0;
virtual void updateEnd(cond::Time_t runNumber, const boost::posix_time::ptime& end) = 0;
};
class IRunInfoSchema {
public:
virtual ~IRunInfoSchema() {}
virtual bool exists() = 0;
virtual bool create() = 0;
virtual IRunInfoTable& runInfoTable() = 0;
};
} // namespace persistency
} // namespace cond
#endif
|