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

Fork of libMiMic by Ryo Iizuka

Committer:
nyatla
Date:
Wed Oct 02 08:33:16 2013 +0000
Revision:
59:cb5c3184c59f
Parent:
58:03b89038b21a
Child:
60:803de2088243
update mbed API(TcpSocket)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nyatla 58:03b89038b21a 1 #pragma once
nyatla 58:03b89038b21a 2 ////////////////////////////////////////////////////////////////////////////////
nyatla 58:03b89038b21a 3 // TcpSocket.h
nyatla 58:03b89038b21a 4 ////////////////////////////////////////////////////////////////////////////////
nyatla 58:03b89038b21a 5
nyatla 58:03b89038b21a 6 #include "NyLPC_net.h"
nyatla 58:03b89038b21a 7 #include "IpAddr.h"
nyatla 58:03b89038b21a 8
nyatla 58:03b89038b21a 9 namespace MiMic
nyatla 58:03b89038b21a 10 {
nyatla 58:03b89038b21a 11 /**
nyatla 58:03b89038b21a 12 * Tcp Socket Class.
nyatla 58:03b89038b21a 13 * The class is used by Net constructor.
nyatla 58:03b89038b21a 14 */
nyatla 58:03b89038b21a 15 class TcpSocket
nyatla 58:03b89038b21a 16 {
nyatla 58:03b89038b21a 17 private:
nyatla 58:03b89038b21a 18 NyLPC_TcTcpSocket_t _inst;
nyatla 58:03b89038b21a 19 void* _private_rx;
nyatla 58:03b89038b21a 20 public:
nyatla 58:03b89038b21a 21 /** wrapped base LPC class.*/
nyatla 58:03b89038b21a 22 NyLPC_TcTcpSocket_t* refBaseInstance(){return &this->_inst;}
nyatla 58:03b89038b21a 23
nyatla 58:03b89038b21a 24 public:
nyatla 58:03b89038b21a 25 TcpSocket(unsigned short i_rx_buf_size=(unsigned short)512);
nyatla 58:03b89038b21a 26 TcpSocket(void* i_rx_buf,unsigned short i_rx_buf_size);
nyatla 58:03b89038b21a 27 virtual ~TcpSocket();
nyatla 58:03b89038b21a 28 /**
nyatla 58:03b89038b21a 29 * @param i_host_addr
nyatla 58:03b89038b21a 30 * must be IPv4 address format.
nyatla 58:03b89038b21a 31 */
nyatla 58:03b89038b21a 32 bool connect(const IpAddr& i_addr,unsigned short i_port);
nyatla 58:03b89038b21a 33 bool send(const void* i_tx,unsigned short i_tx_size);
nyatla 58:03b89038b21a 34 /**
nyatla 58:03b89038b21a 35 * This function return recieved data and size.
nyatla 58:03b89038b21a 36 * The function sets the head of the readable buffer which can always be read.
nyatla 58:03b89038b21a 37 * A position is not changed until pseek was called.
nyatla 58:03b89038b21a 38 * @param i_rx
nyatla 58:03b89038b21a 39 * address of variable which accepts received data pointer.
nyatla 58:03b89038b21a 40 * @retrun
nyatla 58:03b89038b21a 41 * n<-1 Error
nyatla 58:03b89038b21a 42 * n==0 Timeout (connection still established)
nyatla 58:03b89038b21a 43 * n>0 Success. readable data size in i_rx.
nyatla 58:03b89038b21a 44 */
nyatla 59:cb5c3184c59f 45 int precv(const void* &i_rx);
nyatla 59:cb5c3184c59f 46 int precv(const char* &i_rx);
nyatla 58:03b89038b21a 47 /**
nyatla 58:03b89038b21a 48 * This function seek rx pointer to next.
nyatla 58:03b89038b21a 49 * @param i_rx_size
nyatla 58:03b89038b21a 50 * seek size. Must be returned value which is small or equal by the precv.
nyatla 58:03b89038b21a 51 */
nyatla 58:03b89038b21a 52 void pseek(unsigned short i_rx_seek);
nyatla 58:03b89038b21a 53 void close();
nyatla 58:03b89038b21a 54 };
nyatla 58:03b89038b21a 55
nyatla 58:03b89038b21a 56 }