00001 // -*- C++ -*- 00020 #ifndef RTC_PORTCALLBACK_H 00021 #define RTC_PORTCALLBACK_H 00022 00023 class cdrStream; 00024 00025 namespace RTC 00026 { 00027 //============================================================ 00028 // callback functor base classes 00055 class ConnectionCallback 00056 { 00057 public: 00071 virtual ~ConnectionCallback(void){} 00072 00094 virtual void operator()(RTC::ConnectorProfile& profile) = 0; 00095 }; 00096 00097 00124 class DisconnectCallback 00125 { 00126 public: 00140 virtual ~DisconnectCallback(void){} 00162 virtual void operator()(const char* connector_id) = 0; 00163 }; 00164 00165 00191 template <class DataType> 00192 class OnWrite 00193 { 00194 public: 00208 virtual ~OnWrite(void){} 00209 00230 virtual void operator()(const DataType& value) = 0; 00231 }; 00232 00233 00257 template <class DataType> 00258 struct OnWriteConvert 00259 { 00273 virtual ~OnWriteConvert(void){} 00274 00297 virtual DataType operator()(const DataType& value) = 0; 00298 }; 00299 00300 00322 template <class DataType> 00323 struct OnRead 00324 { 00340 virtual ~OnRead(void){} 00341 00358 virtual void operator()() = 0; 00359 }; 00360 00384 template <class DataType> 00385 struct OnReadConvert 00386 { 00402 virtual ~OnReadConvert(void){} 00403 00430 virtual DataType operator()(const DataType& value) = 0; 00431 }; 00432 00433 00434 }; 00435 #endif // RTC_PORTCALLBACK_H