Go to the documentation of this file.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
00023
00025 class Connection
00026 {
00027 public:
00028 virtual ~Connection(void) {}
00029
00030
00036 virtual const char* what(void) const = 0;
00037
00038
00048 virtual bool connect(const char* device, long baudrate) = 0;
00049
00050
00054 virtual void disconnect(void) = 0;
00055
00056
00065 virtual bool setBaudrate(long baudrate) = 0;
00066
00067
00075 virtual long baudrate(void) const = 0;
00076
00077
00084 virtual bool isConnected(void) const = 0;
00085
00086
00095 virtual int send(const char* data, size_t count) = 0;
00096
00097
00105 virtual int receive(char* data, size_t count, int timeout) = 0;
00106
00107
00113 virtual size_t size(void) const = 0;
00114
00115
00119 virtual void flush(void) = 0;
00120
00121
00127 virtual void clear(void) = 0;
00128
00129
00135 virtual void ungetc(const char ch) = 0;
00136 };
00137 }
00138
00139 #endif