00001 #ifndef QRK_CONNECTION_H
00002 #define QRK_CONNECTION_H
00003
00013 #include <cstddef>
00014
00015
00016 namespace qrk
00017 {
00018 enum {
00019 ReceiveTimeout = -1,
00020 ErrorLastIndex = -2,
00021 };
00022
00026 class Connection
00027 {
00028 public:
00029 virtual ~Connection(void) {}
00030
00031
00037 virtual const char* what(void) const = 0;
00038
00039
00049 virtual bool connect(const char* device, long baudrate) = 0;
00050
00051
00055 virtual void disconnect(void) = 0;
00056
00057
00066 virtual bool setBaudrate(long baudrate) = 0;
00067
00068
00076 virtual long baudrate(void) const = 0;
00077
00078
00085 virtual bool isConnected(void) const = 0;
00086
00087
00096 virtual int send(const char* data, size_t count) = 0;
00097
00098
00106 virtual int receive(char* data, size_t count, int timeout) = 0;
00107
00108
00114 virtual size_t size(void) const = 0;
00115
00116
00120 virtual void flush(void) = 0;
00121
00122
00128 virtual void clear(void) = 0;
00129
00130
00136 virtual void ungetc(const char ch) = 0;
00137 };
00138 }
00139
00140 #endif