00001
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef SdoOrganization_h
00037 #define SdoOrganization_h
00038
00039 #include <rtm/RTC.h>
00040 #include <rtm/idl/SDOPackageSkel.h>
00041 #include <string>
00042 #include <ace/Guard_T.h>
00043 #include <ace/Thread_Mutex.h>
00044
00045
00046
00047 namespace SDOPackage
00048 {
00049
00050 class Organization_impl
00051 {
00052 public:
00053 Organization_impl();
00054 virtual ~Organization_impl();
00055
00056
00057
00058
00059
00060
00085 virtual char* get_organization_id()
00086 throw (InvalidParameter, NotAvailable, InternalError);
00087
00115 virtual OrganizationProperty* get_organization_property()
00116 throw (NotAvailable, InternalError);
00117
00148 virtual CORBA::Any* get_organization_property_value(const char* name)
00149 throw (InvalidParameter, NotAvailable, InternalError);
00150
00185 virtual CORBA::Boolean
00186 set_organization_property(const OrganizationProperty& org_property)
00187 throw (InvalidParameter, NotAvailable, InternalError);
00188
00226 virtual CORBA::Boolean
00227 set_organization_property_value(const char* name, const CORBA::Any& value)
00228 throw (InvalidParameter, NotAvailable, InternalError);
00229
00263 virtual CORBA::Boolean remove_organization_property(const char* name)
00264 throw (InvalidParameter, NotAvailable, InternalError);
00265
00291 virtual SDOSystemElement_ptr get_owner()
00292 throw (NotAvailable, InternalError);
00293
00327 virtual CORBA::Boolean set_owner(SDOSystemElement_ptr sdo)
00328 throw (InvalidParameter, NotAvailable, InternalError);
00329
00357 virtual SDOList* get_members()
00358 throw (NotAvailable, InternalError);
00359
00396 virtual CORBA::Boolean set_members(const SDOList& sdos)
00397 throw (InvalidParameter, NotAvailable, InternalError);
00398
00429 virtual CORBA::Boolean add_members(const SDOList& sdo_list)
00430 throw (InvalidParameter, NotAvailable, InternalError);
00431
00461 virtual CORBA::Boolean remove_member(const char* id)
00462 throw (InvalidParameter, NotAvailable, InternalError);
00463
00494 virtual DependencyType get_dependency()
00495 throw (NotAvailable, InternalError);
00496
00532 virtual CORBA::Boolean set_dependency(DependencyType dependency)
00533 throw (NotAvailable, InternalError);
00534
00535
00536
00537
00538
00539
00540 protected:
00552 char* m_pId;
00553
00566 SDOPackage::SDOList m_memberList;
00567
00579 SDOPackage::SDOSystemElement_var m_varOwner;
00580
00655 SDOPackage::DependencyType m_dependency;
00656
00679 SDOPackage::OrganizationProperty m_orgProperty;
00680 ACE_Thread_Mutex m_org_mutex;
00681
00682 typedef ACE_Guard<ACE_Thread_Mutex> Guard;
00683
00684 struct nv_name
00685 {
00686 nv_name(const char* name) : m_name(name) {};
00687 bool operator()(const NameValue& nv)
00688 {
00689 return m_name == std::string(nv.name);
00690 }
00691 std::string m_name;
00692 };
00693
00694 struct sdo_id
00695 {
00696 sdo_id(const char* id) : m_id(id) {};
00697 bool operator()(const SDO_ptr sdo)
00698 {
00699 std::string id(sdo->get_sdo_id());
00700 return m_id == id;
00701 }
00702 std::string m_id;
00703 };
00704 };
00705
00706
00707 };
00708
00709 #endif // namespace SDOPackage