aboutsummaryrefslogtreecommitdiff
path: root/src/client.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/client.h')
-rw-r--r--src/client.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/client.h b/src/client.h
new file mode 100644
index 0000000..5947521
--- /dev/null
+++ b/src/client.h
@@ -0,0 +1,63 @@
1#ifndef BU_CLIENT_H
2#define BU_CLIENT_H
3
4#include <stdint.h>
5
6#include "bu/fstring.h"
7
8namespace Bu
9{
10 class Protocol;
11 class Socket;
12
13 /**
14 *
15 */
16 class Client
17 {
18 public:
19 Client( Bu::Socket *pSocket );
20 virtual ~Client();
21
22 void processInput();
23 void processOutput();
24
25 Bu::FString &getInput();
26 Bu::FString &getOutput();
27 void write( const void *pData, int nBytes );
28 void write( int8_t nData );
29 void write( int16_t nData );
30 void write( int32_t nData );
31 void write( int64_t nData );
32 void write( uint8_t nData );
33 void write( uint16_t nData );
34 void write( uint32_t nData );
35 void write( uint64_t nData );
36 void read( void *pData, int nBytes );
37 void peek( void *pData, int nBytes );
38 void seek( int nBytes );
39 long getInputSize();
40
41 void setProtocol( Protocol *pProto );
42 Bu::Protocol *getProtocol();
43 void clearProtocol();
44
45 bool isOpen();
46
47 const Bu::Socket *getSocket() const;
48
49 /**
50 *@todo Make this not suck.
51 */
52 void disconnect();
53
54 private:
55 Bu::Socket *pSocket;
56 Bu::Protocol *pProto;
57 Bu::FString sReadBuf;
58 int nRBOffset;
59 Bu::FString sWriteBuf;
60 };
61}
62
63#endif