1 #ifndef __WEBBUFFEREDREADER_GM_H__
2 #define __WEBBUFFEREDREADER_GM_H__
6 #include "strtargetbuffer.h"
7 #include "ringbuffer_slide.h"
8 #include "application_log.h"
13 inline bool GetTermedString(
char * outdata,
size_t maxlen,
char termchar1,
char termchar2);
14 inline bool GetDoubleTermedString(
char * outdata,
int maxlen,
char termchar1,
char termchar2);
15 inline bool GetTermedStringInPLace(
char ** outdata,
char termchars);
16 inline bool GetTermedString(
char * outdata,
int maxlen,
char * termchars);
23 inline void ReSet(
void);
24 inline int PumpCRRead(
char * data,
int maxdata,
Socket_TCP &sck);
25 inline int PumpHTTPHeaderRead(
char * data,
int maxdata,
Socket_TCP &sck);
31 template <
class SOCK_TYPE>
32 inline int ReadPump(SOCK_TYPE &sck)
35 size_t readsize = BufferAvailabe();
40 readsize = BufferAvailabe();
46 char * ff = GetBufferOpen();
47 int gotbytes = sck.RecvData(ff,(
int)readsize);
54 if(!sck.ErrorIs_WouldBlocking(gotbytes) )
57 LOGINFO(
"Http_BufferedReader::ReadPump->Socket Level Read Error %d %d %d %s",er,gotbytes,errno,sck.GetPeerName().get_ip_port().c_str());
73 LOGWARNING(
"Http_BufferedReader::ReadPump->Other End Closed Normal [%s]",sck.GetPeerName().get_ip_port().c_str());
78 std::string addstr = sck.GetPeerName().get_ip_port();
79 LOGWARNING(
"Http_BufferedReader::ReadPump->** Very Important** No Internal buffer left for read[%s] BufferSIze=[%d][%d]",
92 #include "http_bufferedreader.i"
94 #endif //__BUFFEREDREADER_GM_H__
Base functionality for a TCP connected socket This class is pretty useless by itself but it does hide...
This is an implemention of the membuffer with ring buffer interface on it....