My Project
 All Classes Files Functions Variables Enumerations Enumerator Friends Macros Pages
NetReadStr.h
Go to the documentation of this file.
1 #ifndef NETREADSTR_H
2 #define NETREADSTR_H
3 
11 #include "gcp/control/code/unix/libunix_src/common/netbuf.h"
12 #include "gcp/control/code/unix/libunix_src/common/netobj.h"
13 
14 #define NET_READ_HANDLER(fn) void (fn)(void* arg)
15 
16 #ifdef NET_ERROR_HANDLER
17 #undef NET_ERROR_HANDLER
18 #endif
19 
20 #define NET_ERROR_HANDLER(fn) void (fn)(void* arg)
21 
22 namespace gcp {
23 
24  namespace control {
25  class NetReadStr;
26  };
27 
28  namespace util {
29 
30  class NetReadStr {
31  public:
32 
33  enum NetReadId {
34 
35  // The message byte-count is being read
36 
37  NET_READ_SIZE = gcp::control::NetReadStr::NET_READ_SIZE,
38 
39  // The message body is being read
40 
41  NET_READ_DATA = gcp::control::NetReadStr::NET_READ_DATA,
42 
43  // The message has been completely read
44 
45  NET_READ_DONE = gcp::control::NetReadStr::NET_READ_DONE,
46 
47  // Closed connection detected at start of message
48 
49  NET_READ_CLOSED = gcp::control::NetReadStr::NET_READ_CLOSED,
50 
51  // I/O error detected while reading
52 
53  NET_READ_ERROR = gcp::control::NetReadStr::NET_READ_ERROR
54  };
55 
59  NetReadStr();
60 
64  NetReadStr(int fd, unsigned int size);
65 
69  virtual ~NetReadStr();
70 
74  void attach(int fd);
75 
80  void setBuffer(void* buffer, unsigned int size);
81 
86  NetReadId read();
87 
92  NetReadId read(int fd);
93 
97  NetReadId state();
98 
103  int getFd();
104 
108  void startGet(int *opcode);
109 
113  void endGet();
114 
118  void getChar(int ndata, unsigned char *data);
119 
123  void getShort(int ndata, unsigned short *data);
124 
128  void getInt(int ndata, unsigned int *data);
129 
133  void getFloat(int ndata, float *data);
134 
138  void getDouble(int ndata, double *data);
139 
143  void getObj(const NetObjTable* types, int id, void *obj);
144 
148  void incNget(int nbytes);
149 
153  void installReadHandler(NET_READ_HANDLER(*handler), void* arg);
154 
158  void installErrorHandler(NET_ERROR_HANDLER(*handler), void* arg);
159 
160  private:
161 
165  void privateConstructor(int fd, unsigned int size);
166 
170  gcp::control::NetReadStr* netStream_;
171 
175  bool netBufAllocated_;
176 
180  bool attached_;
181 
186  NetReadId privateRead(int fd);
187 
191  NetReadId privateState(gcp::control::NetReadStr::NetReadId id);
192 
193  // Handler functions
194 
198  NET_READ_HANDLER(*readHandler_);
199 
203  void* readArg_;
204 
208  NET_READ_HANDLER(*errorHandler_);
209 
213  void* errorArg_;
214 
215  }; // End class NetReadStr
216 
217  } // End namespace util
218 } // End namespace gcp
219 
220 
221 #endif // End #ifndef
222 
223 
NetReadId state()
Definition: NetReadStr.cc:217
void setBuffer(void *buffer, unsigned int size)
Definition: NetReadStr.cc:97
void endGet()
Definition: NetReadStr.cc:242
NetReadStr()
Definition: NetReadStr.cc:17
void installReadHandler(NET_READ_HANDLER(*handler), void *arg)
Definition: NetReadStr.cc:61
void getInt(int ndata, unsigned int *data)
Definition: NetReadStr.cc:269
NetReadId read()
Definition: NetReadStr.cc:112
virtual ~NetReadStr()
Definition: NetReadStr.cc:79
void getFloat(int ndata, float *data)
Definition: NetReadStr.cc:278
void incNget(int nbytes)
Definition: NetReadStr.cc:305
void startGet(int *opcode)
Definition: NetReadStr.cc:233
void getChar(int ndata, unsigned char *data)
Definition: NetReadStr.cc:251
Definition: netobj.h:69
void getObj(const NetObjTable *types, int id, void *obj)
Definition: NetReadStr.cc:296
Definition: tVideoCapabilitiesEml.cc:67
Definition: netbuf.h:129
void attach(int fd)
Definition: NetReadStr.cc:88
void getDouble(int ndata, double *data)
Definition: NetReadStr.cc:287
void installErrorHandler(NET_ERROR_HANDLER(*handler), void *arg)
Definition: NetReadStr.cc:70
void getShort(int ndata, unsigned short *data)
Definition: NetReadStr.cc:260
Definition: NetReadStr.h:30
int getFd()
Definition: NetReadStr.cc:225