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_PTRTABLE_H_
nyatla 0:142ee8b12fef 27 #define NYLPC_PTRTABLE_H_
nyatla 0:142ee8b12fef 28
nyatla 0:142ee8b12fef 29
nyatla 0:142ee8b12fef 30 #include "NyLPC_stdlib.h"
nyatla 0:142ee8b12fef 31
nyatla 0:142ee8b12fef 32 #ifdef __cplusplus
nyatla 0:142ee8b12fef 33 extern "C" {
nyatla 0:142ee8b12fef 34 #endif /* __cplusplus */
nyatla 0:142ee8b12fef 35
nyatla 0:142ee8b12fef 36 /**********************************************************************
nyatla 0:142ee8b12fef 37 *
nyatla 0:142ee8b12fef 38 * NyLPC_TcPtrTbl
nyatla 0:142ee8b12fef 39 *
nyatla 0:142ee8b12fef 40 **********************************************************************/
nyatla 0:142ee8b12fef 41 /**
nyatla 0:142ee8b12fef 42 * ポインタを格納するテーブルです。
nyatla 0:142ee8b12fef 43 * 固定長のメモリ領域をポインタテーブルとして管理します。
nyatla 0:142ee8b12fef 44 * 要素はNULLを無効値とします。
nyatla 0:142ee8b12fef 45 */
nyatla 0:142ee8b12fef 46 typedef struct NyLPC_TcPtrTbl NyLPC_TcPtrTbl_t;
nyatla 0:142ee8b12fef 47
nyatla 0:142ee8b12fef 48
nyatla 0:142ee8b12fef 49
nyatla 0:142ee8b12fef 50 struct NyLPC_TcPtrTbl
nyatla 0:142ee8b12fef 51 {
nyatla 0:142ee8b12fef 52 /** 配列の最大サイズ*/
nyatla 0:142ee8b12fef 53 NyLPC_TUInt16 size;
nyatla 0:142ee8b12fef 54 /** 配列の現在の長さ*/
nyatla 0:142ee8b12fef 55 NyLPC_TUInt16 len;
nyatla 0:142ee8b12fef 56 /** 配列*/
nyatla 0:142ee8b12fef 57 void** buf;
nyatla 0:142ee8b12fef 58 };
nyatla 0:142ee8b12fef 59
nyatla 0:142ee8b12fef 60
nyatla 0:142ee8b12fef 61 /**
nyatla 0:142ee8b12fef 62 * コンストラクタです。
nyatla 0:142ee8b12fef 63 * メモリを初期化します。
nyatla 0:142ee8b12fef 64 * @param i_buf
nyatla 0:142ee8b12fef 65 * インスタンスを格納するメモリを指定します。バッファサイズは、sizeof(void*)*i_sizeである必要があります。
nyatla 0:142ee8b12fef 66 * @param i_size
nyatla 0:142ee8b12fef 67 * テーブルのサイズを指定します。
nyatla 0:142ee8b12fef 68 */
nyatla 0:142ee8b12fef 69 void NyLPC_cPtrTbl_initialize(NyLPC_TcPtrTbl_t* i_inst,void** i_buf,NyLPC_TUInt16 i_size);
nyatla 0:142ee8b12fef 70
nyatla 0:142ee8b12fef 71 void* NyLPC_cPtrTbl_get(NyLPC_TcPtrTbl_t* i_inst,NyLPC_TUInt16 i_index);
nyatla 0:142ee8b12fef 72
nyatla 0:142ee8b12fef 73 void NyLPC_cPtrTbl_set(NyLPC_TcPtrTbl_t* i_inst,NyLPC_TUInt16 i_index,void* i_val);
nyatla 0:142ee8b12fef 74
nyatla 0:142ee8b12fef 75 /**
nyatla 0:142ee8b12fef 76 * リストへ要素を追加します。
nyatla 0:142ee8b12fef 77 * @i_val
nyatla 0:142ee8b12fef 78 * NULL以外を指定します。
nyatla 0:142ee8b12fef 79 * @return
nyatla 0:142ee8b12fef 80 * 追加した要素のインデクス番号を返します。
nyatla 0:142ee8b12fef 81 * 失敗した場合、-1を返します。
nyatla 0:142ee8b12fef 82 */
nyatla 0:142ee8b12fef 83 NyLPC_TInt16 NyLPC_cPtrTbl_add(NyLPC_TcPtrTbl_t* i_inst,void* i_val);
nyatla 0:142ee8b12fef 84
nyatla 0:142ee8b12fef 85 void NyLPC_cPtrTbl_remove(NyLPC_TcPtrTbl_t* i_inst,NyLPC_TUInt16 i_index);
nyatla 0:142ee8b12fef 86
nyatla 0:142ee8b12fef 87 /**
nyatla 0:142ee8b12fef 88 * 現在の長さを返します。
nyatla 0:142ee8b12fef 89 */
nyatla 0:142ee8b12fef 90 NyLPC_TInt16 NyLPC_cPtrTbl_getLength(NyLPC_TcPtrTbl_t* i_inst);
nyatla 0:142ee8b12fef 91
nyatla 0:142ee8b12fef 92 /**
nyatla 0:142ee8b12fef 93 * 空き領域の有無を返します。
nyatla 0:142ee8b12fef 94 */
nyatla 0:142ee8b12fef 95 NyLPC_TBool NyLPC_cPtrTbl_hasEmpty(NyLPC_TcPtrTbl_t* i_inst);
nyatla 0:142ee8b12fef 96
nyatla 0:142ee8b12fef 97 /**
nyatla 0:142ee8b12fef 98 * ポインタに一致するインデクスを返します。
nyatla 0:142ee8b12fef 99 */
nyatla 0:142ee8b12fef 100 NyLPC_TInt16 NyLPC_cPtrTbl_getIndex(NyLPC_TcPtrTbl_t* i_inst,void* i_val);
nyatla 0:142ee8b12fef 101
nyatla 0:142ee8b12fef 102 #ifdef __cplusplus
nyatla 0:142ee8b12fef 103 }
nyatla 0:142ee8b12fef 104 #endif /* __cplusplus */
nyatla 0:142ee8b12fef 105
nyatla 0:142ee8b12fef 106 #endif /* NYLPC_PTRTABLE_H_ */