00001 // -*- C++ -*- 00020 #ifndef RTC_CONNECTORBASE_H 00021 #define RTC_CONNECTORBASE_H 00022 00023 #include <coil/stringutil.h> 00024 #include <coil/Properties.h> 00025 00026 #include <rtm/RTC.h> 00027 #include <rtm/CdrBufferBase.h> 00028 #include <rtm/DataPortStatus.h> 00029 #include <rtm/SystemLogger.h> 00030 00031 namespace RTC 00032 { 00043 class ConnectorInfo 00044 { 00045 public: 00071 ConnectorInfo(const char* name_, const char* id_, 00072 coil::vstring ports_, coil::Properties properties_) 00073 : name(name_), id(id_) 00074 , ports(ports_), properties(properties_) 00075 { 00076 } 00092 ConnectorInfo() 00093 { 00094 } 00102 std::string name; 00110 std::string id; 00118 coil::vstring ports; 00126 coil::Properties properties; 00127 }; 00128 00129 typedef std::vector<ConnectorInfo> ConnectorInfoList; 00130 00131 class ConnectorBase; 00132 typedef std::vector<ConnectorBase*> ConnectorList; 00133 00134 00156 class ConnectorBase 00157 : public DataPortStatus 00158 { 00159 public: 00160 DATAPORTSTATUS_ENUM 00161 00191 virtual ~ConnectorBase(){}; 00192 00206 virtual const ConnectorInfo& profile() = 0; 00207 00221 virtual const char* id() = 0; 00222 00236 virtual const char* name() = 0; 00237 00251 virtual ReturnCode disconnect() = 0; 00252 00266 virtual CdrBufferBase* getBuffer() = 0; 00267 00282 virtual void activate() = 0; 00283 00298 virtual void deactivate() = 0; 00299 00300 private: 00301 // non-copyable class 00302 // ConnectorBase(const ConnectorBase& x); 00303 // ConnectorBase& operator=(const ConnectorBase& x); 00304 }; 00305 }; // namespace RTC 00306 00307 #endif // RTC_CONNECTORBASE_H