Blame view

src/Parameters/Operation.hh 1.33 KB
fbe3c2bb   Benjamin Renard   First commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/**
 * Operation.hh
 *
 *  Created on: 2 nov. 2012
 *      Author: AKKA IS
 */

#ifndef OPERATION_HH_
#define OPERATION_HH_

#include <stdio.h>

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_ */