This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088
Fork of libMiMic by
mbed/Httpd.h@115:fa79286d8ea4, 2017-02-24 (annotated)
- 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?
User | Revision | Line number | New 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 | } |