52 lines
1.6 KiB
C++
52 lines
1.6 KiB
C++
/*
|
|
* ControlStateExternal.hh
|
|
*
|
|
* Created on: 27 ńĺíň. 2021 ă.
|
|
* Author: titov
|
|
*/
|
|
|
|
#ifndef UMLIBRARY_TECHNOLOGICAL_DRIVECONTROL_CONTROLSTATEEXTERNAL_HH_
|
|
#define UMLIBRARY_TECHNOLOGICAL_DRIVECONTROL_CONTROLSTATEEXTERNAL_HH_
|
|
|
|
#include "../IExecutorState.hh"
|
|
#include "../../systemic/IStatus.hh"
|
|
#include "../../systemic/SharedData.hh"
|
|
|
|
namespace technological { namespace drivecontrol {
|
|
|
|
struct ControlStateExternalComplite : public IExecutorState {
|
|
|
|
bool on_entry() { return state.on_entry(); }
|
|
bool execute( CommandCode code, const char * args, std::size_t size ) { return state.execute(code, args, size); }
|
|
CommandCode isComplite() const { return status ? self_code : disable_code; }
|
|
void reset() { return state.reset(); }
|
|
void on_exit() { return state.on_exit(); }
|
|
|
|
ControlStateExternalComplite( IExecutorState & state, systemic::IStatus & status, CommandCode self_code, CommandCode disable_code = 0 );
|
|
private:
|
|
systemic::IStatus & status;
|
|
IExecutorState & state;
|
|
CommandCode self_code;
|
|
CommandCode disable_code;
|
|
};
|
|
|
|
struct ControlStateExternalArgs : public IExecutorState {
|
|
|
|
bool on_entry() { return state.on_entry(); }
|
|
bool execute( CommandCode code, const char * args, std::size_t size );
|
|
CommandCode isComplite() const { return state.isComplite(); }
|
|
void reset() { return state.reset(); }
|
|
void on_exit() { return state.on_exit(); }
|
|
|
|
ControlStateExternalArgs( IExecutorState & state, systemic::SharedData args );
|
|
private:
|
|
systemic::SharedData args;
|
|
IExecutorState & state;
|
|
};
|
|
|
|
}}
|
|
|
|
|
|
|
|
#endif /* UMLIBRARY_TECHNOLOGICAL_DRIVECONTROL_CONTROLSTATEEXTERNAL_HH_ */
|