Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of libMiMic by
mbed/TcpSocket.cpp@109:18f12ac01097, 2014-11-19 (annotated)
- Committer:
- nyatla
- Date:
- Wed Nov 19 14:45:17 2014 +0000
- Revision:
- 109:18f12ac01097
- Parent:
- 60:803de2088243
- Child:
- 110:257739f9b31e
new MiMicIP API;
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| nyatla | 58:03b89038b21a | 1 | //////////////////////////////////////////////////////////////////////////////// |
| nyatla | 58:03b89038b21a | 2 | // TcpSocket.h |
| nyatla | 58:03b89038b21a | 3 | //////////////////////////////////////////////////////////////////////////////// |
| nyatla | 58:03b89038b21a | 4 | |
| nyatla | 58:03b89038b21a | 5 | #include "TcpSocket.h" |
| nyatla | 109:18f12ac01097 | 6 | #include "mbed.h" |
| nyatla | 58:03b89038b21a | 7 | |
| nyatla | 58:03b89038b21a | 8 | namespace MiMic |
| nyatla | 58:03b89038b21a | 9 | { |
| nyatla | 58:03b89038b21a | 10 | #define TIMEOUT_IN_MSEC (5*1000) |
| nyatla | 58:03b89038b21a | 11 | |
| nyatla | 109:18f12ac01097 | 12 | TcpSocket::TcpSocket() |
| nyatla | 58:03b89038b21a | 13 | { |
| nyatla | 109:18f12ac01097 | 14 | this->_inst=NyLPC_cNetIf_createTcpSocketEx(NyLPC_TSocketType_TCP_NORMAL); |
| nyatla | 109:18f12ac01097 | 15 | if(this->_inst==NULL){ |
| nyatla | 109:18f12ac01097 | 16 | mbed_die(); |
| nyatla | 109:18f12ac01097 | 17 | } |
| nyatla | 58:03b89038b21a | 18 | } |
| nyatla | 58:03b89038b21a | 19 | TcpSocket::~TcpSocket() |
| nyatla | 58:03b89038b21a | 20 | { |
| nyatla | 109:18f12ac01097 | 21 | NyLPC_iTcpSocket_finalize(this->_inst); |
| nyatla | 58:03b89038b21a | 22 | } |
| nyatla | 58:03b89038b21a | 23 | bool TcpSocket::connect(const IpAddr& i_addr,unsigned short i_port) |
| nyatla | 58:03b89038b21a | 24 | { |
| nyatla | 109:18f12ac01097 | 25 | return NyLPC_iTcpSocket_connect(this->_inst,&(i_addr.addr.v4),i_port,TIMEOUT_IN_MSEC)?true:false; |
| nyatla | 58:03b89038b21a | 26 | } |
| nyatla | 58:03b89038b21a | 27 | |
| nyatla | 58:03b89038b21a | 28 | bool TcpSocket::send(const void* i_tx,unsigned short i_tx_size) |
| nyatla | 58:03b89038b21a | 29 | { |
| nyatla | 58:03b89038b21a | 30 | int l,t; |
| nyatla | 58:03b89038b21a | 31 | l=i_tx_size; |
| nyatla | 58:03b89038b21a | 32 | while(l>0){ |
| nyatla | 109:18f12ac01097 | 33 | t=NyLPC_iTcpSocket_send(this->_inst,((const char*)i_tx)+(i_tx_size-l),l,TIMEOUT_IN_MSEC); |
| nyatla | 58:03b89038b21a | 34 | if(t<0){ |
| nyatla | 58:03b89038b21a | 35 | return false; |
| nyatla | 58:03b89038b21a | 36 | } |
| nyatla | 58:03b89038b21a | 37 | l-=t; |
| nyatla | 58:03b89038b21a | 38 | } |
| nyatla | 58:03b89038b21a | 39 | return true; |
| nyatla | 58:03b89038b21a | 40 | } |
| nyatla | 60:803de2088243 | 41 | bool TcpSocket::canRecv() |
| nyatla | 60:803de2088243 | 42 | { |
| nyatla | 60:803de2088243 | 43 | const void* rx; |
| nyatla | 109:18f12ac01097 | 44 | return NyLPC_iTcpSocket_precv(this->_inst,&rx,0)>0; |
| nyatla | 60:803de2088243 | 45 | } |
| nyatla | 59:cb5c3184c59f | 46 | int TcpSocket::precv(const void* &i_rx) |
| nyatla | 58:03b89038b21a | 47 | { |
| nyatla | 109:18f12ac01097 | 48 | return NyLPC_iTcpSocket_precv(this->_inst,&i_rx,TIMEOUT_IN_MSEC); |
| nyatla | 58:03b89038b21a | 49 | } |
| nyatla | 59:cb5c3184c59f | 50 | int TcpSocket::precv(const char* &i_rx) |
| nyatla | 59:cb5c3184c59f | 51 | { |
| nyatla | 109:18f12ac01097 | 52 | return NyLPC_iTcpSocket_precv(this->_inst,(const void**)&i_rx,TIMEOUT_IN_MSEC); |
| nyatla | 59:cb5c3184c59f | 53 | } |
| nyatla | 58:03b89038b21a | 54 | void TcpSocket::pseek(unsigned short i_rx_seek) |
| nyatla | 58:03b89038b21a | 55 | { |
| nyatla | 109:18f12ac01097 | 56 | NyLPC_iTcpSocket_pseek(this->_inst,i_rx_seek); |
| nyatla | 58:03b89038b21a | 57 | } |
| nyatla | 58:03b89038b21a | 58 | void TcpSocket::close() |
| nyatla | 58:03b89038b21a | 59 | { |
| nyatla | 109:18f12ac01097 | 60 | return NyLPC_iTcpSocket_close(this->_inst,TIMEOUT_IN_MSEC); |
| nyatla | 58:03b89038b21a | 61 | } |
| nyatla | 109:18f12ac01097 | 62 | } |
