This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088

Fork of libMiMic by Ryo Iizuka

Committer:
furutani
Date:
Fri Feb 24 04:43:41 2017 +0000
Revision:
115:fa79286d8ea4
Parent:
45:63d6aa80e26d
Delete missing include line.; Add parameter "timeout" to TCPSocket::connect(), precv().; Fix to send ARP request to default gateway when connecting to IP address of different segment.;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nyatla 3:0a94993be1f6 1 #pragma once
nyatla 3:0a94993be1f6 2 ////////////////////////////////////////////////////////////////////////////////
nyatla 3:0a94993be1f6 3 // Httpd.h
nyatla 3:0a94993be1f6 4 ////////////////////////////////////////////////////////////////////////////////
nyatla 3:0a94993be1f6 5
nyatla 3:0a94993be1f6 6 #include "NyLPC_net.h"
nyatla 3:0a94993be1f6 7
nyatla 3:0a94993be1f6 8 namespace MiMic
nyatla 3:0a94993be1f6 9 {
nyatla 3:0a94993be1f6 10 class HttpdConnection;
nyatla 3:0a94993be1f6 11 class Httpd
nyatla 3:0a94993be1f6 12 {
nyatla 3:0a94993be1f6 13 private:
nyatla 3:0a94993be1f6 14 struct Httpd2{
nyatla 3:0a94993be1f6 15 NyLPC_TcHttpd_t super;
nyatla 3:0a94993be1f6 16 Httpd* _parent;
nyatla 3:0a94993be1f6 17 }_inst;
nyatla 3:0a94993be1f6 18 static void onRequestHandler(NyLPC_TcHttpdConnection_t* i_connection);
nyatla 45:63d6aa80e26d 19 static int taskHandler(void* i_param);
nyatla 3:0a94993be1f6 20 public:
nyatla 45:63d6aa80e26d 21 /**
nyatla 45:63d6aa80e26d 22 * This function create an instance with service port number.
nyatla 45:63d6aa80e26d 23 * @param i_port_number
nyatla 45:63d6aa80e26d 24 * HTTP service port number.
nyatla 45:63d6aa80e26d 25 */
nyatla 3:0a94993be1f6 26 Httpd(int i_port_number);
nyatla 3:0a94993be1f6 27 virtual ~Httpd();
nyatla 45:63d6aa80e26d 28 /**
nyatla 45:63d6aa80e26d 29 * This function starts HTTP listen loop on current task.
nyatla 45:63d6aa80e26d 30 * The function never return.
nyatla 45:63d6aa80e26d 31 * Must not use after called loopTask function.
nyatla 45:63d6aa80e26d 32 */
nyatla 3:0a94993be1f6 33 void loop();
nyatla 45:63d6aa80e26d 34 /**
nyatla 45:63d6aa80e26d 35 * This function starts HTTP listen loop on a new task.
nyatla 45:63d6aa80e26d 36 */
nyatla 45:63d6aa80e26d 37 void loopTask();
nyatla 45:63d6aa80e26d 38 /**
nyatla 45:63d6aa80e26d 39 * This function gets a lock.
nyatla 45:63d6aa80e26d 40 * This function is used for exclusive process in request handler or other task.
nyatla 45:63d6aa80e26d 41 */
nyatla 45:63d6aa80e26d 42 void lock();
nyatla 45:63d6aa80e26d 43 /**
nyatla 45:63d6aa80e26d 44 * This function releases a lock.
nyatla 45:63d6aa80e26d 45 */
nyatla 45:63d6aa80e26d 46 void unlock();
nyatla 45:63d6aa80e26d 47 /**
nyatla 45:63d6aa80e26d 48 * The handler function for HTTP request.
nyatla 45:63d6aa80e26d 49 * Must implement the function in extended class.
nyatla 45:63d6aa80e26d 50 * This is called when HTTPD received HTTP request.
nyatla 45:63d6aa80e26d 51 * The function may be call in multiple.
nyatla 45:63d6aa80e26d 52 * @param i_connection
nyatla 45:63d6aa80e26d 53 * HTTP connection object that contain "prefetched" HTTP stream.
nyatla 45:63d6aa80e26d 54 */
nyatla 3:0a94993be1f6 55 virtual void onRequest(HttpdConnection& i_connection)=0;
nyatla 19:33b9ba0859ee 56 public:
nyatla 19:33b9ba0859ee 57 const static int SIZE_OF_HTTP_BUF=512;
nyatla 19:33b9ba0859ee 58 /**
nyatla 45:63d6aa80e26d 59 * This buffer is a shared buffer for HTTPD modules.
nyatla 45:63d6aa80e26d 60 * It will be use for temporary buffer or work memory.
nyatla 45:63d6aa80e26d 61 * Must lock before using.
nyatla 19:33b9ba0859ee 62 */
nyatla 19:33b9ba0859ee 63 static char _shared_buf[SIZE_OF_HTTP_BUF];
nyatla 3:0a94993be1f6 64 };
nyatla 3:0a94993be1f6 65 }