RTC Toolkit  0.1.0-alpha
rtcObjectConfig.hpp
Go to the documentation of this file.
1 
9 #ifndef RTCTK_RTCSUPERVISOR_RTCOBJECTCONFIG_HPP_
10 #define RTCTK_RTCSUPERVISOR_RTCOBJECTCONFIG_HPP_
11 
12 #include "Stdif.hpp"
13 #include "Rtctkif.hpp"
15 
20 
21 
22 
23 namespace rtctk::rtcSupervisor {
24 
26  public:
27  std::string m_name;
28  std::string m_rr_uri;
29  std::string m_ps_uri;
30  RtcObjectDescription (const std::string &name, const std::string &rr_uri, const std::string &ps_uri) {
31  m_name = name;
32  m_rr_uri = rr_uri;
33  m_ps_uri = ps_uri;
34  };
36  m_name = "";
37  m_rr_uri = "";
38  m_ps_uri = "";
39  };
40  };
42  public:
44  std::list<RtcObjectDescription> objects;
47  };
48 
50  public:
51  RtcObjectConfig(std::string name,
55  );
56  virtual ~RtcObjectConfig();
57 
58  // @brief Read config from RR and build lists
59  void BuildFromRuntimeRepo();
60 
61  // @brief Find object or NULL
62  std::shared_ptr<RtcObject> FindObject(const std::string &name);
63 
64  // @brief Return the all object list
65  std::shared_ptr<RtcCommandRequestList> AllObjectsRequestList() {return m_objects_request_list;};
66 
67  // @brief Update state information from event, evaluate the new global state
68  void OnStateEventReceived(const double timestamp,
69  const std::string& name, const std::string& state,
70  std::string &gstate, std::string &gsubstate,
71  bool &gerror, std::string &gerror_who);
72 
73  // @brief Give access to the object list
74  std::list<std::shared_ptr<RtcObject>> &ObjectList() {return m_objects_list;};
75 
76  // @brief Give access to the pub sub list
77  std::vector<elt::mal::Uri> &PubSubURIs() {return m_pub_sub_uris;};
78 
79  // @brief Evaluate global state by traversing all objects
80  void EvaluateBelievedState (std::string &gstate, std::string &gsubstate,
81  bool &gerror, std::string &gerror_who);
82 
83  // @brief Free memory (if needed)
84  void Cleanup();
85 
86  // @brief Dump for debugging
87  void Dump();
88  private:
89  // @brief name of the component (needed for OLDB access at least)
90  std::string m_name;
91 
92  // @brief lists of objects and commands
93  std::list<std::shared_ptr<RtcObject>> m_objects_list;
94  std::shared_ptr<RtcCommandRequestList> m_objects_request_list;
95 
96  // @brief the configuration as loaded from the runtime repo
97  // names and URIs
98  RtcObjectsDescription m_objects_description;
99 
100  void BuildObjectsList();
101  void BuildObjectsRequestList();
102 
103  // @brief ref to rtr and svc
107 
108  std::vector<elt::mal::Uri> m_pub_sub_uris;
109  };
110 }
111 
112 #endif
rtctk::rtcSupervisor
Definition: rtcCommandRequest.hpp:17
rtctk::rtcSupervisor::RtcObjectsDescription::LoadFromRuntimeRepo
void LoadFromRuntimeRepo(rtctk::componentFramework::RuntimeRepoApiIf &rtr, rtctk::componentFramework::ServiceDiscovery &svc)
Definition: rtcObjectConfig.cpp:205
rtctk::rtcSupervisor::RtcObjectConfig::FindObject
std::shared_ptr< RtcObject > FindObject(const std::string &name)
Definition: rtcObjectConfig.cpp:84
rtcCommandRequestList.hpp
Handles a list of command requests to be run sequentially or in parallel.
rtctk::rtcSupervisor::RtcObjectConfig::Cleanup
void Cleanup()
serviceDiscovery.hpp
Class that implements a very basic service discover mechanism.
rtctk::rtcSupervisor::RtcObjectConfig::ObjectList
std::list< std::shared_ptr< RtcObject > > & ObjectList()
Definition: rtcObjectConfig.hpp:74
rtctk::rtcSupervisor::RtcObjectDescription
Definition: rtcObjectConfig.hpp:25
rtctk::rtcSupervisor::RtcObjectConfig::BuildFromRuntimeRepo
void BuildFromRuntimeRepo()
Definition: rtcObjectConfig.cpp:71
rtctk::componentFramework::ServiceDiscovery
Definition: serviceDiscovery.hpp:25
rtctk::rtcSupervisor::RtcObjectDescription::m_rr_uri
std::string m_rr_uri
Definition: rtcObjectConfig.hpp:28
rtctk::rtcSupervisor::RtcObjectsDescription::RtcObjectsDescription
RtcObjectsDescription()
Definition: rtcObjectConfig.cpp:195
rtctk::rtcSupervisor::RtcObjectsDescription::objects
std::list< RtcObjectDescription > objects
Definition: rtcObjectConfig.hpp:44
rtctk::rtcSupervisor::RtcObjectConfig::OnStateEventReceived
void OnStateEventReceived(const double timestamp, const std::string &name, const std::string &state, std::string &gstate, std::string &gsubstate, bool &gerror, std::string &gerror_who)
Definition: rtcObjectConfig.cpp:103
rtctk::rtcSupervisor::RtcObjectConfig
Definition: rtcObjectConfig.hpp:49
rtctk::componentFramework::OldbApiIf
Definition: oldbApiIf.hpp:18
rtctk::rtcSupervisor::RtcObjectConfig::Dump
void Dump()
rtctk::rtcSupervisor::RtcObjectConfig::AllObjectsRequestList
std::shared_ptr< RtcCommandRequestList > AllObjectsRequestList()
Definition: rtcObjectConfig.hpp:65
rtctk::rtcSupervisor::RtcObjectDescription::RtcObjectDescription
RtcObjectDescription(const std::string &name, const std::string &rr_uri, const std::string &ps_uri)
Definition: rtcObjectConfig.hpp:30
rtctk::rtcSupervisor::RtcObjectConfig::~RtcObjectConfig
virtual ~RtcObjectConfig()
Definition: rtcObjectConfig.cpp:31
rtctk::componentFramework::RuntimeRepoApiIf
Definition: runtimeRepoApiIf.hpp:59
fakeOldbAdapter.hpp
Header file needed to instantiate FakeOldbAdapter in test components.
runtimeRepoApiIf.hpp
Header file for RuntimeRepoApiIf, which defines the API for RuntimeRepoAdapters.
rtctk::rtcSupervisor::RtcObjectConfig::EvaluateBelievedState
void EvaluateBelievedState(std::string &gstate, std::string &gsubstate, bool &gerror, std::string &gerror_who)
Definition: rtcObjectConfig.cpp:130
rtctk::rtcSupervisor::RtcObjectConfig::RtcObjectConfig
RtcObjectConfig(std::string name, rtctk::componentFramework::RuntimeRepoApiIf &rtr, rtctk::componentFramework::ServiceDiscovery &svc, rtctk::componentFramework::OldbApiIf &oldb)
Definition: rtcObjectConfig.cpp:22
rtctk::rtcSupervisor::RtcObjectDescription::RtcObjectDescription
RtcObjectDescription()
Definition: rtcObjectConfig.hpp:35
rtctk::rtcSupervisor::RtcObjectDescription::m_name
std::string m_name
Definition: rtcObjectConfig.hpp:27
rtctk::rtcSupervisor::RtcObjectDescription::m_ps_uri
std::string m_ps_uri
Definition: rtcObjectConfig.hpp:29
rtcSupervisorLib.hpp
Standard enums for rtcSupervisor.
rtctk::rtcSupervisor::RtcObjectsDescription
Definition: rtcObjectConfig.hpp:41
rtctk::rtcSupervisor::RtcObjectConfig::PubSubURIs
std::vector< elt::mal::Uri > & PubSubURIs()
Definition: rtcObjectConfig.hpp:77