23 #ifdef MTEMPLATE_EXPORTS
24 #define MTEMPLATE_API __declspec(dllexport)
26 #define MTEMPLATE_API __declspec(dllimport)
30 #ifndef MTEMPLATE_EXPORTS
43 #pragma warning(disable: 4251)
53 namespace MTemplateEngine {
71 kTemplateErrorDefault = 0x01,
72 kTemplateErrorPauseJob = 0x02,
73 kTemplateErrorPauseClient = 0x04,
74 kTemplateErrorAddTemplateToExclusion = 0x08,
75 kTemplateErrorAddJobToExclusion = 0x10,
76 kTemplateErrorRequeueChunk = 0x20,
77 kTemplateErrorAbortRender = 0x40
86 kTemplateErrorTypeWarning
90 MTemplateError(
int errorCode, std::string errorString,
int _errorType);
94 void setErrorCode(
int _errorCode);
95 std::string getErrorString();
96 void setErrorString(
const std::string& _errorString);
97 void addErrorAction(
int _errorAction);
98 void setErrorActionToDefault();
100 void setErrorType(
int _errorType);
104 std::string errorString;
119 kTemplateItemFieldsActivationDisable
123 MTemplateItemEvent(
const std::string& field,
const std::string& value,
int activationEvent);
125 void setActivationEvent(
int _activationEvent);
126 void setValue(
const std::string& _value);
127 void setField(
const std::string& _field);
128 int getActivationEvent();
129 std::string getValue();
130 std::string getField();
131 void encodeTree(
void* pt, std::string (*encodeFunc)(
const std::string &),
int encoding,
void* fields,std::vector<std::string>* filters);
148 void addEvent(
const std::string& _field,
const std::string& _value,
int _activationEvent);
149 std::map<std::string,MTemplateItemEvent>* getEvents();
152 std::map<std::string,MTemplateItemEvent> map;
181 MTemplateItem(
const std::string& _name,
const std::string& _description,
const std::string& _extendedDescription,
182 const std::string& defaultValue,
bool _isActivable,
bool _applySubstitution,
bool _isMandatory);
185 std::string getName();
186 std::string getDescription();
187 std::string getExtendedDescription();
188 std::string getDefaultValue();
189 bool getDefaultActivatorValue();
190 bool getIsActivable();
191 bool getApplySubstitution();
192 bool getIsMandatory();
195 void setName(
const std::string& _name);
196 void setDescription(
const std::string& _description);
197 void setExtendedDescription(
const std::string& _extendedDescription);
198 void setIsActivable(
bool _isActivable);
199 void setApplySubstitution(
bool _applySubstitution);
200 void setIsMandatory(
bool _isMandatory);
201 void setType(
int _type);
202 void setDefaultValue(
const std::string& _defaultValue);
203 void setDefaultActivatorValue(
bool _defaultValue);
206 static void deallocateItemList(std::vector<MTemplateItem*>* list);
210 std::string defaultValue;
212 std::string description;
213 std::string extendedDescription;
215 bool applySubstitution;
217 bool defaultActivatorValue;
219 virtual void encodeTree(
void* pt,std::string (*encodeFunc)(
const std::string &),
int encoding,
void* fields,std::vector<std::string>* filters);
227 MTemplateItemFile(
const std::string& _name,
const std::string& _description,
const std::string& _extendedDescription,
228 const std::string& _defaultValue,
bool _isActivable,
bool _applySubstitution,
bool _isMandatory,
const std::string& fileFilters);
231 void setFileFilters(
const std::string& filters);
232 std::string getFileFilters();
234 void setIsFileSaveDialog(
bool _isFileDialog);
235 bool getIsFileSaveDialog();
238 void encodeTree(
void* pt,std::string (*encodeFunc)(
const std::string &),
int encoding,
void* fields,std::vector<std::string>* filters);
240 std::string fileFilters;
248 MTemplateItemFolder(
const std::string& _name,
const std::string& _description,
const std::string& _extendedDescription,
249 const std::string& _defaultValue,
bool _isActivable,
bool _applySubstitution,
bool _isMandatory);
257 MTemplateItemString(
const std::string& _name,
const std::string& _description,
const std::string& _extendedDescription,
258 const std::string& _defaultValue,
bool _isActivable,
bool _applySubstitution,
bool _isMandatory);
266 MTemplateItemDouble(
const std::string& _name,
const std::string& _description,
const std::string& _extendedDescription,
267 double _defaultValue,
bool _isActivable,
bool _applySubstitution,
bool _isMandatory);
275 MTemplateItemInteger(
const std::string& _name,
const std::string& _description,
const std::string& _extendedDescription,
276 int _defaultValue,
bool _isActivable,
bool _applySubstitution,
bool _isMandatory);
284 MTemplateItemCheck(
const std::string& _name,
const std::string& _description,
const std::string& _extendedDescription,
285 bool _defaultValue,
bool _isActivable,
bool _applySubstitution,
bool _isMandatory);
293 MTemplateItemYesNo(
const std::string& _name,
const std::string& _description,
const std::string& _extendedDescription,
294 bool _defaultValue,
bool _isActivable,
bool _applySubstitution,
bool _isMandatory);
304 void setKey(
const std::string& _key) { key = _key; }
305 void setValue(
const std::string& _value) { value = _value; }
317 MTemplateItemCombo(
const std::string& _name,
const std::string& _description,
const std::string& _extendedDescription,
318 const std::string& _defaultValue,
bool _isActivable,
bool _applySubstitution,
bool _isMandatory);
320 void addItem(
const std::string& key,
const std::string& value);
322 std::vector<MTemplateItemComboItem>* getItems();
324 void encodeTree(
void* pt,std::string (*encodeFunc)(
const std::string &),
int encoding,
void* fields,std::vector<std::string>* filters);
326 std::vector<MTemplateItemComboItem> items;
333 MTemplateItemMultichoice(
const std::string& _name,
const std::string& _description,
const std::string& _extendedDescription,
334 const std::string& _defaultValue,
bool _isActivable,
bool _applySubstitution,
bool _isMandatory);
348 bool getPlatformEnabled();
349 bool getEnableErrorCheck();
350 bool getEnabledByDefault();
351 int getFramesFloating();
352 int getDetectionLogic();
353 std::string getDetectionLogicProcessName();
354 std::string getDetectionLogicChildProcessName();
355 bool getHideProcessWindow();
356 bool getSampleEnvironmentFromBat();
358 void setPlatformEnabled(
bool _platformEnabled);
359 void setEnableErrorCheck(
bool _enableErrorCheck);
360 void setEnabledByDefault(
bool _enabledByDefault);
361 void setFramesFloating(
int _framesFloating);
362 void setDetectionLogic(
int _detectionLogic);
363 void setDetectionLogicProcessName(
const std::string& _detectionLogicProcessName);
364 void setDetectionLogicChildProcessName(
const std::string& _detectionLogicChildProcessName);
365 void setHideProcessWindow(
bool _hideProcessWindow);
366 void setSampleEnvironmentFromBat(
bool _sampleEnvironmentFromBat);
368 void clearClientConfigurationItems();
370 std::vector<MTemplateItem*>* getClientConfigurationItems();
373 bool platformEnabled;
374 bool enableErrorCheck;
375 bool enabledByDefault;
376 bool hideProcessWindow;
377 bool sampleEnvironmentFromBat;
380 std::string detectionLogicProcessName;
381 std::string detectionLogicChildProcessName;
382 std::vector<MTemplateItem*> clientAttributes;
383 void encodeTree(
void* pt,std::string (*encodeFunc)(
const std::string &),
int encoding,
void* fields,std::vector<std::string>* filters);
398 void setGroupName(
const std::string& _groupName);
399 std::string getGroupName();
400 std::vector<MTemplateItem*>* getVector();
405 std::string groupName;
406 std::vector<MTemplateItem*> vec;
407 void encodeTree(
void* pt, std::string (*encodeFunc)(
const std::string &),
int encoding,
void* fields,std::vector<std::string>* filters);
423 bool getAddTemplateToExclusion();
424 bool getAddJobToExclusion();
425 bool getRequeueChunk();
427 void setEnable(
bool _enable);
428 void setPauseJob(
bool _pauseJob);
429 void setPauseNode(
bool _pauseNode);
430 void setAddTemplateToExclusion(
bool _addTemplateToExclusion);
431 void setAddJobToExclusion(
bool _addJobToExclusion);
432 void setRequeueChunk(
bool _requeueChunk);
437 bool addTemplateToExclusion;
438 bool addJobToExclusion;
440 void encodeTree(
void* pt,std::string (*encodeFunc)(
const std::string &),
int encoding,
void* fields,std::vector<std::string>* filters);
453 std::string getAction();
454 bool getCheckReturnCode();
458 void setAction(
const std::string& _action);
459 void setCheckReturnCode(
bool _checkReturnCode);
460 void setReturnCode(
int _returnCode);
461 void setTimeout(
int _timeout);
465 bool checkReturnCode;
468 void encodeTree(
void* pt,std::string (*encodeFunc)(
const std::string &),
int encoding,
void* fields,std::vector<std::string>* filters);
480 bool getEnableFrameCheck();
481 void setEnableFrameCheck(
bool _enableFrameCheck);
482 bool getEnableMovieAssembler();
483 void setEnableMovieAssembler(
bool _enableMovieAssembler);
484 bool getCanProvideFramesMask();
485 void setCanProvideFramesMask(
bool _canProvideFramesMask);
488 bool enableFrameCheck;
489 bool canProvideFramesMask;
490 bool enableMovieAssembler;
491 void encodeTree(
void* pt,std::string (*encodeFunc)(
const std::string &),
int encoding,
void* fields,std::vector<std::string>* filters);
501 void setDescription(
const std::string& _description);
502 void setValue(
const std::string& _value);
503 std::string getDescription();
504 std::string getValue();
506 std::string fileFormatDescription;
507 std::string fileFormatValue;
513 int getSliceFrameResolutionX();
514 int getSliceFrameResolutionY();
515 int getSliceSamplesOriginX();
516 int getSliceSamplesOriginY();
518 int getSliceHeight();
519 int getFinalPositionX();
520 int getFinalPositionY();
522 void setSliceFrameResolutionX(
int _sliceFrameResolutionX);
523 void setSliceFrameResolutionY(
int _sliceFrameResolutionY);
524 void setSliceSamplesOriginX(
int _sliceOriginX);
525 void setSliceSamplesOriginY(
int _sliceOriginY);
526 void setSliceWidth(
int _sliceWidth);
527 void setSliceHeight(
int _sliceHeight);
528 void setFinalPositionX(
int _finalPositionX);
529 void setFinalPositionY(
int _finalPositionY);
532 int sliceFrameResolutionX;
533 int sliceFrameResolutionY;
552 bool getSkipAssembler();
553 void setSkipAssembler(
bool _skipAssembler);
554 void addInputFileFormat(
const std::string& _fileFormatDescription,
const std::string& _fileFormatValue);
555 void clearInputFileFormats();
556 void addOutputFileFormat(
const std::string& _fileFormatDescription,
const std::string& _fileFormatValue);
557 void clearOutputFileFormats();
558 std::vector<MTemplateImageSlicingFileFormats>* getInputFileFormats();
559 std::vector<MTemplateImageSlicingFileFormats>* getOutputFileFormats();
564 std::vector<MTemplateImageSlicingFileFormats> inputFileFormats;
565 std::vector<MTemplateImageSlicingFileFormats> outputFileFormats;
567 void encodeTree(
void* pt,std::string (*encodeFunc)(
const std::string &),
int encoding,
void* fields,std::vector<std::string>* filters);
583 bool isPythonTemplate();
597 bool getEnableLogWarningsOverrides();
598 bool getEnableLogErrorsOverrides();
599 bool getEnableExitCodeWarningsOverrides();
600 bool getEnableExitCodeErrorsOverrides();
601 bool getEnableProcessFailureErrorsOverrides();
603 void setEnableLogWarningsOverrides(
bool _enableLogWarningsOverrides);
604 void setEnableLogErrorsOverrides(
bool _enableLogErrorsOverrides);
605 void setEnableExitCodeWarningsOverrides(
bool _enableExitCodeWarningsOverrides);
606 void setEnableExitCodeErrorsOverrides(
bool _enableExitCodeErrorsOverrides);
607 void setEnableProcessFailureErrorsOverrides(
bool _enableProcessFailureErrorsOverrides);
614 bool getEnablePreChunkActionsOverrides();
615 bool getEnablePostChunkActionsOverrides();
616 bool getEnablePreJobActionsOverrides();
617 bool getEnablePostJobActionsOverrides();
618 void setEnablePreChunkActionsOverrides(
bool _enablePreChunkActionsOverrides);
619 void setEnablePostChunkActionsOverrides(
bool _enablePostChunkActionsOverrides);
620 void setEnablePreJobActionsOverrides(
bool _enablePreJobActionsOverrides);
621 void setEnablePostJobActionsOverrides(
bool _enablePostJobActionsOverrides);
623 std::string getContent();
624 std::string getName();
625 std::string getDescription();
627 std::string getFileName();
628 std::string getMd5Hash();
629 int getTemplateLogic();
630 int getDefaultPriority();
631 std::string getDefaultPools();
632 std::string getDefaultExcludedPools();
633 int getMaximumLicenses();
634 std::string getLicensesGroup();
636 std::string getDelayGroup();
637 bool getEnableAdditionalFlagsField();
638 bool getEnableChunksTimeoutOverride();
639 bool getOverrideMaximumChunksRequeue();
640 int getOverrideMaximumChunksRequeueValue();
641 int getChunksTimeout();
643 void setName(
const std::string& _name);
644 void setDescription(
const std::string& _description);
646 void setFilename(
const std::string& _filename);
647 void setMd5Hash(
const std::string& _md5Hash);
648 void setTemplateLogic(
int _templateLogic);
649 void setDefaultPriority(
int _defaultPriority);
650 void setDefaultPools(
const std::string& _defaultPools);
651 void setDefaultExcludedPools(
const std::string& _defaultExcludedPools);
652 void setMaximumLicenses(
int _maximumLicenses);
653 void setLicensesGroup(
const std::string& _licensesGroup);
654 void setDelay(
int _delay);
655 void setDelayGroup(
const std::string& _delayGroup);
656 void setEnableAdditionalFlagsField(
bool _enableAdditionalFlagsField);
658 void setEnableChunksTimeoutOverride(
bool _enableChunksTimeoutOverride);
659 void setChunksTimeout(
int _chunksTimeout);
660 void setOverrideMaximumChunksRequeue(
bool _overrideMaximumChunksRequeue);
661 void setOverrideMaximumChunksRequeueValue(
int _overrideMaximumChunksRequeueValue);
665 void clearSubmissionItems();
667 std::vector<MTemplateItem*>* getSubmissionItems();
669 void clearSubmissionAdditionalItems();
670 void addSubmissionAdditionalItem(
const char* groupName,
MTemplateItem* item);
671 std::vector<MTemplateItemHolder*>* getSubmissionAdditionalItems();
673 void clearMappings();
674 void addMapping(
const std::string& templateValue,
const std::string& builtinValue);
675 std::map<std::string,std::string>* getMappings();
677 virtual void onFieldChanged(
const std::string& fieldName,
const std::string& fieldValue,
MTemplateItemsFields& fieldsToChange);
678 virtual std::string onBuildCommandLine(
int platform,
MClientLib::MJob* job,
MClientLib::MChunk* chunk,std::map<std::string,std::string>& clientTemplatePreferences,
int instanceNum);
684 virtual bool onCheckForSubframeAdvancingString(
const char* line);
692 virtual bool onFindApplication(
MClientLib::MStringRef& basePath,std::map<std::string,std::string>& clientTemplatePreferences);
694 virtual kTemplateFunctionBehaviour onDetectRunningProcess(
MPid mainProcess, std::vector <MClientLib::MProcessSnapshot*> hostProcesses, std::map<std::string,std::string>& clientTemplatePreferences,
MPid& runningProcessPid);
719 virtual void onDispatcherIdling();
722 virtual void onClientIdling();
733 void encodeTree(
void* pt,std::string (*encodeFunc)(
const std::string &),
int encoding,
void* fields,std::vector<std::string>* filters);
734 bool compareWebFilters(std::vector<std::string>* filters);
735 bool checkWebFilter(
const std::string& field,
const std::string& value) ;
744 std::string filename;
747 std::string description;
751 std::string defaultPools;
752 std::string defaultExcludedPools;
754 std::string licensesGroup;
756 std::string delayGroup;
757 bool enableAdditionalFlagsField;
758 bool _canProvideFramesMask;
759 bool enableChunksTimeoutOverride;
760 bool overrideMaximumChunksRequeue;
761 int overrideMaximumChunksRequeueValue;
764 bool enableLogWarningsOverrides;
765 bool enableLogErrorsOverrides;
766 bool enableExitCodeWarningsOverrides;
767 bool enableExitCodeErrorsOverrides;
768 bool enableProcessFailureErrorsOverrides;
770 bool enablePreChunkActionsOverrides;
771 bool enablePostChunkActionsOverrides;
772 bool enablePreJobActionsOverrides;
773 bool enablePostJobActionsOverrides;
775 std::map<std::string,std::string> mappings;
776 std::map<std::string,std::string> reverseMappings;
778 std::vector<MTemplateItem*> submissionItems;
779 std::vector<MTemplateItemHolder*> submissionAdditionalItems;