OpenRTM-aist  1.2.1
SdoOrganization.h
Go to the documentation of this file.
1 // -*- C++ -*-
20 #ifndef RTC_SDOORGANIZATION_H
21 #define RTC_SDOORGANIZATION_H
22 
23 #include <rtm/RTC.h>
24 #include <rtm/idl/SDOPackageSkel.h>
25 #include <rtm/SystemLogger.h>
26 #include <string>
27 #include <coil/Mutex.h>
28 #include <coil/Guard.h>
29 
45 #ifdef WIN32
46 #pragma warning( disable : 4290 )
47 #endif
48 
49 namespace SDOPackage
50 {
75  : public virtual POA_SDOPackage::Organization,
76  public virtual PortableServer::RefCountServantBase
77  {
78  typedef coil::Mutex Mutex;
79  typedef coil::Guard<Mutex> Guard;
80  public:
96 #ifdef ORB_IS_RTORB
97  Organization_impl(RTC::RTObject_ptr sdo);
98 #endif // ORB_IS_RTROB
99  Organization_impl(SDOSystemElement_ptr sdo);
100 
116  virtual ~Organization_impl(void);
117 
118  //============================================================
119  //
120  // <<< CORBA interfaces >>>
121  //
122  //============================================================
152  virtual char* get_organization_id()
153  throw (CORBA::SystemException,
154  InvalidParameter, NotAvailable, InternalError);
155 
198  virtual CORBA::Boolean
199  add_organization_property(const OrganizationProperty& org_property)
200  throw (CORBA::SystemException,
201  InvalidParameter, NotAvailable, InternalError);
202 
235  virtual OrganizationProperty* get_organization_property()
236  throw (CORBA::SystemException,
237  NotAvailable, InternalError);
238 
278  virtual CORBA::Any* get_organization_property_value(const char* name)
279  throw (CORBA::SystemException,
280  InvalidParameter, NotAvailable, InternalError);
281 
326  virtual CORBA::Boolean
327  set_organization_property_value(const char* name, const CORBA::Any& value)
328  throw (CORBA::SystemException,
329  InvalidParameter, NotAvailable, InternalError);
330 
371  virtual CORBA::Boolean remove_organization_property(const char* name)
372  throw (CORBA::SystemException,
373  InvalidParameter, NotAvailable, InternalError);
374 
412  virtual CORBA::Boolean add_members(const SDOList& sdo_list)
413  throw (CORBA::SystemException,
414  InvalidParameter, NotAvailable, InternalError);
415 
448  virtual SDOList* get_members()
449  throw (CORBA::SystemException,
450  NotAvailable, InternalError);
451 
495  virtual CORBA::Boolean set_members(const SDOList& sdos)
496  throw (CORBA::SystemException,
497  InvalidParameter, NotAvailable, InternalError);
498 
535  virtual CORBA::Boolean remove_member(const char* id)
536  throw (CORBA::SystemException,
537  InvalidParameter, NotAvailable, InternalError);
538 
569  virtual SDOSystemElement_ptr get_owner()
570  throw (CORBA::SystemException,
571  NotAvailable, InternalError);
572 
614  virtual CORBA::Boolean set_owner(SDOSystemElement_ptr sdo)
615  throw (CORBA::SystemException,
616  InvalidParameter, NotAvailable, InternalError);
617 
653  virtual DependencyType get_dependency()
654  throw (CORBA::SystemException,
655  NotAvailable, InternalError);
656 
699  virtual CORBA::Boolean set_dependency(DependencyType dependency)
700  throw (CORBA::SystemException,
701  NotAvailable, InternalError);
702 
703  // end of CORBA interface definition
704  //============================================================
705  Organization_ptr getObjRef() {return m_objref;};
706 
707  protected:
709  Organization_var m_objref;
717  std::string m_pId;
718 
726  SDOPackage::SDOList m_memberList;
727 
735  SDOPackage::SDOSystemElement_var m_varOwner;
736 
811  SDOPackage::DependencyType m_dependency;
812 
831  SDOPackage::OrganizationProperty m_orgProperty;
832  Mutex m_org_mutex;
833 
841  struct nv_name
842  {
843  nv_name(const char* name) : m_name(name) {};
844  bool operator()(const NameValue& nv)
845  {
846  return m_name == std::string(nv.name);
847  }
848  std::string m_name;
849  }; // struct nv_name
850 
858  struct sdo_id
859  {
860  sdo_id(const char* id) : m_id(id) {};
861  bool operator()(const SDO_ptr sdo)
862  {
863  CORBA::String_var id(sdo->get_sdo_id());
864  return m_id == (const char*)id;
865  }
866  std::string m_id;
867  }; // struct sdo_id
868  }; // class Organization_impl
869 }; // namespace SDOPackage
870 
871 #ifdef WIN32
872 #pragma warning( default : 4290 )
873 #endif
874 
875 #endif // RTC_NAMESPACE SDOPACKAGE
virtual CORBA::Boolean add_members(const SDOList &sdo_list)
[CORBA interface] Add the member SDOs
nv_name(const char *name)
Definition: SdoOrganization.h:843
virtual char * get_organization_id()
[CORBA interface] Get Organization ID
Mutex class.
Definition: Mutex.h:40
RT component logger class.
bool operator()(const SDO_ptr sdo)
Definition: SdoOrganization.h:861
virtual CORBA::Boolean set_dependency(DependencyType dependency)
[CORBA interface] Set the DependencyType of the Organization
virtual DependencyType get_dependency()
[CORBA interface] Get the DependencyType of the Organization
virtual OrganizationProperty * get_organization_property()
[CORBA interface] Get OrganizationProperty
virtual ~Organization_impl(void)
Virtual destructor.
SDO Package.
Definition: InPortConsumer.h:33
virtual CORBA::Boolean set_owner(SDOSystemElement_ptr sdo)
[CORBA interface] Set the owner to the Organization
Mutex m_org_mutex
Definition: SdoOrganization.h:832
virtual CORBA::Boolean remove_member(const char *id)
[CORBA interface] Remove member SDO from Organization
::RTC::Logger rtclog
Definition: SdoOrganization.h:705
std::string m_pId
The identifier of the Organization.
Definition: SdoOrganization.h:717
SDOPackage::OrganizationProperty m_orgProperty
Organization property.
Definition: SdoOrganization.h:831
Guard template class.
Organization_var m_objref
Definition: SdoOrganization.h:709
virtual CORBA::Boolean set_members(const SDOList &sdos)
[CORBA interface] Set SDO
Organization implementation class.
Definition: SdoOrganization.h:74
virtual CORBA::Boolean add_organization_property(const OrganizationProperty &org_property)
[CORBA interface] Set OrganizationProperty
Functor for NameValue.
Definition: SdoOrganization.h:841
Organization_ptr getObjRef()
Definition: SdoOrganization.h:705
Logger class.
Definition: SystemLogger.h:99
Functor for SDO.
Definition: SdoOrganization.h:858
SDOPackage::SDOList m_memberList
A list of SDO members associated with the Organization.
Definition: SdoOrganization.h:726
bool operator()(const NameValue &nv)
Definition: SdoOrganization.h:844
Organization_impl(SDOSystemElement_ptr sdo)
Constructor.
virtual CORBA::Boolean remove_organization_property(const char *name)
[CORBA interface] Remove specified OrganizationProperty
std::string m_name
Definition: SdoOrganization.h:848
SDOPackage::SDOSystemElement_var m_varOwner
The owner of the Organization.
Definition: SdoOrganization.h:735
std::string m_id
Definition: SdoOrganization.h:866
virtual SDOList * get_members()
[CORBA interface] Get the member list of the Organization
RTComponent header.
SDOPackage::DependencyType m_dependency
Dependency type.
Definition: SdoOrganization.h:811
virtual CORBA::Any * get_organization_property_value(const char *name)
[CORBA interface] Get specified value of OrganizationProperty
Guard template class.
Definition: Guard.h:41
sdo_id(const char *id)
Definition: SdoOrganization.h:860
virtual CORBA::Boolean set_organization_property_value(const char *name, const CORBA::Any &value)
[CORBA interface] Set specified value of OrganizationProperty
virtual SDOSystemElement_ptr get_owner()
[CORBA interface] Get the owner of Organization