Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: SmartRemote WifiFlexManager SmartRemote E7
Fork of HTTPServer by
Diff: HTTPConnection.h
- Revision:
- 4:d065642c32cc
- Parent:
- 3:d6224049b3bf
- Child:
- 13:aa5338a5e452
diff -r d6224049b3bf -r d065642c32cc HTTPConnection.h
--- a/HTTPConnection.h Tue May 28 01:56:14 2013 +0000
+++ b/HTTPConnection.h Tue May 28 21:20:58 2013 +0000
@@ -45,7 +45,6 @@
HTTP_RT_CONNECT /*!< CONNECT request */
} HTTPRequestType;
-
/** class HTTPConnection, encapsulates one connection being made throught the HTTPServer
*
*/
@@ -58,17 +57,21 @@
{
/** Specifies the request type received
*/
- HTTPRequestType request;
+ HTTPRequestType request;
/** The uri associated with the request.
*/
- std::string uri;
+ std::string uri;
/** Contains the HTTP/1.1 or HTTP/1.0 version requested by client.
*/
- std::string version;
+ std::string version;
/** Map of headers provided by the client in the form <HeaderName>:<HeaderValue>
*/
- std::map<std::string, std::string> headers;
+ std::map<std::string, std::string> headers;
+ /** Map of arguments that came with the uri string
+ */
+ std::map<std::string, std::string> args;
} HTTPMessage;
+
/** Public constructor for HTTPConnection objects.
*
*/
@@ -99,11 +102,37 @@
TCPSocketConnection m_Tcp;
HTTPMessage m_Msg;
+
+ /** parse a HTTP request line from the content of the buffer.
+ * @param buffer : the request received from the client in the form <RequestType> <uri> <Http Version>
+ * @returns -1 if the request is invalid or 0 if the request is valid
+ */
int parse(char *buffer);
+
+ /** parses the received string in \c buffer for HTTP request headers.
+ * @param buffer : buffer which contains the string to parse for headers.
+ * @returns -1 in case of an error, otherwise returns 0
+ */
int parseHeader(char *buffer);
int receiveHeaders(const char* buffer, int nBuffSize);
+
+ /** Function which receives a line from the current Socket
+ * @param szline : will contain one line received from the socket
+ * @param nMaxLen : the size of the buffer. If the line is longer than the buffer the line is cropped at the end.
+ * @param nTimeout : if the timeout elapses, only the portion that has been received within this time will be returned.
+ * @param szLineTerm : the \c end-of-line character to be used to detect the end of the line.
+ * @returns -1 in case of an error or timeout, -2 in case of an empty line or the number of received characters.
+ */
int receiveLine(char* szLine, int nMaxLen, int nTimeout = -1, char szLineTerm = '\n');
+
+ /** parse the receoved \c uri_string for arguments which will be stored in the \c args map.
+ * @parse uri_string : the uri string which was received from the client.
+ * @parse args : the args map which will receive the argument:value touples from the \c uri_string.
+ * @returns -1 if an error occured, otherwise returns 0.
+ */
+ int parseUriArgs(char *uri_string, map<string,string>& args);
+
};
#endif // __HTTPConnection_H__
\ No newline at end of file
