9 #include <FMEException/Exception.h>
10 #include <FMEThirdPartyWarningsDisable.h>
12 #include <FMEThirdPartyWarningsRestore.h>
160 enum EOnInputChangeBehavior {
165 void _addUpdateControlFields();
166 void _addStatusFields();
167 void _addStatusCodeField();
168 bool _isFieldUpdate(
Field* field)
const;
169 bool _isFieldOnInputChangeBehavior(
Field* field)
const;
170 bool _shouldUpdateOnInputChange()
const;
171 bool _isFieldClear(
Field* field)
const;
172 bool _hasNamePrefixIn(
const std::string& name)
const;
173 bool _hasNamePrefixInput(
const std::string& name)
const;
174 void _handleInputFieldNotification();
175 void _initiateUpdate();
176 void _validateInputAndUpdate();
178 bool _shouldClearOnFailedUpdate();
179 void _setStatusCodeAndMessageFieldValues(
const EStatusCode code,
const std::string& message);
181 void _initiateClear();
182 void _tryToSetOutputImageProperties(
int outputIndex,
PagedImage* outputImage);
183 void _validateOutputImageValidity(
const PagedImage*
const outputImage)
const;
185 void _setImageInvalid(
PagedImage*
const image);
187 bool _hasValidatedInputAndInitiatedUpdate;
188 bool _wasOutputCleared;
189 bool _didSetOutputImagePropertiesFail;
219 BoolField* doNotClearOnFailedUpdateField;
#define ML_ALGORITHM_MODULE_EXPORT
Data structure to indicate an error within an AlgorithmModule derivative's implementation of interfac...
AlgorithmModule::EStatusCode getStatusCode() const
const std::string & getMessage() const
Error(const AlgorithmModule::EStatusCode statusCode, const std::string &message)
Data structure indicating an internally caused error.
InternalError(const std::string &message)
~InternalError() override
ML-Module base class to simplify development of modules encapsulating an algorithm with dedicated inp...
AlgorithmModule(int numInputImages, int numOutputImages)
Forwards given parameters to base class constructor.
void activateAttachments() override
Never overwrite this method in derivative!
void handleNotification(Field *field) override
Never overwrite this method in derivative!
virtual void setOutputImageProperties(int outputIndex, PagedImage *outputImage)
Sets properties of the output image at output outputIndex.
~AlgorithmModule() override
bool _isInputField(const Field *field) const
Returns true if the field is treated as an input field that changes the module parameterization and r...
virtual void clear()=0
Clears the values of module's output fields (object and parameter fields).
virtual void update()=0
Executes the algorithm and updates the values of module's output fields with results.
EStatusCode
Contains possible values of field statusCode.
@ SC_ERROR_INTERNAL
An internal error caused abort of update.
@ SC_ERROR_INPUT_PARAMETER
An invalid input parameter caused abort of update.
@ SC_ERROR_INPUT_OBJECT
An invalid input object caused abort of update.
void calculateOutputImageProperties(int outputIndex, PagedImage *outputImage) override
Never overwrite this method in derivative!
virtual void validateInput()=0
Validates the values of module's input fields (object and parameter fields).
Field to encapsulate a boolean value.
Base class for all fields used in the ML.
Base class for an image processing module of the ML.
Field without value for notifications.
The class PagedImage, representing a fragmented image that manages properties and data of an image lo...
Field to encapsulate a string value.
#define ML_ABSTRACT_MODULE_CLASS_HEADER(className)
Similar to ML_ABSTRACT_CLASS_HEADER for the usage of derived classes from Module.