24 #ifdef MCLIENTLIB_EXPORTS
25 #define MCLIENTLIB_API __declspec(dllexport)
27 #define MCLIENTLIB_API __declspec(dllimport)
31 #ifndef MCLIENTLIB_EXPORTS
33 #define MCLIENTLIB_API
35 #define MCLIENTLIB_API
38 #define MCLIENTLIB_API
45 #include <MClientLib/MProperties.h>
46 #include <MClientLib/MError.h>
47 #include <MClientLib/MFramesRange.h>
48 #include <MClientLib/MChunk.h>
49 #include <MClientLib/MMFGroup.h>
50 #include <MClientLib/MTextFileRule.h>
52 #define IS_JOB_STARTED(x) (x->getStatus() != MClientLib::MJob::kJobStatusJobCompleted && x->getStatus() != MClientLib::MJob::kJobStatusLocked && x->getStatus() != MClientLib::MJob::kJobStatusArchived && x->getStatus() != MClientLib::MJob::kJobStatusOnQueue)
70 int framesCheckFileMode;
71 long long int framesCheckFileLowBoundary;
72 long long int framesCheckFileHighBoundary;
75 bool checkImageDimensions;
83 int getFramesCheckMode();
84 int getFramesCheckFileMode();
85 long long int getFramesCheckFileLowBoundary();
86 long long int getFramesCheckFileHighBoundary();
87 int getMaximumRecursion();
89 bool getUseRenderLayers();
90 bool getCheckImageDimensions();
94 void setFramesCheckMode(
int);
95 void setFramesCheckFileMode(
int);
96 void setFramesCheckFileLowBoundary(
long long int);
97 void setFramesCheckFileHighBoundary(
long long int);
98 void setMaximumRecursion(
int);
99 void setOpenFile(
bool);
100 void setUseRenderLayers(
bool);
101 void setCheckImageDimensions(
bool);
102 void setImageWidth(
int);
103 void setImageHeight(
int);
111 class MCLIENTLIB_API MJobPathTranslator {
113 virtual ~MJobPathTranslator();
114 virtual std::string translate(
const std::string& path);
135 typedef void(*job_framecheck_progress_callback)(std::string,std::string,int,
void*);
136 typedef bool(*job_framecheck_abort_callback)(
void*);
145 kJobStatusOnQueue = 0x01,
146 kJobStatusStarted = 0x02,
147 kJobStatusInprogressWarnings = 0x04,
148 kJobStatusInprogressErrors = 0x08,
149 kJobStatusPreJobAction = 0x10,
150 kJobStatusPostJobAction = 0x20,
151 kJobStatusPendingPreJobAction = 0x40,
152 kJobStatusPendingPostJobAction = 0x80,
153 kJobStatusPendingFramecheck = 0x100,
154 kJobStatusFramecheck = 0x200,
155 kJobStatusJobCompleted = 0x400,
156 kJobStatusCompletedWithWarnings = 0x800,
157 kJobStatusCompletedWithErrors = 0x1000,
158 kJobStatusPendingPostJobPyAction = 0x2000,
159 kJobStatusPostJobPyAction = 0x4000,
161 kJobStatusLocked = 0x100000,
162 kJobStatusArchived = 0x200000,
163 kJobStatusPaused = 0x400000,
164 kJobEmergencyQueue = 0x800000,
165 kJobRegularQueue = 0x1000000,
166 kJobStatusUnlocked = 0x2000000,
167 kJobStatusUnarchived = 0x4000000,
168 kJobStatusUnpaused = 0x8000000
187 kJobDependUncompleted = -1,
199 kJobDependLinkOnJob = 0,
234 kFramesCheckFileBoundaries
246 kMissingFrameStatusDimensionsError
262 kJobCompletionStatusPostChunkActionError
274 kNotificationsOnError
297 kJobsBackupStatesNone = 0x00,
298 kJobsBackupStatesObjectExist = 0x01
307 kJobsBackupActionNone = 0x00,
308 kJobsBackupActionOverwriteExistings = 0x01,
309 kJobsBackupActionDuplicateEntry = 0x02
319 kJobsBackupRestoreObjectsExist = 0x01,
320 kJobsBackupRestoreMissingParents = 0x02
329 kJobsBackupRestoreActionNone = 0x00,
330 kJobsBackupRestoreActionOverwriteExistings = 0x01 ,
331 kJobsBackupRestoreActionDuplicateEntry = 0x02,
332 kJobsBackupRestoreActionRestoreParents = 0x04,
333 kJobsBackupRestoreActionReparent = 0x08,
352 int chunksInterleave;
354 std::string templateVersion;
358 int exitcodesErrorCheckType;
359 int logsErrorCheckType;
360 std::vector<MClientLib::MTextFileRule> logsParsingRules;
366 std::string includedPools;
367 std::string excludedPools;
370 std::string department;
371 std::string totalTime;
374 std::string sequence;
375 long long int submissionTime;
376 long long int startTime;
377 long long int endTime;
378 long long int startsOn;
379 long long int pauseOn;
380 long long int resumesOn;
381 long long int processingTime;
382 bool overrideChunksTimeout;
383 int overrideChunksTimeoutValue;
384 bool overrideValidExitCodes;
385 bool overrideWarningExitCodes;
386 bool overrideErrorExitCodes;
387 bool overrideMinimumThreads;
388 bool overrideMinimumCores;
389 bool overrideMinimumPhysical;
390 bool overrideMinimumPhysicalGPUs;
391 bool overrideMinimumSpeed;
392 bool overrideMinimumRam;
393 bool overrideMinimumDiskSpace;
394 bool overrideMaximumChunksRequeue;
395 bool borrowInstances;
397 bool overrideMailNotificationsAtChunkLevel,overrideMailNotificationsAtJobLevel;
398 int mailNotificationsAtChunkLevelType,mailNotificationsAtJobLevelType;
399 bool overrideMobileNotificationsAtChunkLevel,overrideMobileNotificationsAtJobLevel;
400 int mobileNotificationsAtChunkLevelType,mobileNotificationsAtJobLevelType;
401 bool overrideNotificatorNotificationsAtChunkLevel,overrideNotificatorNotificationsAtJobLevel;
402 int notificatorNotificationsAtChunkLevelType,notificatorNotificationsAtJobLevelType;
404 bool overrideStartMailNotificationsAtChunkLevel, overrideStartMailNotificationsAtJobLevel;
405 int startMailNotificationsAtChunkLevelType, startMailNotificationsAtJobLevelType;
406 bool overrideStartMobileNotificationsAtChunkLevel, overrideStartMobileNotificationsAtJobLevel;
407 int startMobileNotificationsAtChunkLevelType, startMobileNotificationsAtJobLevelType;
408 bool overrideStartNotificatorNotificationsAtChunkLevel, overrideStartNotificatorNotificationsAtJobLevel;
409 int startNotificatorNotificationsAtChunkLevelType, startNotificatorNotificationsAtJobLevelType;
411 int maximumChunksRequeue;
412 int borrowInstancesValue;
413 std::string overrideValidExitCodesValue;
414 std::string overrideWarningExitCodesValue;
415 std::string overrideErrorExitCodesValue;
416 int overrideMinimumThreadsValue;
417 int overrideMinimumCoresValue;
418 int overrideMinimumPhysicalValue;
419 int overrideMinimumPhysicalGPUsValue;
420 double overrideMinimumSpeedValue;
421 double overrideMinimumRamValue;
422 double overrideMinimumDiskSpaceValue;
424 long long int updateTime;
434 virtual void copyFromJob(
MJob& job,
bool copyAttributes,
bool copyIdentities);
435 virtual long getParentId();
436 virtual long getJobId();
437 virtual std::string getDepends();
438 virtual int getDependLinkMode();
439 virtual int getDependMode();
440 virtual int getJobType();
441 virtual int getPriority();
442 virtual int getIndent();
443 virtual int getStatus();
444 virtual double getProgress();
445 virtual int getPacketType();
446 virtual int getTasksMask();
447 virtual int getPacketSize();
448 virtual int getChunksPriority();
449 virtual int getChunksInterleave();
450 virtual int getTemplateID();
451 virtual std::string getTemplateVersion();
452 virtual int getMaximumNodes();
453 virtual int getWorkingNodes();
454 virtual int getRequeued();
455 virtual int getExitCodesErrorCheckType();
456 virtual int getLogsErrorCheckType();
457 virtual int getChunksCount();
458 virtual std::vector<MClientLib::MTextFileRule> getLogsParsingRules();
459 virtual bool getPaused();
460 virtual bool getLocked();
461 virtual bool getArchivied();
462 virtual bool getEmergencyQueue();
463 virtual std::string getName();
464 virtual std::string getIncludedPools();
465 virtual std::string getExcludedPools();
466 virtual std::string getOwner();
467 virtual std::string getProject();
468 virtual std::string getDepartment();
469 virtual std::string getTotalTime();
470 virtual std::string getCamera();
471 virtual std::string getShot();
472 virtual std::string getSequence();
473 virtual long long int getSubmissionTime();
474 virtual long long int getStartTime();
475 virtual long long int getEndTime();
476 virtual long long int getStartsOn();
477 virtual long long int getPauseOn();
478 virtual long long int getResumesOn();
479 virtual long long int getProcessingTime();
480 virtual bool getOverrideChunksTimeout();
481 virtual int getOverrideChunksTimeoutValue();
482 virtual bool getOverrideValidExitCodes();
483 virtual bool getOverrideWarningExitCodes();
484 virtual bool getOverrideErrorExitCodes();
485 virtual bool getOverrideMinimumThreads();
486 virtual bool getOverrideMinimumCores();
487 virtual bool getOverrideMinimumPhysical();
488 virtual bool getOverrideMinimumPhysicalGPUs();
489 virtual bool getOverrideMinimumSpeed();
490 virtual bool getOverrideMinimumRam();
491 virtual bool getOverrideMinimumDiskSpace();
492 virtual bool getOverrideMaximumChunksRequeue();
493 virtual int getOverrideMaximumChunksRequeueValue();
494 virtual std::string getOverrideValidExitCodesValue();
495 virtual std::string getOverrideWarningExitCodesValue();
496 virtual std::string getOverrideErrorExitCodesValue();
497 virtual int getOverrideMinimumThreadsValue();
498 virtual int getOverrideMinimumCoresValue();
499 virtual int getOverrideMinimumPhysicalValue();
500 virtual int getOverrideMinimumPhysicalGPUsValue();
501 virtual double getOverrideMinimumSpeedValue();
502 virtual double getOverrideMinimumRamValue();
503 virtual double getOverrideMinimumDiskSpaceValue();
504 virtual int getBorrowInstancesValue();
505 virtual bool getBorrowInstances();
507 virtual bool getOverrideMailNotificationsAtChunkLevel();
508 virtual bool getOverrideMailNotificationsAtJobLevel();
509 virtual int getMailNotificationsAtChunkLevelType();
510 virtual int getMailNotificationsAtJobLevelType();
511 virtual bool getOverrideMobileNotificationsAtChunkLevel();
512 virtual bool getOverrideMobileNotificationsAtJobLevel();
513 virtual int getMobileNotificationsAtChunkLevelType();
514 virtual int getMobileNotificationsAtJobLevelType();
515 virtual bool getOverrideNotificatorNotificationsAtChunkLevel();
516 virtual bool getOverrideNotificatorNotificationsAtJobLevel();
517 virtual int getNotificatorNotificationsAtChunkLevelType();
518 virtual int getNotificatorNotificationsAtJobLevelType();
520 virtual bool getOverrideStartMailNotificationsAtChunkLevel();
521 virtual bool getOverrideStartMailNotificationsAtJobLevel();
522 virtual int getStartMailNotificationsAtChunkLevelType();
523 virtual int getStartMailNotificationsAtJobLevelType();
524 virtual bool getOverrideStartMobileNotificationsAtChunkLevel();
525 virtual bool getOverrideStartMobileNotificationsAtJobLevel();
526 virtual int getStartMobileNotificationsAtChunkLevelType();
527 virtual int getStartMobileNotificationsAtJobLevelType();
528 virtual bool getOverrideStartNotificatorNotificationsAtChunkLevel();
529 virtual bool getOverrideStartNotificatorNotificationsAtJobLevel();
530 virtual int getStartNotificatorNotificationsAtChunkLevelType();
531 virtual int getStartNotificatorNotificationsAtJobLevelType();
533 virtual long long int getUpdateTime();
535 virtual void setParentId(
long _parentId);
536 virtual void setJobId(
long _jobId);
537 virtual void setDepends(
const std::string& _depends);
538 virtual void setDependMode(
int _dependMode);
539 virtual void setDependLinkMode(
int _dependLinkMode);
540 virtual void setJobType(
int _jobType);
541 virtual void setPriority(
int _priority);
542 virtual void setIndent(
int _indent);
543 virtual void setStatus(
int _status);
544 virtual void setProgress(
double _progress);
545 virtual void setPacketType(
int _packetType);
546 virtual void setTasksMask(
int _tasksMask);
547 virtual void setPacketSize(
int _packetSize);
548 virtual void setChunksPriority(
int _chunksPriority);
549 virtual void setChunksInterleave(
int _chunksInterleave);
550 virtual void setTemplateID(
int _templateID);
551 virtual void setTemplateVersion(
const std::string& _templateVersion);
552 virtual void setMaximumNodes(
int _maximumNodes);
553 virtual void setWorkingNodes(
int _workingNodes);
554 virtual void setRequeued(
int _requeued);
555 virtual void setExitCodesErrorCheckType(
int _exitcodesErrorCheckType);
556 virtual void setLogsErrorCheckType(
int _logsErrorCheckType);
557 virtual void setChunksCount(
int _chunksCount);
558 virtual void setLogsParsingRules(
const std::vector<MClientLib::MTextFileRule>& _rules);
559 virtual void setPaused(
bool _paused);
560 virtual void setLocked(
bool _locked);
561 virtual void setArchivied(
bool _archivied);
562 virtual void setEmergencyQueue(
bool _emergencyQueue);
563 virtual void setName(
const std::string& _name);
564 virtual void setIncludedPools(
const std::string& _includedPools);
565 virtual void setExcludedPools(
const std::string& _excludedPools);
566 virtual void setOwner(
const std::string& _owner);
567 virtual void setProject(
const std::string& _project);
568 virtual void setDepartment(
const std::string& _department);
569 virtual void setCamera(
const std::string& _camera);
570 virtual void setShot(
const std::string& _shot);
571 virtual void setSequence(
const std::string& _sequence);
572 virtual void setSubmissionTime(
long long int _submissionTime);
573 virtual void setStartTime(
long long int _startTime);
574 virtual void setEndTime(
long long int _endTime);
575 virtual void setProcessingTime(
long long int _endTime);
576 virtual void setStartsOn(
long long int _startsOn);
577 virtual void setPauseOn(
long long int _pauseOn);
578 virtual void setResumesOn(
long long int _resumesOn);
579 virtual void setOverrideChunksTimeout(
bool _overrideChunksTimeout);
580 virtual void setOverrideChunksTimeoutValue(
int _overrideChunksTimeoutValue);
581 virtual void setOverrideValidExitCodes(
bool _overrideValidExitCodes);
582 virtual void setOverrideWarningExitCodes(
bool _overrideWarningExitCodes);
583 virtual void setOverrideErrorExitCodes(
bool _overrideErrorExitCodes);
584 virtual void setOverrideMinimumThreads(
bool _overrideMinimumThreads);
585 virtual void setOverrideMinimumCores(
bool _overrideMinimumCores);
586 virtual void setOverrideMinimumPhysical(
bool _overrideMinimumPhysical);
587 virtual void setOverrideMinimumPhysicalGPUs(
bool _overrideMinimumPhysicalGPUs);
588 virtual void setBorrowInstances(
bool _borrowInstances);
589 virtual void setOverrideMinimumSpeed(
bool _overrideMinimumSpeed);
590 virtual void setOverrideMinimumRam(
bool _overrideMinimumRam);
591 virtual void setOverrideMinimumDiskSpace(
bool _overrideMinimumDiskSpace);
592 virtual void setOverrideMaximumChunksRequeue(
bool _overrideMaximumChunksRequeue);
593 virtual void setOverrideMaximumChunksRequeueValue(
int _maximumChunksRequeue);
594 virtual void setOverrideValidExitCodesValue(
const std::string& _overrideValidExitCodesValue);
595 virtual void setOverrideWarningExitCodesValue(
const std::string& _overrideWarningExitCodesValue);
596 virtual void setOverrideErrorExitCodesValue(
const std::string& _overrideErrorExitCodesValue);
597 virtual void setOverrideMinimumThreadsValue(
int _overrideMinimumThreadsValue);
598 virtual void setOverrideMinimumCoresValue(
int _overrideMinimumCoresValue);
599 virtual void setOverrideMinimumPhysicalValue(
int _overrideMinimumPhysicalValue);
600 virtual void setOverrideMinimumPhysicalGPUsValue(
int _overrideMinimumPhysicalGPUsValue);
601 virtual void setOverrideMinimumSpeedValue(
double _overrideMinimumSpeedValue);
602 virtual void setOverrideMinimumRamValue(
double _overrideMinimumRamValue);
603 virtual void setOverrideMinimumDiskSpaceValue(
double _overrideMinimumDiskSpaceValue);
604 virtual void setBorrowInstancesValue(
int _borrowInstances);
606 virtual void setOverrideMailNotificationsAtChunkLevel(
bool _overrideMailNotificationsAtChunkLevel);
607 virtual void setOverrideMailNotificationsAtJobLevel(
bool _overrideMailNotificationsAtJobLevel);
608 virtual void setMailNotificationsAtChunkLevelType(
int _mailNotificationsAtChunkLevelType);
609 virtual void setMailNotificationsAtJobLevelType(
int _mailNotificationsAtJobLevelType);
610 virtual void setOverrideMobileNotificationsAtChunkLevel(
bool _overrideMobileNotificationsAtChunkLevel);
611 virtual void setOverrideMobileNotificationsAtJobLevel(
bool _overrideMobileNotificationsAtJobLevel);
612 virtual void setMobileNotificationsAtChunkLevelType(
int _mobileNotificationsAtChunkLevelType);
613 virtual void setMobileNotificationsAtJobLevelType(
int _mobileNotificationsAtJobLevelType);
614 virtual void setOverrideNotificatorNotificationsAtChunkLevel(
bool _overrideNotificatorNotificationsAtChunkLevel);
615 virtual void setOverrideNotificatorNotificationsAtJobLevel(
bool _overrideNotificatorNotificationsAtJobLevel);
616 virtual void setNotificatorNotificationsAtChunkLevelType(
int _notificatorNotificationsAtChunkLevelType);
617 virtual void setNotificatorNotificationsAtJobLevelType(
int _notificatorNotificationsAtJobLevelType);
619 virtual void setOverrideStartMailNotificationsAtChunkLevel(
bool _overrideMailNotificationsAtChunkLevel);
620 virtual void setOverrideStartMailNotificationsAtJobLevel(
bool _overrideMailNotificationsAtJobLevel);
621 virtual void setStartMailNotificationsAtChunkLevelType(
int _mailNotificationsAtChunkLevelType);
622 virtual void setStartMailNotificationsAtJobLevelType(
int _mailNotificationsAtJobLevelType);
623 virtual void setOverrideStartMobileNotificationsAtChunkLevel(
bool _overrideMobileNotificationsAtChunkLevel);
624 virtual void setOverrideStartMobileNotificationsAtJobLevel(
bool _overrideMobileNotificationsAtJobLevel);
625 virtual void setStartMobileNotificationsAtChunkLevelType(
int _mobileNotificationsAtChunkLevelType);
626 virtual void setStartMobileNotificationsAtJobLevelType(
int _mobileNotificationsAtJobLevelType);
627 virtual void setOverrideStartNotificatorNotificationsAtChunkLevel(
bool _overrideNotificatorNotificationsAtChunkLevel);
628 virtual void setOverrideStartNotificatorNotificationsAtJobLevel(
bool _overrideNotificatorNotificationsAtJobLevel);
629 virtual void setStartNotificatorNotificationsAtChunkLevelType(
int _notificatorNotificationsAtChunkLevelType);
630 virtual void setStartNotificatorNotificationsAtJobLevelType(
int _notificatorNotificationsAtJobLevelType);
632 virtual void setUpdateTime(
long long int updateTime);
634 virtual void clearJob();
636 virtual bool attributeGetFloat(
const char* key,
float& dest,
bool* state = 0);
637 virtual bool attributeGetInt(
const char* key,
int& dest,
bool* state= 0);
638 virtual bool attributeGetBool(
const char* key,
bool& dest,
bool* state= 0);
639 virtual bool attributeGetString(
const char* key, std::string& dest,
bool* state= 0,
bool* subst = 0);
640 virtual bool attributeGetTimet(
const char* key, time_t& dest,
bool* state= 0);
641 virtual bool attributeGetLong(
const char* key,
long& dest,
bool* state= 0);
642 virtual bool attributeGetInt64(
const char* key,
long long int& dest,
bool* state= 0);
643 virtual std::string attributeGetString(
const char* key);
644 virtual bool attributeGetBool(
const char* key);
645 virtual float attributeGetFloat(
const char* key);
646 virtual int attributeGetInt(
const char* key);
647 virtual long long int attributeGetInt64(
const char* key);
648 virtual bool attributeIsEnabled(
const char* key);
649 virtual bool attributeExists(
const char* key);
650 virtual bool attributeHasSubstitutionEnabled(
const char* key);
651 virtual void attributeSetFloat(
const char* key,
float value,
bool state =
true);
652 virtual void attributeSetInt(
const char* key,
int value,
bool state =
true);
653 virtual void attributeSetBool(
const char* key,
bool value,
bool state =
true);
654 virtual void attributeSetString(
const char* key, std::string value,
bool state =
true,
bool subst =
false);
655 virtual void attributeSetTimet(
const char* key, time_t* value,
bool state =
true);
656 virtual void attributeSetLong(
const char* key,
long value,
bool state =
true);
657 virtual void attributeSetInt64(
const char* key,
long long int value,
bool state =
true);
659 virtual void attributeRemove(
const char* key);
660 virtual void attributesClear();
664 std::list<MClientLib::MFramesRange> GetFrameRanges();
665 std::list<MClientLib::MFramesRange> GetRangedChunks(std::list<MClientLib::MFramesRange>& ranges,
int& framesCount);
666 std::list<MClientLib::MChunk> BuildChunks( std::list<MClientLib::MFramesRange>& ranges, std::set<float>& totalFrames,
long chunksStartingID);
667 void NormalizeFramesAttributes(
const std::set<float>& totalFrames,
const std::list<MClientLib::MChunk>& chunks,
bool editingJob);
668 void NormalizeFramesMasks();
669 std::vector<MClientLib::MMFGroup*> CheckForMissingFrames(job_framecheck_progress_callback callback, job_framecheck_abort_callback abortCallback,
void* context,
const std::map<std::string, std::string>& framesMask,
int fileCheckType,
long long int fileMin,
long long int fileMax,
670 bool openImage,
bool checkImageDimensions,
int imageWidth,
int imageHeight,
long chunkId=-1);
671 std::vector<MClientLib::MMFGroup*> CheckForMissingFrames(
const std::map<std::string, std::string>& framesMask,
int fileCheckType,
long long int fileMin,
long long int fileMax,
672 bool openImage,
bool checkImageDimensions,
int imageWidth,
int imageHeight,
long chunkId = -1);
675 virtual std::string Marshall(MJobPathTranslator* translator=0,
bool forceParent=
false,
long forcedParentId=-1);
676 virtual bool Unmarshall(
const std::vector<std::string>& items,MJobPathTranslator* translator=0);
677 void castedRelease();
kJobsChunksPrioritiesType
Job chunks priority mode enumeration.
kJobsBackupAction
Job backup restore operation action modes enumeration.
kMissingFramesStatus
Job frmae check result enumeration.
Class holding a set of properties of a MJob.
kJobsDependMode
Job dependancies type enumeration.
kJobsDependLinkMode
Job dependancies link mode enumeration.
kJobsStatus
Job status enumeration.
kErrorChecksType
Job error check type enumeration.
Class holding a job frames check behaviours.
kJobsCompletationStatus
Job completion status enumeration.
kJobsNotificationsType
Job notifications type enumeration.
kJobsBackupRestoreState
Job backup restore operation conflicts enumeration.
kFramesCheckFileMode
Job frames check file check enumeration.
kJobsBackupStates
Job backup conflic state enumeration.
kJobsType
Job types enumeration.
Class holding a job data structure.
kFramesCheckMode
Job frames check mode enumeration.
kJobsBackupRestoreAction
Job backup restore action enumeration.
std::map< std::string, itemAttribute > itemAttributesMap