All Classes Namespaces Files Functions Variables Enumerations Enumerator
libs/connection/Connection.h
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 /* !QRK_CONNECTION_H */