/** * Operation.hh * * Created on: 2 nov. 2012 * Author: AKKA IS */ #ifndef OPERATION_HH_ #define OPERATION_HH_ #include namespace AMDA { namespace Parameters { class ParamData; ///< @see ParamData class Process; ///< @see Process class ParamDataIndexInfo; ///< @see ParamDataIndexInfo /** * @brief Interface of Process operation * @details must be implemented in an Process implementation to compute data and write in _paramDataOutput * @see Process */ class Operation { public: /** * @brief default constructor */ Operation(Process& process) : _paramDataOutput(NULL), _process(process) { } /** * @brief destructor */ virtual ~Operation() {} /** * _paramDataOutput getter */ ParamData* getParamOutput() const { return _paramDataOutput; } /** * @brief write data in _paramDataOutput * @detail pParamDataIndexInfo contain input description data */ virtual void write(ParamDataIndexInfo &pParamDataIndexInfo) = 0; /** * @brief Reset static data to process on another data flow. */ virtual void reset() {}; protected: /** * @brief ParamData Output */ ParamData *_paramDataOutput; /** * @brief Reference on parent process */ Process &_process; }; } } #endif /* OPERATION_HH_ */