41 enum MongooseRequestMethodCode {
52 typedef std::map<std::string, std::string> ServerOptionSet;
53 typedef std::vector<std::string> ServerOptionList;
54 typedef std::vector<const char *> ServerOptionStorage;
55 typedef std::map<std::string, std::string> RequestValueSet;
56 typedef std::map<std::string, int> ResponseValueIndex;
57 typedef std::vector< std::pair<std::string, std::string> > ResponseValueList;
58 typedef enum mg_event ServerHandlingEvent;
59 typedef std::map<std::string, MongooseRequestMethodCode> MethodMap;
60 typedef std::auto_ptr<MethodMap> MethodMapGuard;
78 int write(
const void *buf,
size_t len);
79 int write(
const std::string &text);
80 int read(
void *buf,
size_t len);
81 void sendAuthorizationRequest(
const std::string &nonce =
"");
82 bool getHeader(
const std::string &name, std::string &output)
const;
83 bool getCookie(
const std::string &name, std::string &output)
const;
94 const std::string getRequestMethod()
const;
95 MongooseRequestMethodCode getRequestMethodCode()
const;
96 const std::string getUri()
const;
97 const std::string getHttpVersion()
const;
100 const std::string getRemoteUser()
const;
101 const std::string getLogMessage()
const;
102 long getRemoteIp()
const;
103 int getRemotePort()
const;
104 int getStatusCode()
const;
106 bool getVar(
const std::string &name, std::string &output)
const;
107 static MongooseRequestMethodCode methodTextToCode(
const std::string &text);
119 virtual void write();
120 void setStatus(
int code,
const std::string &statusDesc =
"",
const std::string &httpVer =
"");
121 void setSetCookie(
const std::string &name,
const std::string &value);
122 void setLocation(
const std::string &value =
"");
123 void setContentType(
const std::string &value =
"");
124 bool getHeaderValue(
const std::string &name, std::string &output);
125 void addHeaderValue(
const std::string &name,
const std::string &value);
126 void setHeaderValue(
const std::string &name,
const std::string &value);
127 void setConnectionAlive(
bool keepAlive =
false);
128 void setCacheDisabled();
130 void addContent(
const std::string &text,
bool addLen =
true);
131 void addText(
const std::string &text);
132 void addTextLine(
const std::string &text);
133 static const char *getHttpStatusDesc(
int statusCode);
135 ResponseValueList *prepareHeaderValues();
136 void addHeaderValueToText(
const std::string &name,
const std::string &value);
140 std::auto_ptr<ResponseValueList> m_headerValues;
141 std::auto_ptr<ResponseValueIndex> m_headerValuesIndex;
142 std::auto_ptr<std::string> m_statusText;
151 void setOptions(
const ServerOptionSet &options);
152 void setOption(
const std::string &name,
const std::string &value);
153 void getOptions(ServerOptionSet &options)
const;
154 bool getOptionValue(
const std::string &name, std::string &value)
const;
155 void getOptionValue(
const std::string &name, std::string &value,
const std::string &defValue)
const;
156 static void getValidOptions(ServerOptionList &output);
157 static std::string getVersion();
158 static void calcMD5(
const std::string &text, std::string &output);
159 static MongooseRequestMethodCode methodTextToCode(
const std::string &text);
165 virtual void *handleEvent(ServerHandlingEvent eventCode,
174 const char **prepareOptions();
175 void unprepareOptions();
176 void checkMethodMap();
178 ServerOptionSet m_options;
179 ServerOptionStorage m_optionStorage;
180 bool m_statusRunning;
183 static MethodMapGuard m_methodMap;
188 #endif // _MONGCPP_H__