ARC SDK
JobInformationStorageXML.h
1 // -*- indent-tabs-mode: nil -*-
2 
3 #ifndef __ARC_JOBINFORMATIONSTORAGEXML_H__
4 #define __ARC_JOBINFORMATIONSTORAGEXML_H__
5 
6 #include <arc/ArcConfig.h>
7 
8 #include "JobInformationStorage.h"
9 
10 namespace Arc {
11 
13  public:
14  JobInformationStorageXML(const std::string& name, unsigned nTries = 10, unsigned tryInterval = 500000);
15  virtual ~JobInformationStorageXML() {}
16 
17  static JobInformationStorage* Instance(const std::string& name) { return new JobInformationStorageXML(name); }
18 
19  bool ReadAll(std::list<Job>& jobs, const std::list<std::string>& rejectEndpoints = std::list<std::string>());
20  bool Read(std::list<Job>& jobs, std::list<std::string>& jobIdentifiers,
21  const std::list<std::string>& endpoints = std::list<std::string>(),
22  const std::list<std::string>& rejectEndpoints = std::list<std::string>());
23  bool Write(const std::list<Job>& jobs) { std::list<const Job*> newJobs; std::set<std::string> prunedServices; return Write(jobs, prunedServices, newJobs); }
24  bool Write(const std::list<Job>& jobs, const std::set<std::string>& prunedServices, std::list<const Job*>& newJobs);
25  bool Clean();
26  bool Remove(const std::list<std::string>& jobids);
27 
28  private:
29  Config jobstorage;
30  static Logger logger;
31  };
32 
33 } // namespace Arc
34 
35 #endif // __ARC_JOBINFORMATIONSTORAGEXML_H__