3 #ifndef __ARC_JOBINFORMATIONSTORAGE_H__
4 #define __ARC_JOBINFORMATIONSTORAGE_H__
9 #ifdef DBJSTORE_ENABLED
13 #include <arc/compute/Job.h>
48 : name(name), nTries(nTries), tryInterval(tryInterval) {}
71 virtual bool ReadAll(std::list<Job>& jobs,
const std::list<std::string>& rejectEndpoints = std::list<std::string>()) = 0;
110 virtual bool Read(std::list<Job>& jobs, std::list<std::string>& jobIdentifiers,
111 const std::list<std::string>& endpoints = std::list<std::string>(),
112 const std::list<std::string>& rejectEndpoints = std::list<std::string>()) = 0;
130 virtual bool Write(
const std::list<Job>& jobs) { std::list<const Job*> newJobs; std::set<std::string> prunedServices;
return Write(jobs, prunedServices, newJobs); }
160 virtual bool Write(
const std::list<Job>& jobs,
const std::set<std::string>& prunedServices, std::list<const Job*>& newJobs) = 0;
173 virtual bool Clean() = 0;
189 virtual bool Remove(
const std::list<std::string>& jobids) = 0;
195 const std::string&
GetName()
const {
return name; }
198 const std::string name;
200 unsigned tryInterval;
209 bool ReadAll(std::list<Job>& jobs,
const std::list<std::string>& rejectEndpoints = std::list<std::string>());
210 bool Read(std::list<Job>& jobs, std::list<std::string>& jobIdentifiers,
211 const std::list<std::string>& endpoints = std::list<std::string>(),
212 const std::list<std::string>& rejectEndpoints = std::list<std::string>());
214 bool Write(
const std::list<Job>& jobs,
const std::set<std::string>& prunedServices, std::list<const Job*>& newJobs);
216 bool Remove(
const std::list<std::string>& jobids);
222 #ifdef DBJSTORE_ENABLED
225 JobInformationStorageBDB(
const std::string& name,
unsigned nTries = 10,
unsigned tryInterval = 500000)
227 virtual ~JobInformationStorageBDB() {}
229 bool ReadAll(std::list<Job>& jobs,
const std::list<std::string>& rejectEndpoints = std::list<std::string>());
230 bool Read(std::list<Job>& jobs, std::list<std::string>& jobIdentifiers,
231 const std::list<std::string>& endpoints = std::list<std::string>(),
232 const std::list<std::string>& rejectEndpoints = std::list<std::string>());
233 bool Write(
const std::list<Job>& jobs);
234 bool Write(
const std::list<Job>& jobs,
const std::set<std::string>& prunedServices, std::list<const Job*>& newJobs);
236 bool Remove(
const std::list<std::string>& jobids);
239 static void logErrorMessage(
int err);
241 static Logger logger;
245 JobDB(
const std::string&, u_int32_t = DB_RDONLY);
248 Db* operator->() {
return jobDB; }
249 Db* viaNameKeys() {
return nameSecondaryKeyDB; }
250 Db* viaEndpointKeys() {
return endpointSecondaryKeyDB; }
251 Db* viaServiceInfoKeys() {
return serviceInfoSecondaryKeyDB; }
255 Db *endpointSecondaryKeyDB;
256 Db *nameSecondaryKeyDB;
257 Db *serviceInfoSecondaryKeyDB;
264 #endif // __ARC_JOBINFORMATIONSTORAGE_H__