00001 #ifndef QRK_CONNECTION_RECORDER_H 00002 #define QRK_CONNECTION_RECORDER_H 00003 00015 #include <memory> 00016 #include "Connection.h" 00017 00018 00019 namespace qrk 00020 { 00022 class ConnectionRecorder : public Connection 00023 { 00024 public: 00025 enum { NoTimeout = -1 }; 00026 00027 ConnectionRecorder(Connection* con); 00028 ~ConnectionRecorder(void); 00029 00030 const char* what(void) const; 00031 00032 bool connect(const char* device, long baudrate); 00033 void disconnect(void); 00034 bool setBaudrate(long baudrate); 00035 long baudrate(void) const; 00036 bool isConnected(void) const; 00037 int send(const char* data, size_t count); 00038 int receive(char* data, size_t count, int timeout); 00039 size_t size(void) const; 00040 void flush(void); 00041 void clear(void); 00042 void ungetc(const char ch); 00043 00054 void setBasename(const char* basename); 00055 00056 private: 00057 ConnectionRecorder(void); 00058 ConnectionRecorder(const ConnectionRecorder& rhs); 00059 ConnectionRecorder& operator = (const ConnectionRecorder& rhs); 00060 00061 struct pImpl; 00062 std::auto_ptr<pImpl> pimpl; 00063 }; 00064 } 00065 00066 #endif /* !QRK_CONNECTION_RECORDER_H */
1.7.6.1-20120122