Donatien Garnier / NetServicesLPC1768

Dependents:   SimpleLCDClock readCard2Twitter_http AnalogClock_StepperMotor_NTP ServoCamV1

Committer:
donatien
Date:
Mon May 24 10:24:38 2010 +0000
Revision:
0:a2dd0ba6cd2d
Child:
1:7043cc0db03c

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
donatien 0:a2dd0ba6cd2d 1 #ifndef HTTP_SERVER_H
donatien 0:a2dd0ba6cd2d 2 #define HTTP_SERVER_H
donatien 0:a2dd0ba6cd2d 3
donatien 0:a2dd0ba6cd2d 4 class HttpRequestHandler;
donatien 0:a2dd0ba6cd2d 5 class HttpRequestDispatcher;
donatien 0:a2dd0ba6cd2d 6
donatien 0:a2dd0ba6cd2d 7 #include "if/net/net.h"
donatien 0:a2dd0ba6cd2d 8 #include "HttpRequestHandler.h"
donatien 0:a2dd0ba6cd2d 9 #include "HttpRequestDispatcher.h"
donatien 0:a2dd0ba6cd2d 10
donatien 0:a2dd0ba6cd2d 11 #include <string>
donatien 0:a2dd0ba6cd2d 12 using std::string;
donatien 0:a2dd0ba6cd2d 13
donatien 0:a2dd0ba6cd2d 14 #include <map>
donatien 0:a2dd0ba6cd2d 15 using std::map;
donatien 0:a2dd0ba6cd2d 16
donatien 0:a2dd0ba6cd2d 17 class HttpServer
donatien 0:a2dd0ba6cd2d 18 {
donatien 0:a2dd0ba6cd2d 19 public:
donatien 0:a2dd0ba6cd2d 20 HttpServer();
donatien 0:a2dd0ba6cd2d 21 ~HttpServer();
donatien 0:a2dd0ba6cd2d 22
donatien 0:a2dd0ba6cd2d 23 template<typename T>
donatien 0:a2dd0ba6cd2d 24 void addHandler(const char* path) //Template decl in header
donatien 0:a2dd0ba6cd2d 25 { m_lpHandlers[path] = &T::inst; }
donatien 0:a2dd0ba6cd2d 26
donatien 0:a2dd0ba6cd2d 27 void bind(int port = 80);
donatien 0:a2dd0ba6cd2d 28
donatien 0:a2dd0ba6cd2d 29 private:
donatien 0:a2dd0ba6cd2d 30 friend class HttpRequestDispatcher;
donatien 0:a2dd0ba6cd2d 31
donatien 0:a2dd0ba6cd2d 32 void onTcpSocketEvent(TcpSocketEvent e);
donatien 0:a2dd0ba6cd2d 33
donatien 0:a2dd0ba6cd2d 34 TcpSocket* m_pTcpSocket;
donatien 0:a2dd0ba6cd2d 35 map< string, HttpRequestHandler*(*)(const char*, const char*, TcpSocket*) > m_lpHandlers;
donatien 0:a2dd0ba6cd2d 36
donatien 0:a2dd0ba6cd2d 37 };
donatien 0:a2dd0ba6cd2d 38
donatien 0:a2dd0ba6cd2d 39 //Including handlers here for more convenience
donatien 0:a2dd0ba6cd2d 40 #include "impl/RpcHandler.h"
donatien 0:a2dd0ba6cd2d 41 #include "impl/FSHandler.h"
donatien 0:a2dd0ba6cd2d 42 #include "impl/SimpleHandler.h"
donatien 0:a2dd0ba6cd2d 43
donatien 0:a2dd0ba6cd2d 44 #endif