OpenRTM-aist  2.1.0
SdoConfiguration.h
Go to the documentation of this file.
1 // -*- C++ -*-
20 #ifndef RTC_SDOCONFIGURATION_H
21 #define RTC_SDOCONFIGURATION_H
22 
23 // CORBA header include
24 #include <rtm/RTC.h>
25 #include <mutex>
26 
27 // local includes
28 #include <rtm/idl/SDOPackageSkel.h>
29 #include <rtm/ConfigAdmin.h>
30 #include <rtm/SystemLogger.h>
31 #include <rtm/SdoServiceAdmin.h>
32 
33 #include <string>
34 
35 // SdoConfiguration with SeqEx 159120
36 // SdoConfiguration with SeqUtil 114504 114224
37 
53 namespace SDOPackage
54 {
150  : public virtual POA_SDOPackage::Configuration,
151  public virtual PortableServer::RefCountServantBase
152  {
153  public:
174  RTC::SdoServiceAdmin& sdoServiceAdmin);
175 
192 
193  //============================================================
194  //
195  // <<< CORBA interfaces >>>
196  //
197  //============================================================
238  CORBA::Boolean set_device_profile(const DeviceProfile& dProfile) override;
239 
285  CORBA::Boolean add_service_profile(const ServiceProfile& sProfile) override;
286 
322  CORBA::Boolean add_organization(Organization_ptr org) override;
323 
366  CORBA::Boolean remove_service_profile(const char* id) override;
367 
407  CORBA::Boolean remove_organization(const char* organization_id) override;
408 
441  ParameterList* get_configuration_parameters() override;
442 
474 
515  CORBA::Any* get_configuration_parameter_value(const char* name) override;
516 
559  CORBA::Boolean set_configuration_parameter(const char* name,
560  const CORBA::Any& value) override;
561 
596  ConfigurationSetList* get_configuration_sets() override;
597 
638  ConfigurationSet* get_configuration_set(const char* id) override;
639 
688  ConfigurationSet* get_active_configuration_set() override;
689 
731  CORBA::Boolean
732  add_configuration_set(const ConfigurationSet& configuration_set) override;
733 
785  CORBA::Boolean
786  set_configuration_set_values(const ConfigurationSet& configuration_set) override;
787 
826  CORBA::Boolean remove_configuration_set(const char* id) override;
827 
878  CORBA::Boolean activate_configuration_set(const char* id) override;
879 
880  // end of CORBA interface definition
881  //============================================================
882 
902  Configuration_ptr getObjRef();
903 
923  DeviceProfile getDeviceProfile();
924 
944  OrganizationList getOrganizations();
945 
946  protected:
967  static std::string getUUID() ;
968 
976  Configuration_var m_objref;
977 
985  DeviceProfile m_deviceProfile;
986  std::mutex m_dprofile_mutex;
987 
1049  ParameterList m_parameters;
1050  std::mutex m_params_mutex;
1051 
1059  /*
1060  struct ConfigurationSet
1061  {
1062  string id;
1063  string description;
1064  NVList configuration_data;
1065  };
1066  */
1068  std::mutex m_config_mutex;
1069 
1079 
1087  OrganizationList m_organizations;
1088  std::mutex m_org_mutex;
1089 
1097  struct nv_name
1098  {
1099  explicit nv_name(const char* name) : m_name(name) {}
1100  bool operator()(const NameValue& nv)
1101  {
1102  return m_name == std::string(nv.name);
1103  }
1104  std::string m_name;
1105  };
1106 
1114  struct org_id
1115  {
1116  explicit org_id(const char* id) : m_id(id) {}
1117 #ifdef ORB_IS_ORBEXPRESS
1118  bool operator()(const Organization_var& o)
1119 #else
1120  bool operator()(const Organization_ptr& o)
1121 #endif
1122  {
1123  CORBA::String_var id(o->get_organization_id());
1124  return m_id == (const char *)id;
1125  }
1126  const std::string m_id;
1127  };
1128 
1136  struct config_id
1137  {
1138  explicit config_id(const char* id) : m_id(id) {}
1139  bool operator()(const ConfigurationSet& c)
1140  {
1141  std::string id(c.id);
1142  return m_id == id;
1143  }
1144  const std::string m_id;
1145  };
1146  }; // class Configuration_impl
1147 } // namespace SDOPackage
1148 
1149 #endif // RTC_SDOCONFIGURATION_H
Configuration Administration classes.
RTComponent header.
SDO service administration class.
RT component logger class.
ConfigAdmin class.
Definition: ConfigAdmin.h:612
Logger class.
Definition: SystemLogger.h:101
Definition: SdoServiceAdmin.h:151
Configuration implementation class.
Definition: SdoConfiguration.h:152
ConfigurationSetList * get_configuration_sets() override
[CORBA interface] Get a list of ConfigurationSet
OrganizationList getOrganizations()
Get a list of Organization of SDO.
ConfigurationSet * get_active_configuration_set() override
[CORBA interface] Get active ConfigurationSet
DeviceProfile getDeviceProfile()
Get the DeviceProfile of SDO.
CORBA::Boolean set_configuration_set_values(const ConfigurationSet &configuration_set) override
[CORBA interface] Set ConfigurationSet
std::mutex m_dprofile_mutex
Definition: SdoConfiguration.h:986
Configuration_var m_objref
The reference to CORBA object.
Definition: SdoConfiguration.h:976
NVList * get_configuration_parameter_values() override
[CORBA interface] Get a list of the value of configuration parameters
OrganizationList m_organizations
SDO OrganizationList with mutex lock.
Definition: SdoConfiguration.h:1087
CORBA::Boolean remove_service_profile(const char *id) override
[CORBA interface] Remove ServiceProfile
ParameterList * get_configuration_parameters() override
[CORBA interface] Get a list of configuration parameters
~Configuration_impl() override
Virtual destractor.
Configuration_impl(RTC::ConfigAdmin &configsets, RTC::SdoServiceAdmin &sdoServiceAdmin)
Constructor.
static std::string getUUID()
Generate UUID.
DeviceProfile m_deviceProfile
SDO DeviceProfile with mutex lock.
Definition: SdoConfiguration.h:985
RTC::ConfigAdmin & m_configsets
SDO ConfigurationSetList with mutex lock.
Definition: SdoConfiguration.h:1067
Configuration_ptr getObjRef()
Get object reference.
::RTC::Logger rtclog
Definition: SdoConfiguration.h:947
CORBA::Boolean add_service_profile(const ServiceProfile &sProfile) override
[CORBA interface] Set SDO's ServiceProfile
std::mutex m_params_mutex
Definition: SdoConfiguration.h:1050
CORBA::Boolean add_configuration_set(const ConfigurationSet &configuration_set) override
[CORBA interface] Add ConfigurationSet
std::mutex m_org_mutex
Definition: SdoConfiguration.h:1088
CORBA::Boolean set_device_profile(const DeviceProfile &dProfile) override
[CORBA interface] Set DeviceProfile of SDO
ConfigurationSet * get_configuration_set(const char *id) override
[CORBA interface] Get a ConfigurationSet
CORBA::Boolean set_configuration_parameter(const char *name, const CORBA::Any &value) override
[CORBA interface] Modify the configuration parameter value
CORBA::Any * get_configuration_parameter_value(const char *name) override
[CORBA interface] Get the value of configuration parameter
ParameterList m_parameters
SDO Parameter.
Definition: SdoConfiguration.h:1049
CORBA::Boolean remove_configuration_set(const char *id) override
[CORBA interface] Remove ConfigurationSet
CORBA::Boolean add_organization(Organization_ptr org) override
[CORBA interface] Add Organization
std::mutex m_config_mutex
Definition: SdoConfiguration.h:1068
CORBA::Boolean remove_organization(const char *organization_id) override
[CORBA interface] Remove the reference of Organization
CORBA::Boolean activate_configuration_set(const char *id) override
[CORBA interface] Activate ConfigurationSet
RTC::SdoServiceAdmin & m_sdoservice
SDO Service admin object with mutex lock.
Definition: SdoConfiguration.h:1077
std::mutex m_sdoservice_mutex
Definition: SdoConfiguration.h:1078
SDO Package.
Definition: InPortConsumer.h:35
Functor for ConfigurationSet.
Definition: SdoConfiguration.h:1137
config_id(const char *id)
Definition: SdoConfiguration.h:1138
bool operator()(const ConfigurationSet &c)
Definition: SdoConfiguration.h:1139
const std::string m_id
Definition: SdoConfiguration.h:1144
Functor for NVList.
Definition: SdoConfiguration.h:1098
bool operator()(const NameValue &nv)
Definition: SdoConfiguration.h:1100
std::string m_name
Definition: SdoConfiguration.h:1104
nv_name(const char *name)
Definition: SdoConfiguration.h:1099
Functor for Organization.
Definition: SdoConfiguration.h:1115
org_id(const char *id)
Definition: SdoConfiguration.h:1116
bool operator()(const Organization_ptr &o)
Definition: SdoConfiguration.h:1120
const std::string m_id
Definition: SdoConfiguration.h:1126