Muster SDK  8.5.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
MJob.h
Go to the documentation of this file.
1 /*****************************************************************************
2  **
3  ** Header file for Muster API Job object
4  **
5  ** Name : MJob.h
6  ** Author : Leonardo Bernardini
7  ** Version : 1.0, Sat Mar 2nd 2013
8  **
9  ** Copyright 2000-2014, Virtual Vertex
10  ** All Rights Reserved.
11  **
12  ** This file contains UNPUBLISHED PROPRIETARY SOURCE CODE.
13  ** The contents of this file may not be disclosed to third parties, copied
14  ** or duplicated in any form, in whole or in part, without the prior written
15  ** permission of the author.
16  **
17  *****************************************************************************/
18 #ifndef MJOB_H
19 #define MJOB_H
20 
21 
22 #ifdef WIN32
23 // Windows definitions
24 #ifdef MCLIENTLIB_EXPORTS
25 #define MCLIENTLIB_API __declspec(dllexport)
26 #else
27 #define MCLIENTLIB_API __declspec(dllimport)
28 #endif
29 #else
30 
31 #ifndef MCLIENTLIB_EXPORTS
32 #ifdef LINUX
33 #define MCLIENTLIB_API
34 #else
35 #define MCLIENTLIB_API
36 #endif
37 #else
38 #define MCLIENTLIB_API
39 #endif
40 
41 #endif
42 
43 #include <string>
44 #include <MClientLib/MProperties.h>
45 #include <MClientLib/MError.h>
46 
47 #define IS_JOB_STARTED(x) (x->getStatus() != MClientLib::MJob::kJobsStatusJobCompleted && x->getStatus() != MClientLib::MJob::kJobStatusLocked && x->getStatus() != MClientLib::MJob::kJobStatusArchived && x->getStatus() != MClientLib::MJob::kJobStatusOnQueue)
48 
49 namespace MClientLib {
50 
55 
56  private:
57  int framesCheckMode;
58  int framesCheckFileMode;
59  long long int framesCheckFileLowBoundary;
60  long long int framesCheckFileHighBoundary;
61  int maximumRecursion;
62 
63  public:
64 
66 
67  int getFramesCheckMode();
68  int getFramesCheckFileMode();
69  long long int getFramesCheckFileLowBoundary();
70  long long int getFramesCheckFileHighBoundary();
71  int getMaximumRecursion();
72 
73  void setFramesCheckMode(int);
74  void setFramesCheckFileMode(int);
75  void setFramesCheckFileLowBoundary(long long int);
76  void setFramesCheckFileHighBoundary(long long int);
77  void setMaximumRecursion(int);
78  };
79 
84  public:
85  virtual ~MJobPathTranslator();
86  virtual std::string translate(const std::string& path);
87 
88  };
89 
94 
95  public:
96 
100  enum kJobsStatus {
101  kJobStatusOnQueue = 0x01,
102  kJobStatusStarted = 0x02,
103  kJobStatusInprogressWarnings = 0x04,
104  kJobStatusInprogressErrors = 0x08,
105  kJobStatusPreJobAction = 0x10,
106  kJobStatusPostJobAction = 0x20,
107  kJobStatusPendingPreJobAction = 0x40,
108  kJobStatusPendingPostJobAction = 0x80,
109  kJobStatusPendingFramecheck = 0x100,
110  kJobStatusFramecheck = 0x200,
111  kJobsStatusJobCompleted = 0x400,
112  kJobStatusCompletedWithWarnings = 0x800,
113  kJobStatusCompletedWithErrors = 0x1000,
114  kJobStatusPendingPostJobPyAction = 0x2000,
115  kJobStatusPostJobPyAction = 0x4000,
117  kJobStatusLocked = 0x100000,
118  kJobStatusArchived = 0x200000,
119  kJobStatusPaused = 0x400000
120  };
121 
125  enum kJobsType {
128  };
129 
134  kJobDependUncompleted = -1,
137  kJobDependErrors
138  };
139 
147  kSkipBoth
148  };
149 
156  kFramesCheckChunk
157  };
158 
165  kFramesCheckFileBoundaries
166  };
167 
174  kMissingFrameStatusSizeError
175  };
176 
188  kJobCompletionStatusPostChunkActionError
189  };
190 
198  kNotificationsOnError
199  };
200 
201  private:
202  long parentId;
203  long jobId;
204  std::string depends;
205  int dependMode;
206  int jobType;
207  int priority;
208  int indent;
209  int status;
210  double progress;
211  int packetType;
212  int packetSize;
213  int templateID;
214  int maximumNodes;
215  int workingNodes;
216  int requeued;
217  int exitcodesErrorCheckType;
218  int logsErrorCheckType;
219  bool paused;
220  bool locked;
221  bool archivied;
222  std::string name;
223  std::string includedPools;
224  std::string excludedPools;
225  std::string owner;
226  std::string project;
227  std::string department;
228  std::string totalTime;
229  long long int submissionTime;
230  long long int startTime;
231  long long int endTime;
232  long long int startsOn;
233  long long int pauseOn;
234  long long int resumesOn;
235  bool overrideMailAddress;
236  bool overrideChunksTimeout;
237  std::string mailAddress;
238  int overrideChunksTimeoutValue;
239  bool overrideValidExitCodes;
240  bool overrideWarningExitCodes;
241  bool overrideErrorExitCodes;
242  bool overrideValidLogTexts;
243  bool overrideWarningLogTexts;
244  bool overrideErrorLogTexts;
245  bool overrideMinimumThreads;
246  bool overrideMinimumCores;
247  bool overrideMinimumPhysical;
248  bool overrideMinimumSpeed;
249  bool overrideMinimumRam;
250  bool overrideMinimumDiskSpace;
251  bool overrideMaximumChunksRequeue;
252 
253  bool overrideNotificationsAtJobLevel;
254  bool enableNotificationsAtJobLevel;
255  int notificationsAtJobLevelType;
256  bool overrideNotificationsAtChunkLevel;
257  bool enableNotificationsAtChunkLevel;
258  int notificationsAtChunkLevelType;
259 
260  int maximumChunksRequeue;
261  std::string overrideValidExitCodesValue;
262  std::string overrideWarningExitCodesValue;
263  std::string overrideErrorExitCodesValue;
264  std::string overrideValidLogTextsValue;
265  std::string overrideWarningLogTextsValue;
266  std::string overrideErrorLogTextsValue;
267  int overrideMinimumThreadsValue;
268  int overrideMinimumCoresValue;
269  int overrideMinimumPhysicalValue;
270  double overrideMinimumSpeedValue;
271  double overrideMinimumRamValue;
272  double overrideMinimumDiskSpaceValue;
273 
274  long long int updateTime;
275 
276  protected:
278 
279  public:
280  MJob();
281  MJob(long _id);
282 
283  virtual ~MJob();
284  virtual void copyFromJob( MJob& job, bool copyAttributes, bool copyIdentities);
285  virtual long getParentId();
286  virtual long getJobId();
287  virtual std::string getDepends();
288  virtual int getDependMode();
289  virtual int getJobType();
290  virtual int getPriority();
291  virtual int getIndent();
292  virtual int getStatus();
293  virtual double getProgress();
294  virtual int getPacketType();
295  virtual int getPacketSize();
296  virtual int getTemplateID();
297  virtual int getMaximumNodes();
298  virtual int getWorkingNodes();
299  virtual int getRequeued();
300  virtual int getExitCodesErrorCheckType();
301  virtual int getLogsErrorCheckType();
302  virtual bool getPaused();
303  virtual bool getLocked();
304  virtual bool getArchivied();
305  virtual std::string getName();
306  virtual std::string getIncludedPools();
307  virtual std::string getExcludedPools();
308  virtual std::string getOwner();
309  virtual std::string getProject();
310  virtual std::string getDepartment();
311  virtual std::string getTotalTime();
312  virtual long long int getSubmissionTime();
313  virtual long long int getStartTime();
314  virtual long long int getEndTime();
315  virtual long long int getStartsOn();
316  virtual long long int getPauseOn();
317  virtual long long int getResumesOn();
318  virtual bool getOverrideMailAddress();
319  virtual bool getOverrideChunksTimeout();
320  virtual std::string getMailAddress();
321  virtual int getOverrideChunksTimeoutValue();
322  virtual bool getOverrideValidExitCodes();
323  virtual bool getOverrideWarningExitCodes();
324  virtual bool getOverrideErrorExitCodes();
325  virtual bool getOverrideValidLogTexts();
326  virtual bool getOverrideWarningLogTexts();
327  virtual bool getOverrideErrorLogTexts();
328  virtual bool getOverrideMinimumThreads();
329  virtual bool getOverrideMinimumCores();
330  virtual bool getOverrideMinimumPhysical();
331  virtual bool getOverrideMinimumSpeed();
332  virtual bool getOverrideMinimumRam();
333  virtual bool getOverrideMinimumDiskSpace();
334  virtual bool getOverrideMaximumChunksRequeue();
335  virtual int getOverrideMaximumChunksRequeueValue();
336  virtual std::string getOverrideValidExitCodesValue();
337  virtual std::string getOverrideWarningExitCodesValue();
338  virtual std::string getOverrideErrorExitCodesValue();
339  virtual std::string getOverrideValidLogTextsValue();
340  virtual std::string getOverrideWarningLogTextsValue();
341  virtual std::string getOverrideErrorLogTextsValue();
342  virtual int getOverrideMinimumThreadsValue();
343  virtual int getOverrideMinimumCoresValue();
344  virtual int getOverrideMinimumPhysicalValue();
345  virtual double getOverrideMinimumSpeedValue();
346  virtual double getOverrideMinimumRamValue();
347  virtual double getOverrideMinimumDiskSpaceValue();
348  virtual bool getOverrideNotificationsAtJobLevel();
349  virtual bool getEnableNotificationsAtJobLevel();
350  virtual int getNotificationsAtJobLevelType();
351  virtual bool getOverrideNotificationsAtChunkLevel();
352  virtual bool getEnableNotificationsAtChunkLevel();
353  virtual int getNotificationsAtChunkLevelType();
354  virtual long long int getUpdateTime();
355 
356  virtual void setParentId(long _parentId);
357  virtual void setJobId(long _jobId);
358  virtual void setDepends(const std::string& _depends);
359  virtual void setDependMode(int _dependMode);
360  virtual void setJobType(int _jobType);
361  virtual void setPriority(int _priority);
362  virtual void setIndent(int _indent);
363  virtual void setStatus(int _status);
364  virtual void setProgress(double _progress);
365  virtual void setPacketType(int _packetType);
366  virtual void setPacketSize(int _packetSize);
367  virtual void setTemplateID(int _templateID);
368  virtual void setMaximumNodes(int _maximumNodes);
369  virtual void setWorkingNodes(int _workingNodes);
370  virtual void setRequeued(int _requeued);
371  virtual void setExitCodesErrorCheckType(int _exitcodesErrorCheckType);
372  virtual void setLogsErrorCheckType(int _logsErrorCheckType);
373  virtual void setPaused(bool _paused);
374  virtual void setLocked(bool _locked);
375  virtual void setArchivied(bool _archivied);
376  virtual void setName(const std::string& _name);
377  virtual void setIncludedPools(const std::string& _includedPools);
378  virtual void setExcludedPools(const std::string& _excludedPools);
379  virtual void setOwner(const std::string& _owner);
380  virtual void setProject(const std::string& _project);
381  virtual void setDepartment(const std::string& _department);
382  virtual void setSubmissionTime(long long int _submissionTime);
383  virtual void setStartTime(long long int _startTime);
384  virtual void setEndTime(long long int _endTime);
385  virtual void setStartsOn(long long int _startsOn);
386  virtual void setPauseOn(long long int _pauseOn);
387  virtual void setResumesOn(long long int _resumesOn);
388  virtual void setOverrideMailAddress(bool _overrideMailAddress);
389  virtual void setOverrideChunksTimeout(bool _overrideChunksTimeout);
390  virtual void setMailAddress(const std::string& _mailAddress);
391  virtual void setOverrideChunksTimeoutValue(int _overrideChunksTimeoutValue);
392  virtual void setOverrideValidExitCodes(bool _overrideValidExitCodes);
393  virtual void setOverrideWarningExitCodes(bool _overrideWarningExitCodes);
394  virtual void setOverrideErrorExitCodes(bool _overrideErrorExitCodes);
395  virtual void setOverrideValidLogTexts(bool _overrideValidLogTexts);
396  virtual void setOverrideWarningLogTexts(bool _overrideWarningLogTexts);
397  virtual void setOverrideErrorLogTexts(bool _overrideErrorLogTexts);
398  virtual void setOverrideMinimumThreads(bool _overrideMinimumThreads);
399  virtual void setOverrideMinimumCores(bool _overrideMinimumCores);
400  virtual void setOverrideMinimumPhysical(bool _overrideMinimumPhysical);
401  virtual void setOverrideMinimumSpeed(bool _overrideMinimumSpeed);
402  virtual void setOverrideMinimumRam(bool _overrideMinimumRam);
403  virtual void setOverrideMinimumDiskSpace(bool _overrideMinimumDiskSpace);
404  virtual void setOverrideMaximumChunksRequeue(bool _overrideMaximumChunksRequeue);
405  virtual void setOverrideMaximumChunksRequeueValue(int _maximumChunksRequeue);
406  virtual void setOverrideValidExitCodesValue(const std::string& _overrideValidExitCodesValue);
407  virtual void setOverrideWarningExitCodesValue(const std::string& _overrideWarningExitCodesValue);
408  virtual void setOverrideErrorExitCodesValue(const std::string& _overrideErrorExitCodesValue);
409  virtual void setOverrideValidLogTextsValue(const std::string& _overrideValidLogTextsValue);
410  virtual void setOverrideWarningLogTextsValue(const std::string& _overrideWarningLogTextsValue);
411  virtual void setOverrideErrorLogTextsValue(const std::string& _overrideErrorLogTextsValue);
412  virtual void setOverrideMinimumThreadsValue(int _overrideMinimumThreadsValue);
413  virtual void setOverrideMinimumCoresValue(int _overrideMinimumCoresValue);
414  virtual void setOverrideMinimumPhysicalValue(int _overrideMinimumPhysicalValue);
415  virtual void setOverrideMinimumSpeedValue(double _overrideMinimumSpeedValue);
416  virtual void setOverrideMinimumRamValue(double _overrideMinimumRamValue);
417  virtual void setOverrideMinimumDiskSpaceValue(double _overrideMinimumDiskSpaceValue);
418  virtual void setOverrideNotificationsAtJobLevel(bool _overrideNotificationsAtJobLevel);
419  virtual void setEnableNotificationsAtJobLevel(bool _enableNotificationsAtJobLevel);
420  virtual void setNotificationsAtJobLevelType(int _notificationsAtJobLevelType);
421  virtual void setOverrideNotificationsAtChunkLevel(bool _overrideNotificationsAtChunkLevel);
422  virtual void setEnableNotificationsAtChunkLevel(bool _enableNotificationsAtChunkLevel);
423  virtual void setNotificationsAtChunkLevelType(int _notificationsAtChunkLevelType);
424  virtual void setUpdateTime(long long int updateTime);
425 
426  virtual void clearJob();
427  virtual std::string Marshall(MJobPathTranslator* translator=0);
428  virtual bool Unmarshall(const std::vector<std::string>& items,MJobPathTranslator* translator=0);
429 
430  virtual bool attributeGetFloat(const char* key, float& dest, bool* state = 0);
431  virtual bool attributeGetInt(const char* key, int& dest, bool* state= 0);
432  virtual bool attributeGetBool(const char* key, bool& dest, bool* state= 0);
433  virtual bool attributeGetString(const char* key, std::string& dest, bool* state= 0, bool* subst = 0);
434  virtual bool attributeGetTimet(const char* key, time_t& dest, bool* state= 0);
435  virtual bool attributeGetLong(const char* key, long& dest, bool* state= 0);
436  virtual bool attributeGetInt64(const char* key, long long int& dest, bool* state= 0);
437  virtual std::string attributeGetString(const char* key);
438  virtual bool attributeGetBool(const char* key);
439  virtual float attributeGetFloat(const char* key);
440  virtual int attributeGetInt(const char* key);
441  virtual long long int attributeGetInt64(const char* key);
442  virtual bool attributeIsEnabled(const char* key);
443  virtual bool attributeExists(const char* key);
444  virtual bool attributeHasSubstitutionEnabled(const char* key);
445  virtual void attributeSetFloat(const char* key, float value, bool state = true);
446  virtual void attributeSetInt(const char* key, int value, bool state = true);
447  virtual void attributeSetBool(const char* key, bool value, bool state = true);
448  virtual void attributeSetString(const char* key, std::string value, bool state = true, bool subst = false);
449  virtual void attributeSetTimet(const char* key, time_t* value, bool state = true);
450  virtual void attributeSetLong(const char* key, long value, bool state = true);
451  virtual void attributeSetInt64(const char* key, long long int value, bool state = true);
452 
453  virtual void attributeRemove(const char* key);
454  virtual void attributesClear();
455  MClientLib::MPropertiesMap getAttributes();
456  MClientLib::itemAttributesMap& getAttributesMap();
457 
458  void castedRelease();
459 
460  };
461 }
462 
463 #endif