10#include <webclient/http_funcs.h>
28 servlet(servlet_list *whereToAdd);
33 virtual int AddToSelectSet(fd_set &rd_set, fd_set &wr_set, fd_set &er_set) = 0;
34 virtual void ProcessSelectResult(fd_set &rd_set, fd_set &wr_set, fd_set &er_set) = 0;
35 friend class servlet_list;
47 void add(servlet *ps);
48 void remove(servlet *ps);
49 void run_once_through_select_loop(
int max_timeout_ticks);
80const int HEADER_BUFFER_SIZE=256;
82class WebClientServlet:
public servlet,
public TimeOutElement
86 virtual int AddToSelectSet(fd_set &rd_set, fd_set &wr_set, fd_set &er_set);
87 virtual void ProcessSelectResult(fd_set &rd_set, fd_set &wr_set, fd_set &er_set);
89 virtual void TimeElementEvent();
92 eWebClientState_t m_cur_state;
93 eWebResponse_t m_resp_state;
102 char HeaderBuffer[HEADER_BUFFER_SIZE];
106 uint32_t m_ResultCode;
108 TickTimeout m_waketime;
109 TickTimeout m_responsetimeout;
113 servlet_list * m_pWhoToReJoin;
118virtual bool ResponseReader(
int fd);
120virtual void StartQuery();
124virtual void ActionComplete(eWebClientAction_t action);
127 const char* ActionText(eWebClientAction_t action);
131void DisconnectTil(TickTimeout & tt);
134void CoreStart(
const char* pUrl,
buffer_object * result_buffer, uint32_t timeout);
139WebClientServlet(servlet_list * List_To_Join=0);
141uint32_t GetResultCode(){
return m_ResultCode; };
143void NewGet(
const char* pUrl,
buffer_object * result_buffer, uint32_t timeout=0,
const char* additional_header=0);
144void NewPost(
const char * pUrl,
const char* pType,
NBString & payload,
buffer_object * result_buffer, uint32_t timeout=0,
const char* additional_header=0);
145void NewPost(
const char * pUrl,
const char* pType,
const char* payload,
buffer_object * result_buffer, uint32_t timeout=0,
const char* additional_header=0);
Lightweight alternative to C++ CString class.
Definition nbstring.h:118
Parsed Uniform Resource Identifier Class (URI)
Definition http_funcs.h:62
Base class for web client response buffers.
Definition web_buffers.h:20