This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088
Fork of libMiMic by
core/NyLPC_cPtrStream.h@115:fa79286d8ea4, 2017-02-24 (annotated)
- 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?
User | Revision | Line number | New 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_ */ |