/* * ProcessStatisticFunctions.hh * * Created on: Jun 21, 2018 * Author: benjamin */ #ifndef PROCESSSTATISTICFUNCTIONS_HH_ #define PROCESSSTATISTICFUNCTIONS_HH_ #include "SingleParamProcess.hh" #include "StatisticFunctionsCreator.hh" namespace AMDA { namespace Parameters { /** * @class ProcessStatisticFunctions * @brief Process for some simple functions. */ class ProcessStatisticFunctions : public SingleParamProcess_CRTP { public: /** * @brief Constructor. */ ProcessStatisticFunctions(Parameter ¶meter, StatisticFunctionsCreator::StatisticFunctionsType type); /** * @brief Copy Constructor. */ ProcessStatisticFunctions(const ProcessStatisticFunctions& pProcess, Parameter &pParameter) ; /** * @brief Destructor. */ virtual ~ProcessStatisticFunctions(); /** * @overload Process::init() */ virtual TimeStamp init(); private: /** * @brief Function type */ StatisticFunctionsCreator::StatisticFunctionsType _type; /** * @bried Window time in secs. */ double _windowtime; }; /** * @class ProcessMinFunc * @brief Process to compute min. */ class ProcessMinFunc : public ProcessStatisticFunctions { public: /** * @brief Constructor. */ ProcessMinFunc(Parameter ¶meter); }; /** * @class ProcessMinSmFunc * @brief Process to compute min_sm. */ class ProcessMinSmFunc : public ProcessStatisticFunctions { public: /** * @brief Constructor. */ ProcessMinSmFunc(Parameter ¶meter); }; /** * @class ProcessMaxFunc * @brief Process to compute max. */ class ProcessMaxFunc : public ProcessStatisticFunctions { public: /** * @brief Constructor. */ ProcessMaxFunc(Parameter ¶meter); }; /** * @class ProcessMaxSmFunc * @brief Process to compute max_sm. */ class ProcessMaxSmFunc : public ProcessStatisticFunctions { public: /** * @brief Constructor. */ ProcessMaxSmFunc(Parameter ¶meter); }; /** * @class ProcessVarFunc * @brief Process to compute var. */ class ProcessVarFunc : public ProcessStatisticFunctions { public: /** * @brief Constructor. */ ProcessVarFunc(Parameter ¶meter); }; /** * @class ProcessVarSmFunc * @brief Process to compute var_sm. */ class ProcessVarSmFunc : public ProcessStatisticFunctions { public: /** * @brief Constructor. */ ProcessVarSmFunc(Parameter ¶meter); }; /** * @class ProcessRmsFunc * @brief Process to compute rms. */ class ProcessRmsFunc : public ProcessStatisticFunctions { public: /** * @brief Constructor. */ ProcessRmsFunc(Parameter ¶meter); }; /** * @class ProcessRmsSmFunc * @brief Process to compute rms_sm. */ class ProcessRmsSmFunc : public ProcessStatisticFunctions { public: /** * @brief Constructor. */ ProcessRmsSmFunc(Parameter ¶meter); }; /** * @class ProcessSkewFunc * @brief Process to compute skew. */ class ProcessSkewFunc : public ProcessStatisticFunctions { public: /** * @brief Constructor. */ ProcessSkewFunc(Parameter ¶meter); }; /** * @class ProcessSkewSmFunc * @brief Process to compute skew_sm. */ class ProcessSkewSmFunc : public ProcessStatisticFunctions { public: /** * @brief Constructor. */ ProcessSkewSmFunc(Parameter ¶meter); }; /** * @class ProcessMedianFunc * @brief Process to compute median. */ class ProcessMedianFunc : public ProcessStatisticFunctions { public: /** * @brief Constructor. */ ProcessMedianFunc(Parameter ¶meter); }; } /* namespace Parameters */ } /* namespace AMDA */ #endif /* PROCESSSTATISTICFUNCTIONS_HH_ */