This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088
Fork of libMiMic by
mbed/mod/ModWebSocket.h@72:c118a7aa37a3, 2014-06-13 (annotated)
- Committer:
- nyatla
- Date:
- Fri Jun 13 11:06:33 2014 +0000
- Revision:
- 72:c118a7aa37a3
- Parent:
- 58:03b89038b21a
- Child:
- 81:e5e4f2264d24
mbedAPI???????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
nyatla | 58:03b89038b21a | 1 | #pragma once |
nyatla | 58:03b89038b21a | 2 | #include "NyLPC_net.h" |
nyatla | 58:03b89038b21a | 3 | #include "ModBaseClass.h" |
nyatla | 58:03b89038b21a | 4 | #include "HttpdConnection.h" |
nyatla | 58:03b89038b21a | 5 | #include "Httpd.h" |
nyatla | 58:03b89038b21a | 6 | #include "Net.h" |
nyatla | 58:03b89038b21a | 7 | |
nyatla | 58:03b89038b21a | 8 | namespace MiMic |
nyatla | 58:03b89038b21a | 9 | { |
nyatla | 58:03b89038b21a | 10 | class HttpdConnection; |
nyatla | 58:03b89038b21a | 11 | |
nyatla | 58:03b89038b21a | 12 | /** |
nyatla | 58:03b89038b21a | 13 | * This class is Websocket module. |
nyatla | 58:03b89038b21a | 14 | * The class provides 3 services. |
nyatla | 58:03b89038b21a | 15 | * <ul> |
nyatla | 58:03b89038b21a | 16 | * <li>d.xml - a device description.</li> |
nyatla | 58:03b89038b21a | 17 | * <li>control/xx - soap handler</li> |
nyatla | 58:03b89038b21a | 18 | * <li>event/xx -event handler.</li> |
nyatla | 58:03b89038b21a | 19 | * </ul> |
nyatla | 58:03b89038b21a | 20 | */ |
nyatla | 58:03b89038b21a | 21 | class ModWebSocket:ModBaseClass |
nyatla | 58:03b89038b21a | 22 | { |
nyatla | 58:03b89038b21a | 23 | private: |
nyatla | 58:03b89038b21a | 24 | protected: |
nyatla | 58:03b89038b21a | 25 | NyLPC_TcModWebSocket_t* _mod; |
nyatla | 58:03b89038b21a | 26 | public: |
nyatla | 58:03b89038b21a | 27 | ModWebSocket(); |
nyatla | 58:03b89038b21a | 28 | ModWebSocket(const char* i_path); |
nyatla | 58:03b89038b21a | 29 | virtual ~ModWebSocket(); |
nyatla | 58:03b89038b21a | 30 | void setParam(const char* i_path); |
nyatla | 58:03b89038b21a | 31 | /** |
nyatla | 58:03b89038b21a | 32 | * This function executes websocket negotiation to the current connection. |
nyatla | 58:03b89038b21a | 33 | * Should be handle websocket session if function successful. |
nyatla | 58:03b89038b21a | 34 | * @return |
nyatla | 58:03b89038b21a | 35 | * true if negotiation successful;otherwishe false. |
nyatla | 58:03b89038b21a | 36 | */ |
nyatla | 58:03b89038b21a | 37 | bool execute(HttpdConnection& i_connection); |
nyatla | 58:03b89038b21a | 38 | /** |
nyatla | 58:03b89038b21a | 39 | * Write data to websocket stream. |
nyatla | 58:03b89038b21a | 40 | * @return |
nyatla | 58:03b89038b21a | 41 | * true if successful;otherwishe false and connection closed. |
nyatla | 58:03b89038b21a | 42 | */ |
nyatla | 58:03b89038b21a | 43 | bool write(const void* i_tx_buf,int i_tx_size); |
nyatla | 58:03b89038b21a | 44 | /** |
nyatla | 58:03b89038b21a | 45 | * This function sends data to websocket stream. |
nyatla | 58:03b89038b21a | 46 | * @param i_fmt |
nyatla | 58:03b89038b21a | 47 | * printf like format text. |
nyatla | 58:03b89038b21a | 48 | * @param ... |
nyatla | 58:03b89038b21a | 49 | * argument list for i_fmt |
nyatla | 58:03b89038b21a | 50 | */ |
nyatla | 72:c118a7aa37a3 | 51 | bool writeFormat(const char* i_fmt,...); |
nyatla | 58:03b89038b21a | 52 | |
nyatla | 58:03b89038b21a | 53 | /** |
nyatla | 58:03b89038b21a | 54 | * This function receives data from websocket stream. |
nyatla | 58:03b89038b21a | 55 | * @return |
nyatla | 58:03b89038b21a | 56 | * <ul> |
nyatla | 58:03b89038b21a | 57 | * <li>r<0 Error. The socket already closed. |
nyatla | 58:03b89038b21a | 58 | * <li>r==0 Timeout. The connection is continued. |
nyatla | 58:03b89038b21a | 59 | * <li>r>0 Success. Received data size. |
nyatla | 58:03b89038b21a | 60 | * </ul> |
nyatla | 58:03b89038b21a | 61 | * If an Error found, application should be call close and exit handler. |
nyatla | 58:03b89038b21a | 62 | */ |
nyatla | 58:03b89038b21a | 63 | int read(void* i_rx_buf,int i_rx_size); |
nyatla | 58:03b89038b21a | 64 | /** |
nyatla | 58:03b89038b21a | 65 | * This function terminates websocket connection. |
nyatla | 58:03b89038b21a | 66 | * Should be called if execute function successful. |
nyatla | 58:03b89038b21a | 67 | */ |
nyatla | 58:03b89038b21a | 68 | void close(); |
nyatla | 58:03b89038b21a | 69 | /** |
nyatla | 58:03b89038b21a | 70 | * This function returns read function status. |
nyatla | 58:03b89038b21a | 71 | * This is to confirm that "read" can call without blocking. |
nyatla | 58:03b89038b21a | 72 | * @return |
nyatla | 58:03b89038b21a | 73 | * true if can be call "read" with no-wait. otherwise, "read" might be wait. |
nyatla | 58:03b89038b21a | 74 | */ |
nyatla | 58:03b89038b21a | 75 | bool canRead(); |
nyatla | 58:03b89038b21a | 76 | |
nyatla | 58:03b89038b21a | 77 | |
nyatla | 58:03b89038b21a | 78 | }; |
nyatla | 58:03b89038b21a | 79 | } |