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

Fork of libMiMic by Ryo Iizuka

Committer:
nyatla
Date:
Thu Oct 03 02:37:22 2013 +0000
Revision:
60:803de2088243
Parent:
59:cb5c3184c59f
Child:
66:ee7866efe5e6
Child:
109:18f12ac01097
fix bug under /mbed; 1.udp socket; ; add function; 1.add canread function to tcpsocket,udp socket

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 60:803de2088243 49 bool TcpSocket::canRecv()
nyatla 60:803de2088243 50 {
nyatla 60:803de2088243 51 const void* rx;
nyatla 60:803de2088243 52 return NyLPC_cTcpSocket_precv(&this->_inst,&rx,0)>0;
nyatla 60:803de2088243 53 }
nyatla 59:cb5c3184c59f 54 int TcpSocket::precv(const void* &i_rx)
nyatla 58:03b89038b21a 55 {
nyatla 58:03b89038b21a 56 return NyLPC_cTcpSocket_precv(&this->_inst,&i_rx,TIMEOUT_IN_MSEC);
nyatla 58:03b89038b21a 57 }
nyatla 59:cb5c3184c59f 58 int TcpSocket::precv(const char* &i_rx)
nyatla 59:cb5c3184c59f 59 {
nyatla 59:cb5c3184c59f 60 return NyLPC_cTcpSocket_precv(&this->_inst,(const void**)&i_rx,TIMEOUT_IN_MSEC);
nyatla 59:cb5c3184c59f 61 }
nyatla 58:03b89038b21a 62 void TcpSocket::pseek(unsigned short i_rx_seek)
nyatla 58:03b89038b21a 63 {
nyatla 58:03b89038b21a 64 NyLPC_cTcpSocket_pseek(&this->_inst,i_rx_seek);
nyatla 58:03b89038b21a 65 }
nyatla 58:03b89038b21a 66 void TcpSocket::close()
nyatla 58:03b89038b21a 67 {
nyatla 58:03b89038b21a 68 return NyLPC_cTcpSocket_close(&this->_inst,TIMEOUT_IN_MSEC);
nyatla 58:03b89038b21a 69 }
nyatla 58:03b89038b21a 70 }