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 <rtm/SystemLogger.h>
00026 #include <string>
00027 #include <coil/Mutex.h>
00028 #include <coil/Guard.h>
00029 
00045 #ifdef WIN32
00046 #pragma warning( disable : 4290 )
00047 #endif
00048 
00049 namespace SDOPackage
00050 {
00074   class Organization_impl
00075     : public virtual POA_SDOPackage::Organization,
00076       public virtual PortableServer::RefCountServantBase
00077   {
00078     typedef coil::Mutex Mutex;
00079     typedef coil::Guard<Mutex> Guard;
00080   public:
00096     Organization_impl(SDOSystemElement_ptr sdo);
00097     
00113     virtual ~Organization_impl(void);
00114     
00115     //============================================================
00116     //
00117     // <<< CORBA interfaces >>>
00118     //
00119     //============================================================
00149     virtual char* get_organization_id()
00150       throw (CORBA::SystemException,
00151              InvalidParameter, NotAvailable, InternalError);
00152     
00195     virtual CORBA::Boolean
00196     add_organization_property(const OrganizationProperty& org_property)
00197       throw (CORBA::SystemException,
00198              InvalidParameter, NotAvailable, InternalError);
00199     
00232     virtual OrganizationProperty* get_organization_property()
00233       throw (CORBA::SystemException,
00234              NotAvailable, InternalError);
00235     
00275     virtual CORBA::Any* get_organization_property_value(const char* name)
00276       throw (CORBA::SystemException,
00277              InvalidParameter, NotAvailable, InternalError);
00278     
00323     virtual CORBA::Boolean
00324     set_organization_property_value(const char* name, const CORBA::Any& value)
00325       throw (CORBA::SystemException,
00326              InvalidParameter, NotAvailable, InternalError);
00327     
00368     virtual CORBA::Boolean remove_organization_property(const char* name)
00369       throw (CORBA::SystemException,
00370              InvalidParameter, NotAvailable, InternalError);
00371     
00409     virtual CORBA::Boolean add_members(const SDOList& sdo_list)
00410       throw (CORBA::SystemException,
00411              InvalidParameter, NotAvailable, InternalError);
00412     
00445     virtual SDOList* get_members()
00446       throw (CORBA::SystemException,
00447              NotAvailable, InternalError);
00448     
00492     virtual CORBA::Boolean set_members(const SDOList& sdos)
00493       throw (CORBA::SystemException,
00494              InvalidParameter, NotAvailable, InternalError);
00495     
00532     virtual CORBA::Boolean remove_member(const char* id)
00533       throw (CORBA::SystemException,
00534              InvalidParameter, NotAvailable, InternalError);
00535     
00566     virtual SDOSystemElement_ptr get_owner()
00567       throw (CORBA::SystemException,
00568              NotAvailable, InternalError);
00569     
00611     virtual CORBA::Boolean set_owner(SDOSystemElement_ptr sdo)
00612       throw (CORBA::SystemException,
00613              InvalidParameter, NotAvailable, InternalError);
00614     
00650     virtual DependencyType get_dependency()
00651       throw (CORBA::SystemException,
00652              NotAvailable, InternalError);
00653     
00696     virtual CORBA::Boolean set_dependency(DependencyType dependency)
00697       throw (CORBA::SystemException,
00698              NotAvailable, InternalError);
00699     
00700     // end of CORBA interface definition
00701     //============================================================
00702     Organization_ptr getObjRef() {return m_objref;};
00703 
00704   protected:
00705     ::RTC::Logger rtclog;
00706     Organization_var m_objref;
00714     char* m_pId;
00715     
00723     SDOPackage::SDOList m_memberList;
00724     
00732     SDOPackage::SDOSystemElement_var m_varOwner;
00733     
00808     SDOPackage::DependencyType m_dependency;
00809     
00828     SDOPackage::OrganizationProperty m_orgProperty;
00829     Mutex m_org_mutex;
00830     
00838     struct nv_name
00839     {
00840       nv_name(const char* name) : m_name(name) {};
00841       bool operator()(const NameValue& nv)
00842       {
00843         return m_name == std::string(nv.name);
00844       }
00845       std::string m_name;
00846     };  // struct nv_name
00847     
00855     struct sdo_id
00856     {
00857       sdo_id(const char* id) : m_id(id) {};
00858       bool operator()(const SDO_ptr sdo)
00859       {
00860         CORBA::String_var id(sdo->get_sdo_id());
00861         return m_id == (const char*)id;
00862       }
00863       std::string m_id;
00864     };  // struct sdo_id
00865   };  // class Organization_impl
00866 };  // namespace SDOPackage
00867 
00868 #ifdef WIN32
00869 #pragma warning( default : 4290 )
00870 #endif
00871 
00872 #endif // namespace SDOPackage

Generated on Sun May 24 14:08:45 2009 for OpenRTM by  doxygen 1.5.3