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);
81const int HEADER_BUFFER_SIZE=256;
83class WebClientServlet:
public servlet,
public TimeOutElement
87 virtual int AddToSelectSet(fd_set &rd_set, fd_set &wr_set, fd_set &er_set);
88 virtual void ProcessSelectResult(fd_set &rd_set, fd_set &wr_set, fd_set &er_set);
90 virtual void TimeElementEvent();
93 eWebClientState_t m_cur_state;
94 eWebResponse_t m_resp_state;
102 const char *m_pMethodStr;
105 char HeaderBuffer[HEADER_BUFFER_SIZE];
109 uint32_t m_ResultCode;
116 servlet_list * m_pWhoToReJoin;
121virtual bool ResponseReader(
int fd);
123virtual void StartQuery();
127virtual void ActionComplete(eWebClientAction_t action);
130 const char* ActionText(eWebClientAction_t action);
137void CoreStart(
const char* pUrl,
buffer_object * result_buffer, uint32_t timeout);
143WebClientServlet(servlet_list * List_To_Join=0);
145uint32_t GetResultCode(){
return m_ResultCode; };
147void NewGet(
const char* pUrl,
buffer_object * result_buffer, uint32_t timeout=0,
const char* additional_header=0);
148void NewGet(
ParsedURI *pUri,
buffer_object * result_buffer, uint32_t timeout=0,
const char* additional_header=0);
149void CommonPutPost(
const char * method,
const char * pUrl,
const char* pType,
NBString & payload,
buffer_object * result_buffer, uint32_t timeout=0,
const char* additional_header=0);
150void CommonPutPost(
const char * method,
const char * pUrl,
const char* pType,
const char* payload,
buffer_object * result_buffer, uint32_t timeout=0,
const char* additional_header=0);
151void CommonPutPost(
const char * method,
ParsedURI *pUri,
const char* pType,
NBString & payload,
buffer_object * result_buffer, uint32_t timeout=0,
const char* additional_header=0);
152void CommonPutPost(
const char * method,
ParsedURI *pUri,
const char* pType,
const char* payload,
buffer_object * result_buffer, uint32_t timeout=0,
const char* additional_header=0);
154inline void NewPost(
const char * pUrl,
const char* pType,
NBString & payload,
buffer_object * result_buffer, uint32_t timeout=0,
const char* additional_header=0)
155 { CommonPutPost(
"POST",pUrl,pType,payload,result_buffer,timeout,additional_header); }
156inline void NewPost(
const char * pUrl,
const char* pType,
const char* payload,
buffer_object * result_buffer, uint32_t timeout=0,
const char* additional_header=0)
157 { CommonPutPost(
"POST",pUrl,pType,payload,result_buffer,timeout,additional_header); }
158inline void NewPost(
ParsedURI *pUri,
const char* pType,
NBString & payload,
buffer_object * result_buffer, uint32_t timeout=0,
const char* additional_header=0)
159 { CommonPutPost(
"POST",pUri,pType,payload,result_buffer,timeout,additional_header); }
160inline void NewPost(
ParsedURI *pUri,
const char* pType,
const char* payload,
buffer_object * result_buffer, uint32_t timeout=0,
const char* additional_header=0)
161 { CommonPutPost(
"POST",pUri,pType,payload,result_buffer,timeout,additional_header); }
162inline void NewPut(
const char * pUrl,
const char* pType,
NBString & payload,
buffer_object * result_buffer, uint32_t timeout=0,
const char* additional_header=0)
163 { CommonPutPost(
"PUT",pUrl,pType,payload,result_buffer,timeout,additional_header); }
164inline void NewPut(
const char * pUrl,
const char* pType,
const char* payload,
buffer_object * result_buffer, uint32_t timeout=0,
const char* additional_header=0)
165 { CommonPutPost(
"PUT",pUrl,pType,payload,result_buffer,timeout,additional_header); }
166inline void NewPut(
ParsedURI *pUri,
const char* pType,
NBString & payload,
buffer_object * result_buffer, uint32_t timeout=0,
const char* additional_header=0)
167 { CommonPutPost(
"PUT",pUri,pType,payload,result_buffer,timeout,additional_header); }
168inline void NewPut(
ParsedURI *pUri,
const char* pType,
const char* payload,
buffer_object * result_buffer, uint32_t timeout=0,
const char* additional_header=0)
169 { CommonPutPost(
"PUT",pUri,pType,payload,result_buffer,timeout,additional_header); }
Lightweight alternative to C++ CString class.
Definition nbstring.h:118
Parsed Uniform Resource Identifier Class (URI)
Definition http_funcs.h:62
TickTimeout objects are used to facilitate sequential function calls with timeout parameters that nee...
Definition nbrtos.h:162
Base class for web client response buffers.
Definition web_buffers.h:20
An OS_CRIT object is used to establish critical sections of code that can only be run by one task at ...
Definition nbrtos.h:1106
Semaphores are used to control access to shared resources or or to communicate between tasks in a mul...
Definition nbrtos.h:407