This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088
Fork of libMiMic by
mbed/mod/ModJsonRpc.h@75:2a18df0ef111, 2014-06-14 (annotated)
- Committer:
- nyatla
- Date:
- Sat Jun 14 15:55:57 2014 +0000
- Revision:
- 75:2a18df0ef111
- Parent:
- 72:c118a7aa37a3
- Child:
- 76:b375b3d750d8
MiMicCore r360???; mbed???????
Who changed what in which revision?
User | Revision | Line number | New 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 | 75:2a18df0ef111 | 51 | void dispatchRpc(); |
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 | } |