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 "TcpSocket.h"
nyatla 58:03b89038b21a 7
nyatla 58:03b89038b21a 8
nyatla 58:03b89038b21a 9 namespace MiMic
nyatla 58:03b89038b21a 10 {
nyatla 58:03b89038b21a 11 #define TIMEOUT_IN_MSEC (5*1000)
nyatla 58:03b89038b21a 12
nyatla 58:03b89038b21a 13 TcpSocket::TcpSocket(void* i_rx_buf,unsigned short i_rx_buf_size)
nyatla 58:03b89038b21a 14 {
nyatla 58:03b89038b21a 15 this->_private_rx=NULL;
nyatla 58:03b89038b21a 16 NyLPC_cTcpSocket_initialize(&this->_inst,i_rx_buf,i_rx_buf_size);
nyatla 58:03b89038b21a 17 }
nyatla 58:03b89038b21a 18 TcpSocket::TcpSocket(unsigned short i_rx_buf_size)
nyatla 58:03b89038b21a 19 {
nyatla 58:03b89038b21a 20 this->_private_rx=malloc(i_rx_buf_size);
nyatla 58:03b89038b21a 21 NyLPC_cTcpSocket_initialize(&this->_inst,this->_private_rx,i_rx_buf_size);
nyatla 58:03b89038b21a 22 }
nyatla 58:03b89038b21a 23
nyatla 58:03b89038b21a 24 TcpSocket::~TcpSocket()
nyatla 58:03b89038b21a 25 {
nyatla 58:03b89038b21a 26 NyLPC_cTcpSocket_finalize(&this->_inst);
nyatla 58:03b89038b21a 27 if(this->_private_rx!=NULL){
nyatla 58:03b89038b21a 28 free(this->_private_rx);
nyatla 58:03b89038b21a 29 }
nyatla 58:03b89038b21a 30 }
nyatla 58:03b89038b21a 31 bool TcpSocket::connect(const IpAddr& i_addr,unsigned short i_port)
nyatla 58:03b89038b21a 32 {
nyatla 58:03b89038b21a 33 return NyLPC_cTcpSocket_connect(&this->_inst,&(i_addr.addr.v4),i_port,TIMEOUT_IN_MSEC)?true:false;
nyatla 58:03b89038b21a 34 }
nyatla 58:03b89038b21a 35
nyatla 58:03b89038b21a 36 bool TcpSocket::send(const void* i_tx,unsigned short i_tx_size)
nyatla 58:03b89038b21a 37 {
nyatla 58:03b89038b21a 38 int l,t;
nyatla 58:03b89038b21a 39 l=i_tx_size;
nyatla 58:03b89038b21a 40 while(l>0){
nyatla 58:03b89038b21a 41 t=NyLPC_cTcpSocket_send(&this->_inst,((const char*)i_tx)+(i_tx_size-l),l,TIMEOUT_IN_MSEC);
nyatla 58:03b89038b21a 42 if(t<0){
nyatla 58:03b89038b21a 43 return false;
nyatla 58:03b89038b21a 44 }
nyatla 58:03b89038b21a 45 l-=t;
nyatla 58:03b89038b21a 46 }
nyatla 58:03b89038b21a 47 return true;
nyatla 58:03b89038b21a 48 }
nyatla 59:cb5c3184c59f 49 int TcpSocket::precv(const void* &i_rx)
nyatla 58:03b89038b21a 50 {
nyatla 58:03b89038b21a 51 return NyLPC_cTcpSocket_precv(&this->_inst,&i_rx,TIMEOUT_IN_MSEC);
nyatla 58:03b89038b21a 52 }
nyatla 59:cb5c3184c59f 53 int TcpSocket::precv(const char* &i_rx)
nyatla 59:cb5c3184c59f 54 {
nyatla 59:cb5c3184c59f 55 return NyLPC_cTcpSocket_precv(&this->_inst,(const void**)&i_rx,TIMEOUT_IN_MSEC);
nyatla 59:cb5c3184c59f 56 }
nyatla 58:03b89038b21a 57 void TcpSocket::pseek(unsigned short i_rx_seek)
nyatla 58:03b89038b21a 58 {
nyatla 58:03b89038b21a 59 NyLPC_cTcpSocket_pseek(&this->_inst,i_rx_seek);
nyatla 58:03b89038b21a 60 }
nyatla 58:03b89038b21a 61 void TcpSocket::close()
nyatla 58:03b89038b21a 62 {
nyatla 58:03b89038b21a 63 return NyLPC_cTcpSocket_close(&this->_inst,TIMEOUT_IN_MSEC);
nyatla 58:03b89038b21a 64 }
nyatla 58:03b89038b21a 65 }