42 lines
767 B
C++
42 lines
767 B
C++
/*
|
|
* IProcess.h
|
|
*
|
|
* Created on: 20 äåê. 2017 ã.
|
|
* Author: titov
|
|
*/
|
|
|
|
#ifndef SOURCE_SYSTEM_IPROCESS_H_
|
|
#define SOURCE_SYSTEM_IPROCESS_H_
|
|
|
|
namespace systemic {
|
|
|
|
//!Èíòåðôåéñ ïðîöåññà.
|
|
class IProcess {
|
|
public:
|
|
virtual void process() = 0;
|
|
virtual void setSampleTime( float ts_in_second ) { (void) ts_in_second; };
|
|
|
|
// ~IProcess() = default;
|
|
};
|
|
|
|
struct IProcessControl {
|
|
virtual void enable() = 0;
|
|
virtual void disable() = 0;
|
|
};
|
|
|
|
struct ProcCtrl : public systemic::IProcessControl {
|
|
void enable() {}
|
|
void disable() {}
|
|
virtual ~ProcCtrl() = default;
|
|
};
|
|
|
|
template<typename Condition>
|
|
void do_until( IProcess & obj, const Condition & condition ) {
|
|
while( condition )
|
|
obj.process();
|
|
}
|
|
|
|
}
|
|
|
|
#endif /* SOURCE_SYSTEM_IPROCESS_H_ */
|