/* * 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 void do_until( IProcess & obj, const Condition & condition ) { while( condition ) obj.process(); } } #endif /* SOURCE_SYSTEM_IPROCESS_H_ */