All Classes Namespaces Files Functions Variables Enumerations Enumerator
libs/connection/ConnectionRecorder.h
Go to the documentation of this file.
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 */