This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088
Fork of libMiMic by
mbed/TcpSocket.cpp@60:803de2088243, 2013-10-03 (annotated)
- 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?
User | Revision | Line number | New 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 | } |