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

Fork of libMiMic by Ryo Iizuka

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?

UserRevisionLine numberNew 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 }