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: HTTPServerExample HTTPServerHelloWorld PoorMansScope Lab3 ... more
Revision 6:d753966e4d97, committed 2010-08-05
- Comitter:
- donatien
- Date:
- Thu Aug 05 15:12:27 2010 +0000
- Parent:
- 5:d45c35d26466
- Commit message:
Changed in this revision
Binary file LPC1768/HTTPServer.ar has changed
--- a/LPC1768/dbg/dbg.h Fri Jul 09 14:45:18 2010 +0000
+++ b/LPC1768/dbg/dbg.h Thu Aug 05 15:12:27 2010 +0000
@@ -21,6 +21,10 @@
THE SOFTWARE.
*/
+/** \file
+Debugging helpers header file
+*/
+
//#ifdef DBG_H
//#define DBG_H
@@ -28,6 +32,11 @@
#define __DEBUG
#endif
+/*!
+ \def __DEBUG
+ To define to enable debugging in one file
+*/
+
#ifdef __DEBUG
#ifndef __DEBUGSTREAM
@@ -47,8 +56,15 @@
#undef DBG
#undef DBG_END
#undef BREAK
+
+///Debug output (if enabled), same syntax as printf, with heading info
#define DBG(...) do{ DebugStream::debug("[%s:%s@%d] ", __FILE__, __FUNCTION__, __LINE__); DebugStream::debug(__VA_ARGS__); } while(0);
+
+///Debug output (if enabled), same syntax as printf, no heading info
+#define DBGL(...) do{ DebugStream::debug(__VA_ARGS__); } while(0);
#define DBG_END DebugStream::release
+
+///Break point usin serial debug interface (if debug enbaled)
#define BREAK() DebugStream::breakPoint(__FILE__, __LINE__)
#endif
--- a/LPC1768/services/http/server/HTTPRequestDispatcher.h Fri Jul 09 14:45:18 2010 +0000 +++ b/LPC1768/services/http/server/HTTPRequestDispatcher.h Thu Aug 05 15:12:27 2010 +0000 @@ -28,6 +28,7 @@ #include "api/TCPSocket.h" #include "HTTPServer.h" +#include "core/netservice.h" #include "mbed.h"
--- a/LPC1768/services/http/server/HTTPRequestHandler.h Fri Jul 09 14:45:18 2010 +0000
+++ b/LPC1768/services/http/server/HTTPRequestHandler.h Thu Aug 05 15:12:27 2010 +0000
@@ -21,6 +21,10 @@
THE SOFTWARE.
*/
+/**
+HTTP Request Handler header file.
+*/
+
#ifndef HTTP_REQUEST_HANDLER_H
#define HTTP_REQUEST_HANDLER_H
@@ -28,6 +32,7 @@
//#include "HTTPServer.h"
#include "mbed.h"
+#include "core/netservice.h"
#include <string>
using std::string;
@@ -35,9 +40,11 @@
#include <map>
using std::map;
+///HTTP Server's generic request handler
class HTTPRequestHandler : public NetService
{
public:
+ ///Instantiated by the HTTP Server
HTTPRequestHandler(const char* rootPath, const char* path, TCPSocket* pTCPSocket);
virtual ~HTTPRequestHandler();
--- a/LPC1768/services/http/server/HTTPServer.h Fri Jul 09 14:45:18 2010 +0000
+++ b/LPC1768/services/http/server/HTTPServer.h Thu Aug 05 15:12:27 2010 +0000
@@ -21,13 +21,17 @@
THE SOFTWARE.
*/
+/** \file
+HTTP Server header file
+*/
+
#ifndef HTTP_SERVER_H
#define HTTP_SERVER_H
class HTTPRequestHandler;
class HTTPRequestDispatcher;
-#include "if/net/net.h"
+#include "core/net.h"
#include "HTTPRequestHandler.h"
#include "HTTPRequestDispatcher.h"
@@ -37,9 +41,17 @@
#include <map>
using std::map;
+///A simple HTTP server implementation
+/**
+The HTTPServer is composed of:
+- The actual server (HTTPServer)
+- A request dispatcher, instanciated on each request (HTTPRequestDispatcher)
+- Request handlers instanciated by the dispatcher(deriving from HTTPRequestHandler)
+*/
class HTTPServer
{
public:
+ ///Instantiates the HTTP Server
HTTPServer();
~HTTPServer();
@@ -57,10 +69,21 @@
}
};
+ ///Adds a handler
+ /**
+ Appends a handler to the handlers list
+ @param T : class which will be instanciated to serve these requests
+ @param path : requests starting with this path will be served using this handler
+ */
template<typename T>
void addHandler(const char* path) //Template decl in header
{ m_lpHandlers[path] = &T::inst; }
+ ///Starts listening
+ /**
+ Binds server to a specific port and starts listening
+ @param port : port on which to listen for incoming connections
+ */
void bind(int port = 80);
private:
--- a/LPC1768/services/http/util/url.h Fri Jul 09 14:45:18 2010 +0000 +++ b/LPC1768/services/http/util/url.h Thu Aug 05 15:12:27 2010 +0000 @@ -24,7 +24,7 @@ #ifndef URL_H #define URL_H -#include "if/net/ipaddr.h" +#include "core/ipaddr.h" #include <string> using std::string;
Binary file LPC2368/HTTPServer.ar has changed
--- a/LPC2368/dbg/dbg.h Fri Jul 09 14:45:18 2010 +0000
+++ b/LPC2368/dbg/dbg.h Thu Aug 05 15:12:27 2010 +0000
@@ -21,6 +21,10 @@
THE SOFTWARE.
*/
+/** \file
+Debugging helpers header file
+*/
+
//#ifdef DBG_H
//#define DBG_H
@@ -28,6 +32,11 @@
#define __DEBUG
#endif
+/*!
+ \def __DEBUG
+ To define to enable debugging in one file
+*/
+
#ifdef __DEBUG
#ifndef __DEBUGSTREAM
@@ -47,8 +56,15 @@
#undef DBG
#undef DBG_END
#undef BREAK
+
+///Debug output (if enabled), same syntax as printf, with heading info
#define DBG(...) do{ DebugStream::debug("[%s:%s@%d] ", __FILE__, __FUNCTION__, __LINE__); DebugStream::debug(__VA_ARGS__); } while(0);
+
+///Debug output (if enabled), same syntax as printf, no heading info
+#define DBGL(...) do{ DebugStream::debug(__VA_ARGS__); } while(0);
#define DBG_END DebugStream::release
+
+///Break point usin serial debug interface (if debug enbaled)
#define BREAK() DebugStream::breakPoint(__FILE__, __LINE__)
#endif
--- a/LPC2368/services/http/server/HTTPRequestDispatcher.h Fri Jul 09 14:45:18 2010 +0000 +++ b/LPC2368/services/http/server/HTTPRequestDispatcher.h Thu Aug 05 15:12:27 2010 +0000 @@ -28,6 +28,7 @@ #include "api/TCPSocket.h" #include "HTTPServer.h" +#include "core/netservice.h" #include "mbed.h"
--- a/LPC2368/services/http/server/HTTPRequestHandler.h Fri Jul 09 14:45:18 2010 +0000
+++ b/LPC2368/services/http/server/HTTPRequestHandler.h Thu Aug 05 15:12:27 2010 +0000
@@ -21,6 +21,10 @@
THE SOFTWARE.
*/
+/**
+HTTP Request Handler header file.
+*/
+
#ifndef HTTP_REQUEST_HANDLER_H
#define HTTP_REQUEST_HANDLER_H
@@ -28,6 +32,7 @@
//#include "HTTPServer.h"
#include "mbed.h"
+#include "core/netservice.h"
#include <string>
using std::string;
@@ -35,9 +40,11 @@
#include <map>
using std::map;
+///HTTP Server's generic request handler
class HTTPRequestHandler : public NetService
{
public:
+ ///Instantiated by the HTTP Server
HTTPRequestHandler(const char* rootPath, const char* path, TCPSocket* pTCPSocket);
virtual ~HTTPRequestHandler();
--- a/LPC2368/services/http/server/HTTPServer.h Fri Jul 09 14:45:18 2010 +0000
+++ b/LPC2368/services/http/server/HTTPServer.h Thu Aug 05 15:12:27 2010 +0000
@@ -21,13 +21,17 @@
THE SOFTWARE.
*/
+/** \file
+HTTP Server header file
+*/
+
#ifndef HTTP_SERVER_H
#define HTTP_SERVER_H
class HTTPRequestHandler;
class HTTPRequestDispatcher;
-#include "if/net/net.h"
+#include "core/net.h"
#include "HTTPRequestHandler.h"
#include "HTTPRequestDispatcher.h"
@@ -37,9 +41,17 @@
#include <map>
using std::map;
+///A simple HTTP server implementation
+/**
+The HTTPServer is composed of:
+- The actual server (HTTPServer)
+- A request dispatcher, instanciated on each request (HTTPRequestDispatcher)
+- Request handlers instanciated by the dispatcher(deriving from HTTPRequestHandler)
+*/
class HTTPServer
{
public:
+ ///Instantiates the HTTP Server
HTTPServer();
~HTTPServer();
@@ -57,10 +69,21 @@
}
};
+ ///Adds a handler
+ /**
+ Appends a handler to the handlers list
+ @param T : class which will be instanciated to serve these requests
+ @param path : requests starting with this path will be served using this handler
+ */
template<typename T>
void addHandler(const char* path) //Template decl in header
{ m_lpHandlers[path] = &T::inst; }
+ ///Starts listening
+ /**
+ Binds server to a specific port and starts listening
+ @param port : port on which to listen for incoming connections
+ */
void bind(int port = 80);
private:
--- a/LPC2368/services/http/util/url.h Fri Jul 09 14:45:18 2010 +0000 +++ b/LPC2368/services/http/util/url.h Thu Aug 05 15:12:27 2010 +0000 @@ -24,7 +24,7 @@ #ifndef URL_H #define URL_H -#include "if/net/ipaddr.h" +#include "core/ipaddr.h" #include <string> using std::string;