各ピンへのread/writeを提供するサーバサンプル

Dependencies:   NySNICInterface mbed-rtos mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers HTTPServer.h Source File

HTTPServer.h

00001 #ifndef HTTP_SERVER
00002 #define HTTP_SERVER
00003 
00004 #include <map>
00005 #include "mbed.h"
00006 #include "SNIC_WifiInterface.h"
00007 #include "TCPSocketServer.h"
00008 #include "TCPSocketConnection.h"
00009 #include "RequestHandler.h"
00010 #include "RPCObject.h"
00011 
00012 #define HTTP_REPLY_MAX_STRING 1024
00013 
00014 enum
00015 {
00016     HTTP_200_OK         = 200,
00017     HTTP_400_BADREQUEST = 400,
00018     HTTP_404_NOTFOUND   = 404
00019 };
00020 
00021 
00022 class HTTPServer
00023 {
00024     public :
00025         HTTPServer();
00026         virtual ~HTTPServer();
00027         bool init(int port);
00028         void run();
00029         void add_request_handler(char *name, RequestHandler* handler);
00030         
00031     private :
00032         void handle_request(char* buffer);
00033         void create_response(char* buffer);
00034         TCPSocketServer socketserver;
00035         std::map<char*, RequestHandler*, bool(*)(char*, char*)> handlers;
00036         RPCObject object;
00037         char reply[HTTP_REPLY_MAX_STRING];
00038         int response_code;
00039 };
00040 
00041 #endif
00042