This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088
Fork of libMiMic by
core/net/httpd/mod/NyLPC_cModJsonRpc.h@72:c118a7aa37a3, 2014-06-13 (annotated)
- Committer:
- nyatla
- Date:
- Fri Jun 13 11:06:33 2014 +0000
- Revision:
- 72:c118a7aa37a3
- Parent:
- 71:855020258513
mbedAPI???????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
nyatla | 71:855020258513 | 1 | /********************************************************************************* |
nyatla | 71:855020258513 | 2 | * PROJECT: MiMic |
nyatla | 71:855020258513 | 3 | * -------------------------------------------------------------------------------- |
nyatla | 71:855020258513 | 4 | * |
nyatla | 71:855020258513 | 5 | * This file is part of MiMic |
nyatla | 71:855020258513 | 6 | * Copyright (C)2011 Ryo Iizuka |
nyatla | 71:855020258513 | 7 | * |
nyatla | 71:855020258513 | 8 | * MiMic is free software: you can redistribute it and/or modify |
nyatla | 71:855020258513 | 9 | * it under the terms of the GNU Lesser General Public License as published |
nyatla | 71:855020258513 | 10 | * by the Free Software Foundation, either version 3 of the License, or |
nyatla | 71:855020258513 | 11 | * (at your option) any later version. |
nyatla | 71:855020258513 | 12 | * |
nyatla | 71:855020258513 | 13 | * This program is distributed in the hope that it will be useful, |
nyatla | 71:855020258513 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
nyatla | 71:855020258513 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
nyatla | 71:855020258513 | 16 | * GNU General Public License for more details. |
nyatla | 71:855020258513 | 17 | * |
nyatla | 71:855020258513 | 18 | * You should have received a copy of the GNU Lesser General Public License |
nyatla | 71:855020258513 | 19 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
nyatla | 71:855020258513 | 20 | * |
nyatla | 71:855020258513 | 21 | * For further information please contact. |
nyatla | 71:855020258513 | 22 | * http://nyatla.jp/ |
nyatla | 71:855020258513 | 23 | * <airmail(at)ebony.plala.or.jp> or <nyatla(at)nyatla.jp> |
nyatla | 71:855020258513 | 24 | * |
nyatla | 71:855020258513 | 25 | *********************************************************************************/ |
nyatla | 71:855020258513 | 26 | #ifndef NYLPC_CMODJSONRPC_H_ |
nyatla | 71:855020258513 | 27 | #define NYLPC_CMODJSONRPC_H_ |
nyatla | 71:855020258513 | 28 | #include "NyLPC_http.h" |
nyatla | 71:855020258513 | 29 | #include "../NyLPC_cHttpdConnection.h" |
nyatla | 71:855020258513 | 30 | #include "NyLPC_cModWebSocket.h" |
nyatla | 71:855020258513 | 31 | #ifdef __cplusplus |
nyatla | 71:855020258513 | 32 | extern "C" { |
nyatla | 71:855020258513 | 33 | #endif /* __cplusplus */ |
nyatla | 71:855020258513 | 34 | |
nyatla | 71:855020258513 | 35 | /** |
nyatla | 71:855020258513 | 36 | * WebSocketストリームからJSONRPC電文を取り込むモジュールです。 |
nyatla | 71:855020258513 | 37 | */ |
nyatla | 71:855020258513 | 38 | typedef struct NyLPC_TcModJsonRpc NyLPC_TcModJsonRpc_t; |
nyatla | 71:855020258513 | 39 | |
nyatla | 71:855020258513 | 40 | |
nyatla | 71:855020258513 | 41 | /** |
nyatla | 71:855020258513 | 42 | * クラス構造体 |
nyatla | 71:855020258513 | 43 | */ |
nyatla | 71:855020258513 | 44 | struct NyLPC_TcModJsonRpc |
nyatla | 71:855020258513 | 45 | { |
nyatla | 71:855020258513 | 46 | NyLPC_TcModWebSocket_t super; |
nyatla | 71:855020258513 | 47 | NyLPC_TcJsonRpcParser_t _rpc_parser; |
nyatla | 71:855020258513 | 48 | union NyLPC_TJsonRpcParserResult _result; |
nyatla | 71:855020258513 | 49 | }; |
nyatla | 71:855020258513 | 50 | |
nyatla | 71:855020258513 | 51 | |
nyatla | 71:855020258513 | 52 | void NyLPC_cModJsonRpc_initialize(NyLPC_TcModJsonRpc_t* i_inst,const NyLPC_TChar* i_ref_root_path,const struct NyLPC_TJsonRpcClassDef** i_class_tbl); |
nyatla | 71:855020258513 | 53 | void NyLPC_cModJsonRpc_finalize(NyLPC_TcModJsonRpc_t* i_inst); |
nyatla | 71:855020258513 | 54 | #define NyLPC_cModJsonRpc_canHandle(i,c) NyLPC_cModWebSocket_canHandle(&((i)->super),(c)) |
nyatla | 71:855020258513 | 55 | #define NyLPC_cModJsonRpc_close(i,t) NyLPC_cModWebSocket_close(&((i)->super),(t)) |
nyatla | 71:855020258513 | 56 | |
nyatla | 71:855020258513 | 57 | |
nyatla | 71:855020258513 | 58 | NyLPC_TBool NyLPC_cModJsonRpc_execute(NyLPC_TcModJsonRpc_t* i_inst,NyLPC_TcHttpdConnection_t* i_connection); |
nyatla | 71:855020258513 | 59 | |
nyatla | 71:855020258513 | 60 | /** |
nyatla | 71:855020258513 | 61 | * Execute実行後に繰り返し実行できます。 |
nyatla | 71:855020258513 | 62 | * trueを返却した場合は、NyLPC_cModJsonRpc_getRpcCall関数で結果を取得できるか調べてください。 |
nyatla | 71:855020258513 | 63 | * @return |
nyatla | 71:855020258513 | 64 | * JSONRPCの処理を継続して行えるかを返します。 |
nyatla | 71:855020258513 | 65 | * falseの場合、JSONRPCの構文解析は失敗し、Websocketは閉じられます。Websocketの受信ループを終了してください。 |
nyatla | 71:855020258513 | 66 | */ |
nyatla | 71:855020258513 | 67 | NyLPC_TBool NyLPC_cModJsonRpc_processRpcMessage(NyLPC_TcModJsonRpc_t* i_inst); |
nyatla | 71:855020258513 | 68 | |
nyatla | 71:855020258513 | 69 | /** |
nyatla | 71:855020258513 | 70 | * JSONRPCの構文解析結果を返します。 |
nyatla | 71:855020258513 | 71 | * @return |
nyatla | 71:855020258513 | 72 | * JSONRPC電文が確定した場合、結果を格納した構造体を返します。構造体の有効期限は、次回にNyLPC_cModJsonRpc_processRpcMessageを実行するまでです。 |
nyatla | 71:855020258513 | 73 | * NULLを返した場合は、引き続きNyLPC_cModJsonRpc_processRpcMessageを実行する必要があります。 |
nyatla | 71:855020258513 | 74 | */ |
nyatla | 71:855020258513 | 75 | const union NyLPC_TJsonRpcParserResult* NyLPC_cModJsonRpc_getMessage(NyLPC_TcModJsonRpc_t* i_inst); |
nyatla | 71:855020258513 | 76 | |
nyatla | 72:c118a7aa37a3 | 77 | NyLPC_TBool NyLPC_cModJsonRpc_putResult(NyLPC_TcModJsonRpc_t* i_inst,NyLPC_TUInt32 i_id,const NyLPC_TChar* i_params_fmt,...); |
nyatla | 72:c118a7aa37a3 | 78 | NyLPC_TBool NyLPC_cModJsonRpc_putResultV(NyLPC_TcModJsonRpc_t* i_inst,NyLPC_TUInt32 i_id,const NyLPC_TChar* i_params_fmt,va_list i_a); |
nyatla | 72:c118a7aa37a3 | 79 | NyLPC_TBool NyLPC_cModJsonRpc_putError(NyLPC_TcModJsonRpc_t* i_inst,NyLPC_TUInt32 i_id,NyLPC_TInt32 i_code); |
nyatla | 71:855020258513 | 80 | |
nyatla | 71:855020258513 | 81 | #ifdef __cplusplus |
nyatla | 71:855020258513 | 82 | } |
nyatla | 71:855020258513 | 83 | #endif /* __cplusplus */ |
nyatla | 71:855020258513 | 84 | |
nyatla | 71:855020258513 | 85 | #endif /* NYLPC_CMODJSONRPC_H_ */ |