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:
71:855020258513
mbedAPI???????

Who changed what in which revision?

UserRevisionLine numberNew 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_ */