ARC SDK
JobInformationStorage.h
1 // -*- indent-tabs-mode: nil -*-
2 
3 #ifndef __ARC_JOBINFORMATIONSTORAGE_H__
4 #define __ARC_JOBINFORMATIONSTORAGE_H__
5 
6 #include <string>
7 #include <set>
8 
9 #include <arc/compute/Job.h>
10 
11 namespace Arc {
12 
13  class JobInformationStorage;
14 
15  typedef struct {
16  const char *name;
17  JobInformationStorage* (*instance)(const std::string&);
19 
21 
32  public:
34 
49  JobInformationStorage(const std::string& name, unsigned nTries = 10, unsigned tryInterval = 500000)
50  : name(name), nTries(nTries), tryInterval(tryInterval), isValid(false), isStorageExisting(false) {}
51  virtual ~JobInformationStorage() {}
52 
54 
57  bool IsValid() const { return isValid; }
58 
60 
63  bool IsStorageExisting() const { return isStorageExisting; }
64 
66 
85  virtual bool ReadAll(std::list<Job>& jobs, const std::list<std::string>& rejectEndpoints = std::list<std::string>()) = 0;
86 
88 
124  virtual bool Read(std::list<Job>& jobs, std::list<std::string>& jobIdentifiers,
125  const std::list<std::string>& endpoints = std::list<std::string>(),
126  const std::list<std::string>& rejectEndpoints = std::list<std::string>()) = 0;
127 
129 
144  virtual bool Write(const std::list<Job>& jobs) { std::list<const Job*> newJobs; std::set<std::string> prunedServices; return Write(jobs, prunedServices, newJobs); }
145 
147 
174  virtual bool Write(const std::list<Job>& jobs, const std::set<std::string>& prunedServices, std::list<const Job*>& newJobs) = 0;
175 
177 
187  virtual bool Clean() = 0;
188 
190 
203  virtual bool Remove(const std::list<std::string>& jobids) = 0;
204 
206 
209  const std::string& GetName() const { return name; }
210 
211  static JobInformationStorageDescriptor AVAILABLE_TYPES[];
212 
213  protected:
214  const std::string name;
215  unsigned nTries;
216  unsigned tryInterval;
220  bool isValid;
225  };
226 
227 } // namespace Arc
228 
229 #endif // __ARC_JOBINFORMATIONSTORAGE_H__
Arc namespace contains all core ARC classes.
Definition: ArcConfig.h:11
bool IsValid() const
Check if storage is valid.
Definition: JobInformationStorage.h:57
virtual bool Read(std::list< Job > &jobs, std::list< std::string > &jobIdentifiers, const std::list< std::string > &endpoints=std::list< std::string >(), const std::list< std::string > &rejectEndpoints=std::list< std::string >())=0
Read specified jobs.
virtual bool Remove(const std::list< std::string > &jobids)=0
Remove jobs.
const std::string & GetName() const
Get name.
Definition: JobInformationStorage.h:209
virtual bool Clean()=0
Clean storage.
bool isValid
Definition: JobInformationStorage.h:220
Abstract class for storing job information.
Definition: JobInformationStorage.h:31
bool isStorageExisting
Definition: JobInformationStorage.h:224
virtual bool ReadAll(std::list< Job > &jobs, const std::list< std::string > &rejectEndpoints=std::list< std::string >())=0
Read all jobs from storage.
virtual bool Write(const std::list< Job > &jobs)
Write jobs.
Definition: JobInformationStorage.h:144
JobInformationStorage(const std::string &name, unsigned nTries=10, unsigned tryInterval=500000)
Constructor.
Definition: JobInformationStorage.h:49
Definition: JobInformationStorage.h:15
bool IsStorageExisting() const
Check if storage exists.
Definition: JobInformationStorage.h:63