MotorControlModuleSDFM_TMS3.../Projects/EFC_Application/UMLibrary/systemic/IProcess.hh

42 lines
767 B
C++
Raw Normal View History

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