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
Child:
75:2a18df0ef111
mbedAPI???????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nyatla 72:c118a7aa37a3 1 #include "NyLPC_net.h"
nyatla 72:c118a7aa37a3 2 #include "ModBaseClass.h"
nyatla 72:c118a7aa37a3 3 #include "HttpdConnection.h"
nyatla 72:c118a7aa37a3 4 #include "Httpd.h"
nyatla 72:c118a7aa37a3 5 #include "Net.h"
nyatla 72:c118a7aa37a3 6 #include <vector>
nyatla 72:c118a7aa37a3 7
nyatla 72:c118a7aa37a3 8 namespace MiMic
nyatla 72:c118a7aa37a3 9 {
nyatla 72:c118a7aa37a3 10 class HttpdConnection;
nyatla 72:c118a7aa37a3 11
nyatla 72:c118a7aa37a3 12 /**
nyatla 72:c118a7aa37a3 13 * This class is Websocket module.
nyatla 72:c118a7aa37a3 14 * The class provides 3 services.
nyatla 72:c118a7aa37a3 15 * <ul>
nyatla 72:c118a7aa37a3 16 * <li>d.xml - a device description.</li>
nyatla 72:c118a7aa37a3 17 * <li>control/xx - soap handler</li>
nyatla 72:c118a7aa37a3 18 * <li>event/xx -event handler.</li>
nyatla 72:c118a7aa37a3 19 * </ul>
nyatla 72:c118a7aa37a3 20 */
nyatla 72:c118a7aa37a3 21 class ModJsonRpc:ModBaseClass
nyatla 72:c118a7aa37a3 22 {
nyatla 72:c118a7aa37a3 23 private:
nyatla 72:c118a7aa37a3 24 public:
nyatla 72:c118a7aa37a3 25 const static int PARSE_ERROR=NyLPC_TJsonRpcErrorCode_PARSE_ERROR;
nyatla 72:c118a7aa37a3 26 const static int INVALID_REQUEST=NyLPC_TJsonRpcErrorCode_INVALID_REQUEST;
nyatla 72:c118a7aa37a3 27 const static int METHOD_NOT_FOUND=NyLPC_TJsonRpcErrorCode_METHOD_NOT_FOUND;
nyatla 72:c118a7aa37a3 28 const static int INVALID_PARAMS=NyLPC_TJsonRpcErrorCode_INVALID_PARAMS;
nyatla 72:c118a7aa37a3 29 const static int INTERNAL_ERROR=NyLPC_TJsonRpcErrorCode_INTERNAL_ERROR;
nyatla 72:c118a7aa37a3 30 const static int SERVER_ERROR_BASE=NyLPC_TJsonRpcErrorCode_SERVER_ERROR_BASE;
nyatla 72:c118a7aa37a3 31 private:
nyatla 72:c118a7aa37a3 32 void** _objects;
nyatla 72:c118a7aa37a3 33 const struct NyLPC_TJsonRpcClassDef** _rpc_table;
nyatla 72:c118a7aa37a3 34 protected:
nyatla 72:c118a7aa37a3 35 NyLPC_TcModJsonRpc_t* _mod;
nyatla 72:c118a7aa37a3 36 public:
nyatla 72:c118a7aa37a3 37 ModJsonRpc();
nyatla 72:c118a7aa37a3 38 /**
nyatla 72:c118a7aa37a3 39 * @param i_rpc_table
nyatla 72:c118a7aa37a3 40 * An address of Json RPC functions table.
nyatla 72:c118a7aa37a3 41 */
nyatla 72:c118a7aa37a3 42 ModJsonRpc(const char* i_path,const struct NyLPC_TJsonRpcClassDef** i_rpc_table);
nyatla 72:c118a7aa37a3 43 virtual ~ModJsonRpc();
nyatla 72:c118a7aa37a3 44 void setParam(const char* i_path,const struct NyLPC_TJsonRpcClassDef** i_rpc_table);
nyatla 72:c118a7aa37a3 45 /**
nyatla 72:c118a7aa37a3 46 * This function prepares Json rpc loop with websocket negotiation.
nyatla 72:c118a7aa37a3 47 * @return
nyatla 72:c118a7aa37a3 48 * true if successful;otherwishe false.
nyatla 72:c118a7aa37a3 49 */
nyatla 72:c118a7aa37a3 50 bool execute(HttpdConnection& i_connection);
nyatla 72:c118a7aa37a3 51 void dispatchRpcCall();
nyatla 72:c118a7aa37a3 52
nyatla 72:c118a7aa37a3 53 public:
nyatla 72:c118a7aa37a3 54 //for development
nyatla 72:c118a7aa37a3 55 int addObject(void* i_object);
nyatla 72:c118a7aa37a3 56 void* getObject(int i_oid);
nyatla 72:c118a7aa37a3 57 bool putResult(unsigned int i_id,const char* i_params_fmt,...);
nyatla 72:c118a7aa37a3 58 bool putError(unsigned int i_id,int i_code);
nyatla 72:c118a7aa37a3 59 };
nyatla 72:c118a7aa37a3 60 }