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: WiFlyHTTPServerSample MultiThreadingHTTPServer
HTTPConnection.h
- Committer:
- leihen
- Date:
- 2013-05-26
- Revision:
- 1:6b7472d5e9ee
- Parent:
- 0:7a2421e63e74
- Child:
- 2:8653bbcf7e58
File content as of revision 1:6b7472d5e9ee:
/* HTTPConnection.h */
#ifndef __HTTPConnection_H__
#define __HTTPConnection_H__
#include "mbed.h"
#include "TCPSocketConnection.h"
#include <string>
#include <map>
class HTTPServer;
enum HTTPRequestType
{
HTTP_RT_GET,
HTTP_RT_POST,
HTTP_RT_PUT,
HTTP_RT_OPTIONS,
HTTP_RT_HEAD,
HTTP_RT_DELETE,
HTTP_RT_TRACE,
HTTP_RT_CONNECT
};
struct HTTPMessage
{
HTTPRequestType request;
std::string uri;
std::string version;
std::map<string, string> headers;
};
/** class HTTPConnection, encapsulates one connection being made throught the HTTPServer
*
*/
class HTTPConnection {
public:
/** public constructor
*
*/
HTTPConnection ();
~HTTPConnection();
/** function to close this connection. To be called from internally.
*/
void close();
/** query if this connection is closed and can be deleted.
@returns true if connection is closed.
*/
bool is_closed();
/**
Polling function
@returns -1 if connection is not required anymore. Can happen if a fault occured or if the connection is not needed anymore.
*/
int poll();
protected:
friend class HTTPServer;
TCPSocketConnection m_Tcp;
HTTPMessage m_Msg;
int parse(const char *buffer);
int parseHeader(const char *buffer);
int receiveHeaders(const char* buffer, int nBuffSize);
int receiveLine(char* szLine, int nMaxLen, int nTimeout = -1, char szLineTerm = '\n');
};
#endif // __HTTPConnection_H__