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

Fork of libMiMic by Ryo Iizuka

Committer:
furutani
Date:
Fri Feb 24 04:43:41 2017 +0000
Revision:
115:fa79286d8ea4
Parent:
1:9f6a78395432
Delete missing include line.; Add parameter "timeout" to TCPSocket::connect(), precv().; Fix to send ARP request to default gateway when connecting to IP address of different segment.;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nyatla 0:142ee8b12fef 1 /*********************************************************************************
nyatla 0:142ee8b12fef 2 * PROJECT: MiMic
nyatla 0:142ee8b12fef 3 * --------------------------------------------------------------------------------
nyatla 0:142ee8b12fef 4 *
nyatla 0:142ee8b12fef 5 * This file is part of MiMic
nyatla 0:142ee8b12fef 6 * Copyright (C)2011 Ryo Iizuka
nyatla 0:142ee8b12fef 7 *
nyatla 0:142ee8b12fef 8 * MiMic is free software: you can redistribute it and/or modify
nyatla 0:142ee8b12fef 9 * it under the terms of the GNU Lesser General Public License as published
nyatla 0:142ee8b12fef 10 * by the Free Software Foundation, either version 3 of the License, or
nyatla 0:142ee8b12fef 11 * (at your option) any later version.
nyatla 0:142ee8b12fef 12 *
nyatla 0:142ee8b12fef 13 * This program is distributed in the hope that it will be useful,
nyatla 0:142ee8b12fef 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
nyatla 0:142ee8b12fef 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
nyatla 0:142ee8b12fef 16 * GNU General Public License for more details.
nyatla 0:142ee8b12fef 17 *
nyatla 0:142ee8b12fef 18 * You should have received a copy of the GNU Lesser General Public License
nyatla 0:142ee8b12fef 19 * along with this program. If not, see <http://www.gnu.org/licenses/>.
nyatla 0:142ee8b12fef 20 *
nyatla 0:142ee8b12fef 21 * For further information please contact.
nyatla 0:142ee8b12fef 22 * http://nyatla.jp/
nyatla 0:142ee8b12fef 23 * <airmail(at)ebony.plala.or.jp> or <nyatla(at)nyatla.jp>
nyatla 0:142ee8b12fef 24 *
nyatla 0:142ee8b12fef 25 *********************************************************************************/
nyatla 0:142ee8b12fef 26 #ifndef NYLPC_TCPTRSTREAM_H_
nyatla 0:142ee8b12fef 27 #define NYLPC_TCPTRSTREAM_H_
nyatla 0:142ee8b12fef 28
nyatla 0:142ee8b12fef 29 /**********************************************************************
nyatla 0:142ee8b12fef 30 *
nyatla 0:142ee8b12fef 31 * NyLPC_TcPtrStream class
nyatla 0:142ee8b12fef 32 *
nyatla 0:142ee8b12fef 33 **********************************************************************/
nyatla 0:142ee8b12fef 34 #include "NyLPC_stdlib.h"
nyatla 0:142ee8b12fef 35
nyatla 0:142ee8b12fef 36 #ifdef __cplusplus
nyatla 0:142ee8b12fef 37 extern "C" {
nyatla 0:142ee8b12fef 38 #endif /* __cplusplus */
nyatla 0:142ee8b12fef 39
nyatla 0:142ee8b12fef 40 /**
nyatla 0:142ee8b12fef 41 * ブロッキングストリームのベース型です。
nyatla 0:142ee8b12fef 42 */
nyatla 0:142ee8b12fef 43 typedef struct NyLPC_TcPtrStream NyLPC_TcPtrStream_t;
nyatla 0:142ee8b12fef 44
nyatla 0:142ee8b12fef 45
nyatla 0:142ee8b12fef 46 typedef NyLPC_TInt32 (*NyLPC_TcPtrStream_pread)(NyLPC_TcPtrStream_t* i_inst,const void** o_buf_ptr,NyLPC_TUInt32 i_wait_msec);
nyatla 0:142ee8b12fef 47 typedef NyLPC_TBool (*NyLPC_TcPtrStream_write)(NyLPC_TcPtrStream_t* i_inst,const void* i_data,NyLPC_TInt16 i_length,NyLPC_TUInt32 i_wait_msec);
nyatla 0:142ee8b12fef 48 typedef void (*NyLPC_TcPtrStream_rseek)(NyLPC_TcPtrStream_t* i_inst,NyLPC_TUInt16 i_seek);
nyatla 0:142ee8b12fef 49 typedef void (*NyLPC_TcPtrStream_close)(NyLPC_TcPtrStream_t* i_inst);
nyatla 0:142ee8b12fef 50
nyatla 0:142ee8b12fef 51 struct NyLPC_TcPtrStream_TInterface
nyatla 0:142ee8b12fef 52 {
nyatla 0:142ee8b12fef 53 NyLPC_TcPtrStream_pread pread;
nyatla 0:142ee8b12fef 54 NyLPC_TcPtrStream_write write;
nyatla 0:142ee8b12fef 55 NyLPC_TcPtrStream_rseek readSeek;
nyatla 0:142ee8b12fef 56 NyLPC_TcPtrStream_close close;
nyatla 0:142ee8b12fef 57 };
nyatla 0:142ee8b12fef 58
nyatla 0:142ee8b12fef 59
nyatla 0:142ee8b12fef 60 struct NyLPC_TcPtrStream
nyatla 0:142ee8b12fef 61 {
nyatla 0:142ee8b12fef 62 const struct NyLPC_TcPtrStream_TInterface* _interface;
nyatla 0:142ee8b12fef 63 };
nyatla 0:142ee8b12fef 64
nyatla 0:142ee8b12fef 65 /**
nyatla 0:142ee8b12fef 66 * ストリームからデータを読み出して、そのポインタを返します。
nyatla 0:142ee8b12fef 67 * @return
nyatla 0:142ee8b12fef 68 * ストリームから読み込んだデータサイズを返します。
nyatla 0:142ee8b12fef 69 * 0の場合はタイムアウトです。
nyatla 0:142ee8b12fef 70 * 0未満の場合はエラーです。
nyatla 0:142ee8b12fef 71 */
nyatla 0:142ee8b12fef 72 #define NyLPC_cPtrStream_read(i_inst,o_buf_ptr,i_wait_msec) (i_inst)->_interface->read((i_inst),o_buf_ptr,i_wait_msec)
nyatla 0:142ee8b12fef 73 /**
nyatla 0:142ee8b12fef 74 * ストリームへデータを書き込みます。
nyatla 0:142ee8b12fef 75 * @param i_length
nyatla 0:142ee8b12fef 76 * i_dataのデータ長を指定します。-1の場合、strlenを実行します。
nyatla 0:142ee8b12fef 77 * @return
nyatla 0:142ee8b12fef 78 * 規定時間内にストリームへの書き込みが完了すると、TRUEを返します。
nyatla 0:142ee8b12fef 79 */
nyatla 0:142ee8b12fef 80 #define NyLPC_cPtrStream_write(i_inst,i_data,i_length,i_wait_msec) (i_inst)->_interface->write((i_inst),i_data,i_length,i_wait_msec)
nyatla 0:142ee8b12fef 81
nyatla 0:142ee8b12fef 82 /**
nyatla 0:142ee8b12fef 83 * 改行付でストリームへ書き込みます。
nyatla 0:142ee8b12fef 84 */
nyatla 0:142ee8b12fef 85 NyLPC_TBool NyLPC_cPtrStream_writeln(NyLPC_TcPtrStream_t* i_inst,const void* i_data,NyLPC_TInt16 i_length,NyLPC_TUInt32 i_wait_msec);
nyatla 0:142ee8b12fef 86 /**
nyatla 0:142ee8b12fef 87 * 数値をストリームへ書き込みます。
nyatla 0:142ee8b12fef 88 * @param i_base
nyatla 0:142ee8b12fef 89 * 10以上を指定してください。
nyatla 0:142ee8b12fef 90 */
nyatla 0:142ee8b12fef 91 NyLPC_TBool NyLPC_cPtrStream_writeInt(NyLPC_TcPtrStream_t* i_inst,NyLPC_TInt32 i_val,NyLPC_TUInt32 i_wait_msec,NyLPC_TUInt32 i_base);
nyatla 0:142ee8b12fef 92
nyatla 0:142ee8b12fef 93 /**
nyatla 0:142ee8b12fef 94 * 書き込みメモリを要求します。
nyatla 0:142ee8b12fef 95 * @return
nyatla 0:142ee8b12fef 96 * 書き込みメモリの先頭ポインタを返します。この値は次回のpwriteに入力してください。
nyatla 0:142ee8b12fef 97 */
nyatla 0:142ee8b12fef 98 #define NyLPC_cPtrStream_wreserv(i_inst,i_hint,o_len)
nyatla 0:142ee8b12fef 99
nyatla 0:142ee8b12fef 100
nyatla 0:142ee8b12fef 101 #define NyLPC_cPtrStream_rseek(i_inst,i_seek) (i_inst)->_interface->preadSeek((i_inst),i_seek)
nyatla 0:142ee8b12fef 102 /**
nyatla 0:142ee8b12fef 103 ストリームに対する操作を閉じます。
nyatla 0:142ee8b12fef 104 readの場合は占有している共有メモリの解放、ブロックしているタスクの解放をします。
nyatla 0:142ee8b12fef 105 writeの場合はバッファに残っているデータの書き込みを保証します。
nyatla 0:142ee8b12fef 106 */
nyatla 0:142ee8b12fef 107 #define NyLPC_cPtrStream_close(i_inst) i_inst->_interface->close(i_inst)
nyatla 0:142ee8b12fef 108
nyatla 0:142ee8b12fef 109 #ifdef __cplusplus
nyatla 0:142ee8b12fef 110 }
nyatla 0:142ee8b12fef 111 #endif /* __cplusplus */
nyatla 0:142ee8b12fef 112
nyatla 0:142ee8b12fef 113 #endif /* NYLPC_TCPTRSTREAM_H_ */