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);
228 MTemplateItemFile(
const std::string& _name,
const std::string& _description,
const std::string& _extendedDescription,
229 const std::string& _defaultValue,
bool _isActivable,
bool _applySubstitution,
bool _isMandatory,
const std::string& fileFilters);
232 void setFileFilters(
const std::string& filters);
233 std::string getFileFilters();
235 void setIsFileSaveDialog(
bool _isFileDialog);
236 bool getIsFileSaveDialog();
239 void encodeTree(
void* pt,std::string (*encodeFunc)(
const std::string &),
int encoding,
void* fields,std::vector<std::string>* filters);
241 std::string fileFilters;
250 MTemplateItemFolder(
const std::string& _name,
const std::string& _description,
const std::string& _extendedDescription,
251 const std::string& _defaultValue,
bool _isActivable,
bool _applySubstitution,
bool _isMandatory);
260 MTemplateItemString(
const std::string& _name,
const std::string& _description,
const std::string& _extendedDescription,
261 const std::string& _defaultValue,
bool _isActivable,
bool _applySubstitution,
bool _isMandatory);
270 MTemplateItemDouble(
const std::string& _name,
const std::string& _description,
const std::string& _extendedDescription,
271 double _defaultValue,
bool _isActivable,
bool _applySubstitution,
bool _isMandatory);
280 MTemplateItemInteger(
const std::string& _name,
const std::string& _description,
const std::string& _extendedDescription,
281 int _defaultValue,
bool _isActivable,
bool _applySubstitution,
bool _isMandatory);
290 MTemplateItemCheck(
const std::string& _name,
const std::string& _description,
const std::string& _extendedDescription,
291 bool _defaultValue,
bool _isActivable,
bool _applySubstitution,
bool _isMandatory);
300 MTemplateItemYesNo(
const std::string& _name,
const std::string& _description,
const std::string& _extendedDescription,
301 bool _defaultValue,
bool _isActivable,
bool _applySubstitution,
bool _isMandatory);
312 void setKey(
const std::string& _key) { key = _key; }
313 void setValue(
const std::string& _value) { value = _value; }
326 MTemplateItemCombo(
const std::string& _name,
const std::string& _description,
const std::string& _extendedDescription,
327 const std::string& _defaultValue,
bool _isActivable,
bool _applySubstitution,
bool _isMandatory);
329 void addItem(
const std::string& key,
const std::string& value);
331 std::vector<MTemplateItemComboItem>* getItems();
333 void encodeTree(
void* pt,std::string (*encodeFunc)(
const std::string &),
int encoding,
void* fields,std::vector<std::string>* filters);
335 std::vector<MTemplateItemComboItem> items;
343 MTemplateItemMultichoice(
const std::string& _name,
const std::string& _description,
const std::string& _extendedDescription,
344 const std::string& _defaultValue,
bool _isActivable,
bool _applySubstitution,
bool _isMandatory);
359 bool getPlatformEnabled();
360 bool getEnableErrorCheck();
361 bool getEnabledByDefault();
362 int getFramesFloating();
363 int getDetectionLogic();
364 std::string getDetectionLogicProcessName();
365 std::string getDetectionLogicChildProcessName();
366 bool getHideProcessWindow();
368 void setPlatformEnabled(
bool _platformEnabled);
369 void setEnableErrorCheck(
bool _enableErrorCheck);
370 void setEnabledByDefault(
bool _enabledByDefault);
371 void setFramesFloating(
int _framesFloating);
372 void setDetectionLogic(
int _detectionLogic);
373 void setDetectionLogicProcessName(
const std::string& _detectionLogicProcessName);
374 void setDetectionLogicChildProcessName(
const std::string& _detectionLogicChildProcessName);
375 void setHideProcessWindow(
bool _hideProcessWindow);
377 void clearClientConfigurationItems();
379 std::vector<MTemplateItem*>* getClientConfigurationItems();
382 bool platformEnabled;
383 bool enableErrorCheck;
384 bool enabledByDefault;
385 bool hideProcessWindow;
388 std::string detectionLogicProcessName;
389 std::string detectionLogicChildProcessName;
390 std::vector<MTemplateItem*> clientAttributes;
391 void encodeTree(
void* pt,std::string (*encodeFunc)(
const std::string &),
int encoding,
void* fields,std::vector<std::string>* filters);
407 void setGroupName(
const std::string& _groupName);
408 std::string getGroupName();
409 std::vector<MTemplateItem*>* getVector();
414 std::string groupName;
415 std::vector<MTemplateItem*> vec;
416 void encodeTree(
void* pt, std::string (*encodeFunc)(
const std::string &),
int encoding,
void* fields,std::vector<std::string>* filters);
433 bool getAddTemplateToExclusion();
434 bool getAddJobToExclusion();
435 bool getRequeueChunk();
437 void setEnable(
bool _enable);
438 void setPauseJob(
bool _pauseJob);
439 void setPauseNode(
bool _pauseNode);
440 void setAddTemplateToExclusion(
bool _addTemplateToExclusion);
441 void setAddJobToExclusion(
bool _addJobToExclusion);
442 void setRequeueChunk(
bool _requeueChunk);
447 bool addTemplateToExclusion;
448 bool addJobToExclusion;
450 void encodeTree(
void* pt,std::string (*encodeFunc)(
const std::string &),
int encoding,
void* fields,std::vector<std::string>* filters);
464 std::string getAction();
465 bool getCheckReturnCode();
469 void setAction(
const std::string& _action);
470 void setCheckReturnCode(
bool _checkReturnCode);
471 void setReturnCode(
int _returnCode);
472 void setTimeout(
int _timeout);
476 bool checkReturnCode;
479 void encodeTree(
void* pt,std::string (*encodeFunc)(
const std::string &),
int encoding,
void* fields,std::vector<std::string>* filters);
492 bool getEnableFrameCheck();
493 void setEnableFrameCheck(
bool _enableFrameCheck);
494 bool getEnableMovieAssembler();
495 void setEnableMovieAssembler(
bool _enableMovieAssembler);
496 bool getCanProvideFramesMask();
497 void setCanProvideFramesMask(
bool _canProvideFramesMask);
500 bool enableFrameCheck;
501 bool canProvideFramesMask;
502 bool enableMovieAssembler;
503 void encodeTree(
void* pt,std::string (*encodeFunc)(
const std::string &),
int encoding,
void* fields,std::vector<std::string>* filters);
514 void setDescription(
const std::string& _description);
515 void setValue(
const std::string& _value);
516 std::string getDescription();
517 std::string getValue();
519 std::string fileFormatDescription;
520 std::string fileFormatValue;
527 int getSliceFrameResolutionX();
528 int getSliceFrameResolutionY();
529 int getSliceSamplesOriginX();
530 int getSliceSamplesOriginY();
532 int getSliceHeight();
533 int getFinalPositionX();
534 int getFinalPositionY();
536 void setSliceFrameResolutionX(
int _sliceFrameResolutionX);
537 void setSliceFrameResolutionY(
int _sliceFrameResolutionY);
538 void setSliceSamplesOriginX(
int _sliceOriginX);
539 void setSliceSamplesOriginY(
int _sliceOriginY);
540 void setSliceWidth(
int _sliceWidth);
541 void setSliceHeight(
int _sliceHeight);
542 void setFinalPositionX(
int _finalPositionX);
543 void setFinalPositionY(
int _finalPositionY);
546 int sliceFrameResolutionX;
547 int sliceFrameResolutionY;
567 bool getSkipAssembler();
568 void setSkipAssembler(
bool _skipAssembler);
569 void addInputFileFormat(
const std::string& _fileFormatDescription,
const std::string& _fileFormatValue);
570 void clearInputFileFormats();
571 void addOutputFileFormat(
const std::string& _fileFormatDescription,
const std::string& _fileFormatValue);
572 void clearOutputFileFormats();
573 std::vector<MTemplateImageSlicingFileFormats>* getInputFileFormats();
574 std::vector<MTemplateImageSlicingFileFormats>* getOutputFileFormats();
579 std::vector<MTemplateImageSlicingFileFormats> inputFileFormats;
580 std::vector<MTemplateImageSlicingFileFormats> outputFileFormats;
582 void encodeTree(
void* pt,std::string (*encodeFunc)(
const std::string &),
int encoding,
void* fields,std::vector<std::string>* filters);
600 bool isPythonTemplate();
614 bool getEnableLogWarningsOverrides();
615 bool getEnableLogErrorsOverrides();
616 bool getEnableExitCodeWarningsOverrides();
617 bool getEnableExitCodeErrorsOverrides();
618 bool getEnableProcessFailureErrorsOverrides();
619 void setEnableLogWarningsOverrides(
bool _enableLogWarningsOverrides);
620 void setEnableLogErrorsOverrides(
bool _enableLogErrorsOverrides);
621 void setEnableExitCodeWarningsOverrides(
bool _enableExitCodeWarningsOverrides);
622 void setEnableExitCodeErrorsOverrides(
bool _enableExitCodeErrorsOverrides);
623 void setEnableProcessFailureErrorsOverrides(
bool _enableProcessFailureErrorsOverrides);
629 bool getEnablePreChunkActionsOverrides();
630 bool getEnablePostChunkActionsOverrides();
631 bool getEnablePreJobActionsOverrides();
632 bool getEnablePostJobActionsOverrides();
633 void setEnablePreChunkActionsOverrides(
bool _enablePreChunkActionsOverrides);
634 void setEnablePostChunkActionsOverrides(
bool _enablePostChunkActionsOverrides);
635 void setEnablePreJobActionsOverrides(
bool _enablePreJobActionsOverrides);
636 void setEnablePostJobActionsOverrides(
bool _enablePostJobActionsOverrides);
638 std::string getContent();
639 std::string getName();
640 std::string getDescription();
642 std::string getFileName();
643 std::string getMd5Hash();
644 int getTemplateLogic();
645 int getDefaultPriority();
646 std::string getDefaultPools();
647 std::string getDefaultExcludedPools();
648 int getMaximumLicenses();
649 std::string getLicensesGroup();
651 std::string getDelayGroup();
652 bool getEnableAdditionalFlagsField();
653 bool getEnableChunksTimeoutOverride();
654 int getChunksTimeout();
656 void setName(
const std::string& _name);
657 void setDescription(
const std::string& _description);
659 void setFilename(
const std::string& _filename);
660 void setMd5Hash(
const std::string& _md5Hash);
661 void setTemplateLogic(
int _templateLogic);
662 void setDefaultPriority(
int _defaultPriority);
663 void setDefaultPools(
const std::string& _defaultPools);
664 void setDefaultExcludedPools(
const std::string& _defaultExcludedPools);
665 void setMaximumLicenses(
int _maximumLicenses);
666 void setLicensesGroup(
const std::string& _licensesGroup);
667 void setDelay(
int _delay);
668 void setDelayGroup(
const std::string& _delayGroup);
669 void setEnableAdditionalFlagsField(
bool _enableAdditionalFlagsField);
671 void setEnableChunksTimeoutOverride(
bool _enableChunksTimeoutOverride);
672 void setChunksTimeout(
int _chunksTimeout);
676 void clearSubmissionItems();
678 std::vector<MTemplateItem*>* getSubmissionItems();
680 void clearSubmissionAdditionalItems();
681 void addSubmissionAdditionalItem(
const char* groupName,
MTemplateItem* item);
682 std::vector<MTemplateItemHolder*>* getSubmissionAdditionalItems();
684 void clearMappings();
685 void addMapping(
const std::string& templateValue,
const std::string& builtinValue);
686 std::map<std::string,std::string>* getMappings();
688 virtual void onFieldChanged(
const std::string& fieldName,
const std::string& fieldValue,
MTemplateItemsFields& fieldsToChange);
689 virtual std::string onBuildCommandLine(
int platform,
MClientLib::MJob* job,
MClientLib::MChunk* chunk,std::map<std::string,std::string>& clientTemplatePreferences,
int instanceNum);
694 virtual bool onCheckForSubframeAdvancingString(
const char* line);
702 virtual bool onFindApplication(
MClientLib::MStringRef& basePath,std::map<std::string,std::string>& clientTemplatePreferences);
704 virtual kTemplateFunctionBehaviour onDetectRunningProcess(
MPid mainProcess, std::vector <MClientLib::MProcessSnapshot*> hostProcesses, std::map<std::string,std::string>& clientTemplatePreferences,
MPid& runningProcessPid);
736 void encodeTree(
void* pt,std::string (*encodeFunc)(
const std::string &),
int encoding,
void* fields,std::vector<std::string>* filters);
737 bool compareWebFilters(std::vector<std::string>* filters);
738 bool checkWebFilter(
const std::string& field,
const std::string& value) ;
747 std::string filename;
750 std::string description;
754 std::string defaultPools;
755 std::string defaultExcludedPools;
757 std::string licensesGroup;
759 std::string delayGroup;
760 bool enableAdditionalFlagsField;
761 bool _canProvideFramesMask;
762 bool enableChunksTimeoutOverride;
765 bool enableLogWarningsOverrides;
766 bool enableLogErrorsOverrides;
767 bool enableExitCodeWarningsOverrides;
768 bool enableExitCodeErrorsOverrides;
769 bool enableProcessFailureErrorsOverrides;
771 bool enablePreChunkActionsOverrides;
772 bool enablePostChunkActionsOverrides;
773 bool enablePreJobActionsOverrides;
774 bool enablePostJobActionsOverrides;
776 std::map<std::string,std::string> mappings;
777 std::map<std::string,std::string> reverseMappings;
779 std::vector<MTemplateItem*> submissionItems;
780 std::vector<MTemplateItemHolder*> submissionAdditionalItems;