9 #include <arc/DateTime.h> 
   11 #include <arc/compute/JobState.h> 
   16   class JobControllerPlugin;
 
   17   class JobControllerPluginLoader;
 
   50     URL ServiceInformationURL;
 
   51     std::string ServiceInformationInterfaceName;
 
   53     std::string JobStatusInterfaceName;
 
   55     std::string JobManagementInterfaceName;
 
   62     std::string IDFromEndpoint;
 
   64     std::string LocalIDFromManager;
 
   82     std::string ComputingManagerExitCode;
 
   83     std::list<std::string> Error;
 
   85     std::string UserDomain;
 
   87     std::string LocalOwner;
 
   88     Period RequestedTotalWallTime;
 
   89     Period RequestedTotalCPUTime;
 
   91     std::list<std::string> RequestedApplicationEnvironment;
 
   96     std::list<std::string> ExecutionNode;
 
  101     Time LocalSubmissionTime;
 
  103     Time ComputingManagerSubmissionTime;
 
  105     Time ComputingManagerEndTime;
 
  107     Time WorkingAreaEraseTime;
 
  108     Time ProxyExpirationTime;
 
  109     std::string SubmissionHost;
 
  110     std::string SubmissionClientName;
 
  113     std::list<std::string> OtherMessages;
 
  115     std::list<std::string>  ActivityOldID;
 
  116     std::map<std::string, std::string> LocalInputFiles;
 
  145     void SaveToStream(std::ostream& out, 
bool longlist) 
const;
 
  162     int operator==(
const Job& other);
 
  196     bool GetURLToResource(ResourceType resource, 
URL& url) 
const;
 
  198     bool Retrieve(
const UserConfig& uc, 
const URL& destination, 
bool force) 
const;
 
  200     static bool CopyJobFile(
const UserConfig& uc, 
const URL& src, 
const URL& dst);
 
  201     static bool ListFilesRecursive(
const UserConfig& uc, 
const URL& dir, std::list<std::string>& files) { files.clear(); 
return ListFilesRecursive(uc, dir, files, 
""); }
 
  203     static bool CompareJobID(
const Job& a, 
const Job& b) { 
return a.JobID.compare(b.JobID) < 0; }
 
  204     static bool CompareSubmissionTime(
const Job& a, 
const Job& b) { 
return a.SubmissionTime < b.SubmissionTime; }
 
  205     static bool CompareJobName(
const Job& a, 
const Job& b) { 
return a.Name.compare(b.Name) < 0; }
 
  225     static bool ReadJobIDsFromFile(
const std::string& filename, std::list<std::string>& jobids, 
unsigned nTries = 10, 
unsigned tryInterval = 500000);
 
  243     static bool WriteJobIDToFile(
const std::string& jobid, 
const std::string& filename, 
unsigned nTries = 10, 
unsigned tryInterval = 500000);
 
  261     static bool WriteJobIDsToFile(
const std::list<std::string>& jobids, 
const std::string& filename, 
unsigned nTries = 10, 
unsigned tryInterval = 500000);
 
  263     static bool WriteJobIDsToFile(
const std::list<Job>& jobs, 
const std::string& filename, 
unsigned nTries = 10, 
unsigned tryInterval = 500000);
 
  266     static bool ListFilesRecursive(
const UserConfig& uc, 
const URL& dir, std::list<std::string>& files, 
const std::string& prefix);
 
  268     JobControllerPlugin* jc;
 
  270     static JobControllerPluginLoader& getLoader();
 
  273     static DataHandle *data_source, *data_destination;
 
  275     static Logger logger;
 
  280 #endif // __ARC_JOB_H__