26 #ifndef __TERRALIB_VP_INTERNAL_ABSCTRACTOPERATION_H 27 #define __TERRALIB_VP_INTERNAL_ABSCTRACTOPERATION_H 31 #include "../common/AbstractFactory.h" 32 #include "../geometry/Enums.h" 48 struct AbstractOperationImpl;
51 class OperationReport;
82 virtual bool isValid();
89 std::string getErrorMessage()
const;
113 const std::vector<te::da::DataAccess*>& getInputDataAccessVector()
const;
116 const std::vector<te::da::DataAccess*>& getOutputDataAccessVector()
const;
119 void setInputDataAccessVector(
const std::vector<te::da::DataAccess*>& vecDataAccess);
122 void setOutputDataAccessVector(
const std::vector<te::da::DataAccess*>& vecDataAccess);
125 void setMaxCoordinates(std::size_t maxCoordinates);
128 std::size_t getMaxCoordinates()
const;
131 void setSwapInput(
bool swap);
134 bool getSwapInput()
const;
170 AbstractOperationCapabilities(
const std::string& operationName, std::size_t numberOfInputs, std::size_t numberOfOutputs,
const std::string& dataHandlerName,
bool snapGeometries =
true);
176 std::size_t getNumberOfInputs()
const;
179 std::size_t getNumberOfOutputs()
const;
182 const std::string& getName()
const;
185 const std::string& getDataHandlerName()
const;
188 bool getSnapGeometries()
const;
191 std::unique_ptr<AbstractParameters> createParameters()
const;
222 virtual void initialize();
235 virtual std::vector<te::vp::FeatureSet> execute(
const std::vector<te::vp::FeatureSet>& vecInput);
254 const std::string& getName()
const;
263 bool isAborted()
const;
266 virtual std::unique_ptr<te::vp::AbstractOperationCapabilities> getCapabilities()
const;
269 bool prepareInputData();
271 bool prepareOutputData();
276 virtual te::da::DataSetType* createBasicOutputDataSetType(
const std::string& dataSetName,
int srid,
te::gm::GeomType geometryType,
const std::string& geometryColumnName)
const;
281 virtual bool initializeInput();
284 virtual bool initializeOutput();
287 virtual std::vector<te::vp::FeatureSet> executeImpl(
const std::vector<te::vp::FeatureSet>& vecInput) = 0;
318 #endif // __TERRALIB_VP_INTERNAL_ABSCTRACTOPERATION_H This class defines the interface of abstract factories without initializing parameters.
#define TEVPEXPORT
You can use this macro in order to export/import classes and functions from this module.
std::size_t m_numberOfOutputs
The number of outputs of the operation.
GeomType
Each enumerated type is compatible with a Well-known Binary (WKB) type code.
Abstract class used to define the capabilities of the operation, inclusing number of inputs and outpu...
bool m_swapInput
This is very usefull for operations between 2 dataSets. If TRUE, the input will be swapped...
A class that models the description of a dataset.
bool m_aborted
Becames true if the abort function is called. Concrete classes must check for this value from time to...
std::string m_errorMessage
String with error message information.
std::vector< te::da::DataAccess * > m_outputDataVector
Vector with output dataAccess.
std::size_t m_maxCoordinates
If higher than 0, geometries will be subdivided until all the parts have less vertexes that this valu...
Abstract class used to define an operation.
std::string m_dataHandlerName
TRUE if the operation supports the subdivision of the geometries. FALSE otherwise.
std::string m_operationName
The name of the operation.
std::vector< te::da::DataAccess * > m_inputDataVector
Vector with input dataAccess.
bool m_snapGeometries
If TRUE, the geometries will be snapped before the operation is executed. Default is TRUE...
Class used as a report logger for Operations.
OperationResult m_operationResult
Stores the result of the operation.
Abstract class used to define the input/ ouptut parameters for TerraAmazon Operations.
Abstract factory used to create Operations.
std::size_t m_numberOfInputs
The number of inputs of the operation.
AbstractOperationImpl * m_impl
Holds all the attributes of the class.
Configuration flags for the Terrralib Vector Processing module.
bool m_snapGeometries
TRUE if the geometries must be snapped to each other before the operation is executed. FALSE otherwise. Default is TRUE.
A feature is a composition of a geometry and its attributes.
Class used to centralize and control access to data in terralib. It aims to create a high-level inter...