RTC Toolkit  0.1.0-alpha
rtcObject.hpp
Go to the documentation of this file.
1 
9 #ifndef RTCTK_RTCSUPERVISOR_RTCOBJECT_HPP_
10 #define RTCTK_RTCSUPERVISOR_RTCOBJECT_HPP_
11 
12 #include "Stdif.hpp"
13 #include "Rtctkif.hpp"
14 #include <rad/smAdapter.hpp>
15 #include <rad/mal/subscriber.hpp>
18 
19 
20 namespace rtctk::rtcSupervisor {
21 
22 using stdif::StdCmdsSync;
23 using stdif::StdCmdsAsync;
24 
25  class RtcObject {
26  public:
33  RtcObject(const std::string &name, const std::string &rr_uri, const std::string &ps_uri);
34  virtual ~RtcObject();
35 
40  virtual void BelievedState (const std::string &s);
45  virtual std::string BelievedState();
46  virtual std::string BelievedSubstate();
51  void EvaluatedState(RtcState &state, RtcSubState &subState);
52 
56  virtual std::string Name() { return m_name ;};
57 
61  virtual void BelievedError (bool i) {m_b_error = i;};
62  virtual bool BelievedError() { return m_b_error ;};
63 
67  virtual std::string RunCmd(RtcCommand cmd, bool shortTmo);
71  virtual std::string RunAsync(RtcCommand cmd);
75  virtual std::string WaitAsync();
79  virtual bool GetAsyncCommandOK();
80 
82  virtual void BuildObject ();
83  private:
84 
86  std::string m_name;
87  std::string m_stdif_uri;
88  std::string m_rr_uri;
89  std::string m_ps_uri;
90 
92  std::string m_b_state;
93  std::string m_b_substate;
94  bool m_b_error;
96  virtual void EvaluateState(const std:: string &s);
97  virtual void EvaluatePrimaryStateAndSubstate(const std::string &state,const std::string &substate);
98  RtcState m_evaluated_state;
99  RtcSubState m_evaluated_substate;
100 
102  std::shared_ptr<StdCmdsAsync> m_cli_async;
103  ::elt::mal::future<std::string> m_cli_async_future;
104  std::shared_ptr<StdCmdsSync> m_cli_sync;
106  std::shared_ptr<StdCmdsSync> m_cli_timed_sync;
107 
110  bool m_async_command_ok;
111  std::string m_async_command_ok_string;
113  bool m_component_caused_exception;
114 
118  bool m_command_returns_OK;
119  };
120 }
121 
122 #endif
rtctk::rtcSupervisor::RtcObject::RtcObject
RtcObject(const std::string &name, const std::string &rr_uri, const std::string &ps_uri)
Definition: rtcObject.cpp:49
rtctk::rtcSupervisor
Definition: rtcCommandRequest.hpp:17
rtctk::rtcSupervisor::RtcObject::BelievedError
virtual void BelievedError(bool i)
Setter and Getter for BelievedError.
Definition: rtcObject.hpp:61
rtctk::rtcSupervisor::RtcObject::BelievedState
virtual std::string BelievedState()
Set the believed state as a string and evaluate as enumeration.
Definition: rtcObject.cpp:510
rtctk::rtcSupervisor::RtcCommand
RtcCommand
Definition: rtcSupervisorLib.hpp:65
rtctk::rtcSupervisor::RtcObject::GetAsyncCommandOK
virtual bool GetAsyncCommandOK()
Get indication that async command was OK, no exception or funny return values.
Definition: rtcObject.cpp:158
rtctk::rtcSupervisor::RtcObject
Definition: rtcObject.hpp:25
rtctk::rtcSupervisor::RtcObject::BelievedSubstate
virtual std::string BelievedSubstate()
Definition: rtcObject.cpp:515
rtctk::rtcSupervisor::RtcObject::BuildObject
virtual void BuildObject()
Called from ctor, public for mocking purposes.
Definition: rtcObject.cpp:81
rtctk::rtcSupervisor::RtcObject::EvaluatedState
void EvaluatedState(RtcState &state, RtcSubState &subState)
Return the state evaluated as enumeration.
Definition: rtcObject.cpp:402
rtctk::rtcSupervisor::RtcObject::WaitAsync
virtual std::string WaitAsync()
Wait for previously async run command.
Definition: rtcObject.cpp:294
rtctk::rtcSupervisor::RtcObject::~RtcObject
virtual ~RtcObject()
Definition: rtcObject.cpp:71
rtctk::rtcSupervisor::RtcObject::Name
virtual std::string Name()
Definition: rtcObject.hpp:56
rtctk::rtcSupervisor::RtcObject::RunAsync
virtual std::string RunAsync(RtcCommand cmd)
Run command async.
Definition: rtcObject.cpp:333
stateSubscriber.hpp
Subscribes to stdif state topic via MAL.
rtctk::rtcSupervisor::RtcSubState
RtcSubState
Definition: rtcSupervisorLib.hpp:36
rtctk::rtcSupervisor::RtcState
RtcState
Definition: rtcSupervisorLib.hpp:24
rtctk::rtcSupervisor::RtcObject::BelievedError
virtual bool BelievedError()
Definition: rtcObject.hpp:62
rtcSupervisorLib.hpp
Standard enums for rtcSupervisor.
rtctk::rtcSupervisor::RtcObject::RunCmd
virtual std::string RunCmd(RtcCommand cmd, bool shortTmo)
Run command with optional arg.
Definition: rtcObject.cpp:163