SdoOrganization.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00020 #ifndef SdoOrganization_h
00021 #define SdoOrganization_h
00022 
00023 #include <rtm/RTC.h>
00024 #include <rtm/idl/SDOPackageSkel.h>
00025 #include <string>
00026 #include <ace/Guard_T.h>
00027 #include <ace/Thread_Mutex.h>
00028 
00043 namespace SDOPackage
00044 {
00068   class Organization_impl 
00069   {
00070   public:
00086     Organization_impl();
00087     
00103     virtual ~Organization_impl();
00104     
00105     //============================================================
00106     //
00107     // <<< CORBA interfaces >>>
00108     //
00109     //============================================================
00139     virtual char* get_organization_id()
00140       throw (CORBA::SystemException,
00141              InvalidParameter, NotAvailable, InternalError);
00142     
00185     virtual CORBA::Boolean
00186     set_organization_property(const OrganizationProperty& org_property)
00187       throw (CORBA::SystemException,
00188              InvalidParameter, NotAvailable, InternalError);
00189     
00222     virtual OrganizationProperty* get_organization_property()
00223       throw (CORBA::SystemException,
00224              NotAvailable, InternalError);
00225     
00265     virtual CORBA::Any* get_organization_property_value(const char* name)
00266       throw (CORBA::SystemException,
00267              InvalidParameter, NotAvailable, InternalError);
00268     
00313     virtual CORBA::Boolean
00314     set_organization_property_value(const char* name, const CORBA::Any& value)
00315       throw (CORBA::SystemException,
00316              InvalidParameter, NotAvailable, InternalError);
00317     
00358     virtual CORBA::Boolean remove_organization_property(const char* name)
00359       throw (CORBA::SystemException,
00360              InvalidParameter, NotAvailable, InternalError);
00361     
00399     virtual CORBA::Boolean add_members(const SDOList& sdo_list)
00400       throw (CORBA::SystemException,
00401              InvalidParameter, NotAvailable, InternalError);
00402     
00435     virtual SDOList* get_members()
00436       throw (CORBA::SystemException,
00437              NotAvailable, InternalError);
00438     
00482     virtual CORBA::Boolean set_members(const SDOList& sdos)
00483       throw (CORBA::SystemException,
00484              InvalidParameter, NotAvailable, InternalError);
00485     
00522     virtual CORBA::Boolean remove_member(const char* id)
00523       throw (CORBA::SystemException,
00524              InvalidParameter, NotAvailable, InternalError);
00525     
00556     virtual SDOSystemElement_ptr get_owner()
00557       throw (CORBA::SystemException,
00558              NotAvailable, InternalError);
00559     
00601     virtual CORBA::Boolean set_owner(SDOSystemElement_ptr sdo)
00602       throw (CORBA::SystemException,
00603              InvalidParameter, NotAvailable, InternalError);
00604     
00640     virtual DependencyType get_dependency()
00641       throw (CORBA::SystemException,
00642              NotAvailable, InternalError);
00643     
00686     virtual CORBA::Boolean set_dependency(DependencyType dependency)
00687       throw (CORBA::SystemException,
00688              NotAvailable, InternalError);
00689     
00690     // end of CORBA interface definition
00691     //============================================================
00692     
00693   protected:
00701     char* m_pId;
00702     
00710     SDOPackage::SDOList m_memberList;
00711     
00719     SDOPackage::SDOSystemElement_var m_varOwner;
00720     
00795     SDOPackage::DependencyType m_dependency;
00796     
00815     SDOPackage::OrganizationProperty m_orgProperty;
00816     ACE_Thread_Mutex m_org_mutex;
00817     
00818     typedef ACE_Guard<ACE_Thread_Mutex> Guard;
00819     
00827     struct nv_name
00828     {
00829       nv_name(const char* name) : m_name(name) {};
00830       bool operator()(const NameValue& nv)
00831       {
00832         return m_name == std::string(nv.name);
00833       }
00834       std::string m_name;
00835     };
00836     
00844     struct sdo_id
00845     {
00846       sdo_id(const char* id) : m_id(id) {};
00847       bool operator()(const SDO_ptr sdo)
00848       {
00849         std::string id(sdo->get_sdo_id());
00850         return m_id == id;
00851       }
00852       std::string m_id;
00853     };
00854   };
00855 };
00856 
00857 #endif // namespace SDOPackage

Generated on Wed May 21 05:17:34 2008 for OpenRTM by  doxygen 1.5.3