IPortService.h
Go to the documentation of this file.
00001 // -*- C++ -*-
00020 #ifndef RTC_LOCAL_IPORTSERVICE_H
00021 #define RTC_LOCAL_IPORTSERVICE_H
00022 
00023 #include <vector>
00024 #include <rtc/IRTC.h>
00025 
00026 namespace RTC
00027 {
00028 namespace Local
00029 {
00030   
00031   struct PortInterfaceProfile
00032   {
00033     char* instance_name;
00034     char* type_name;
00035     PortPolarity polarity;
00036   };
00037   
00038   typedef std::vector<PortInterfaceProfile*> PortInterfaceProfileList;
00039   class IPortService;
00040   typedef std::vector<IPortService*> PortServiceList;
00041   
00042   struct ConnectorProfile
00043   {
00044     char* name;
00045     UniqueIdentifier connector_id;
00046     PortServiceList ports;
00047     NVList properties;
00048   };
00049   
00050   typedef std::vector<ConnectorProfile*> ConnectorProfileList;
00051   class RTObject;
00052   
00053   struct PortProfile
00054   {
00055     char* name;
00056     PortInterfaceProfileList interfaces;
00057     IPortService* port_ref;
00058     ConnectorProfileList connector_profiles;
00059     RTObject* owner;
00060     NVList properties;
00061   };
00062   
00063   typedef std::vector<PortProfile*> PortProfileList;
00064   
00074   class IPortService
00075   {
00076   public:
00077     virtual ~IPortService() {};
00078     virtual PortProfile& get_port_profile() const = 0;
00079     virtual ConnectorProfileList& get_connector_profiles() const = 0;
00080     virtual ConnectorProfile&
00081     get_connector_profile(const UniqueIdentifier connector_id) const = 0;
00082     virtual ReturnCode_t connect(ConnectorProfile& connector_profile) = 0;
00083     virtual ReturnCode_t disconnect(const UniqueIdentifier connector_id) = 0;
00084     virtual ReturnCode_t
00085     notify_connect(ConnectorProfile& connector_profile) = 0;
00086     virtual ReturnCode_t
00087     notify_disconnect(const UniqueIdentifier connector_id) = 0;
00088     virtual ReturnCode_t disconnect_all() = 0;
00089   };
00090 };     // namespace Local
00091 };     // namespace RTC
00092 #endif // RTC_LOCAL_IPORTSERVICE_H
00093 


openrtm_aist
Author(s): Noriaki Ando
autogenerated on Thu Aug 27 2015 14:16:37