6 #ifndef _CIVETWEB_SERVER_H_
7 #define _CIVETWEB_SERVER_H_
27 virtual ~CivetHandler() {
37 virtual bool handleGet(CivetServer *server,
struct mg_connection *conn);
46 virtual bool handlePost(CivetServer *server,
struct mg_connection *conn);
55 virtual bool handlePut(CivetServer *server,
struct mg_connection *conn);
64 virtual bool handleDelete(CivetServer *server,
struct mg_connection *conn);
87 CivetServer(
const char **options,
const struct mg_callbacks *callbacks = 0);
92 virtual ~CivetServer();
106 const struct mg_context *getContext()
const {
122 void addHandler(
const std::string &uri, CivetHandler *handler);
131 void removeHandler(
const std::string &uri);
141 static int getCookie(
struct mg_connection *conn,
const std::string &cookieName, std::string &cookieValue);
149 static const char* getHeader(
struct mg_connection *conn,
const std::string &headerName);
164 static bool getParam(
struct mg_connection *conn,
const char *name,
165 std::string &dst,
size_t occurrence=0);
180 static bool getParam(
const std::string &data,
const char *name,
181 std::string &dst,
size_t occurrence=0) {
182 return getParam(data.c_str(), data.length(), name, dst, occurrence);
199 static bool getParam(
const char *data,
size_t data_len,
const char *name,
200 std::string &dst,
size_t occurrence=0);
213 static void urlDecode(
const std::string &src, std::string &dst,
bool is_form_url_encoded=
true) {
214 urlDecode(src.c_str(), src.length(), dst, is_form_url_encoded);
228 static void urlDecode(
const char *src,
size_t src_len, std::string &dst,
bool is_form_url_encoded=
true);
240 static void urlDecode(
const char *src, std::string &dst,
bool is_form_url_encoded=
true);
249 static void urlEncode(
const std::string &src, std::string &dst,
bool append=
false) {
250 urlEncode(src.c_str(), src.length(), dst, append);
260 static void urlEncode(
const char *src, std::string &dst,
bool append=
false);
270 static void urlEncode(
const char *src,
size_t src_len, std::string &dst,
bool append=
false);
274 struct mg_context *context;
286 static int requestHandler(
struct mg_connection *conn,
void *cbdata);