MotorControlModuleSDFM_TMS3.../Projects/EFC_Application/UMLibrary/technological/adapter/ControlSystemEnable.hpp

56 lines
1.3 KiB
C++

/*
* ControlSystemEnable.hpp
*
* Created on: 1 ôåâð. 2021 ã.
* Author: titov
*/
#ifndef UMLIBRARY_TECHNOLOGICAL_ADAPTER_CONTROLSYSTEMENABLE_HPP_
#define UMLIBRARY_TECHNOLOGICAL_ADAPTER_CONTROLSYSTEMENABLE_HPP_
#include "ControlSystemWrapper.hpp"
#include "../../systemic/IStatus.hh"
namespace technological { namespace adapter {
template<class Input>
class ControlSystemEnable : public TieInterface<Input> {
public:
ControlSystemEnable( TieInterface<Input> & tie, systemic::IStatus & enable );
Input * try_connect();
void disconnect();
private:
TieInterface<Input> & tie;
systemic::IStatus & enable;
bool connect;
};
}
}
template<class Input>
inline technological::adapter::ControlSystemEnable<Input>::ControlSystemEnable(
TieInterface<Input> & tie, systemic::IStatus & enable ) : tie(tie), enable(enable) {}
template<class Input>
inline Input * technological::adapter::ControlSystemEnable<Input>::try_connect() {
if( connect = enable )
return tie.try_connect();
else
return nullptr;
}
template<class Input>
inline void technological::adapter::ControlSystemEnable<Input>::disconnect() {
if( connect )
tie.disconnect();
}
#endif /* UMLIBRARY_TECHNOLOGICAL_ADAPTER_CONTROLSYSTEMENABLE_HPP_ */