42 lines
767 B
C++
42 lines
767 B
C++
|
|
/*
|
|||
|
|
* IProcess.h
|
|||
|
|
*
|
|||
|
|
* Created on: 20 <EFBFBD><EFBFBD><EFBFBD>. 2017 <EFBFBD>.
|
|||
|
|
* Author: titov
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
#ifndef SOURCE_SYSTEM_IPROCESS_H_
|
|||
|
|
#define SOURCE_SYSTEM_IPROCESS_H_
|
|||
|
|
|
|||
|
|
namespace systemic {
|
|||
|
|
|
|||
|
|
//!<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
|
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_ */
|