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

Fork of libMiMic by Ryo Iizuka

Committer:
nyatla
Date:
Wed Oct 23 04:49:08 2013 +0000
Revision:
64:258e84040262
Parent:
60:803de2088243
Child:
109:18f12ac01097
fix issue; http://mbed.org/users/nyatla/code/libMiMic/issues/1

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 // UdpSocket.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 * Udp Socket Class.
nyatla 58:03b89038b21a 13 * The class is used by Net constructor.
nyatla 58:03b89038b21a 14 */
nyatla 58:03b89038b21a 15 class UdpSocket
nyatla 58:03b89038b21a 16 {
nyatla 58:03b89038b21a 17 private:
nyatla 58:03b89038b21a 18 NyLPC_TcUdpSocket_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_TcUdpSocket_t* refBaseInstance(){return &this->_inst;}
nyatla 58:03b89038b21a 23
nyatla 58:03b89038b21a 24 public:
nyatla 60:803de2088243 25 /**
nyatla 60:803de2088243 26 * @param i_port
nyatla 60:803de2088243 27 * port number.
nyatla 60:803de2088243 28 * @param i_rx_buf_size
nyatla 60:803de2088243 29 * Size of the receive memory to allocate on heap
nyatla 60:803de2088243 30 */
nyatla 58:03b89038b21a 31 UdpSocket(unsigned short i_port,unsigned short i_rx_buf_size=(unsigned short)512);
nyatla 60:803de2088243 32 /**
nyatla 60:803de2088243 33 * @param i_port
nyatla 60:803de2088243 34 * port number.
nyatla 60:803de2088243 35 * @param i_rx_buffer
nyatla 60:803de2088243 36 * allocated memory for receiving.
nyatla 60:803de2088243 37 * @param i_rx_buf_size
nyatla 60:803de2088243 38 * Size of the i_rx_buf
nyatla 60:803de2088243 39 */
nyatla 58:03b89038b21a 40 UdpSocket(unsigned short i_port,void* i_rx_buf,unsigned short i_rx_buf_size);
nyatla 58:03b89038b21a 41 /**
nyatla 58:03b89038b21a 42 * This constructor accepts "large" packet by asynchronous handler.
nyatla 58:03b89038b21a 43 * Must be override "onRxHandler" function.
nyatla 58:03b89038b21a 44 */
nyatla 58:03b89038b21a 45 UdpSocket(unsigned short i_port,void* i_rx_handler);
nyatla 58:03b89038b21a 46 virtual ~UdpSocket();
nyatla 58:03b89038b21a 47 /**
nyatla 58:03b89038b21a 48 * This function return recieved data and size.
nyatla 58:03b89038b21a 49 * The function sets the head of the oldest readable buffer.
nyatla 58:03b89038b21a 50 * A position is not changed until precvnext was called.
nyatla 58:03b89038b21a 51 * @param i_host_addr
nyatla 58:03b89038b21a 52 * must be IPv4 address format.
nyatla 58:03b89038b21a 53 */
nyatla 64:258e84040262 54 int precvFrom(const void* &i_rx,IpAddr* i_peer_host=NULL,unsigned short* i_port=NULL);
nyatla 64:258e84040262 55 int precvFrom(const char* &i_rx,IpAddr* i_peer_host=NULL,unsigned short* i_port=NULL);
nyatla 58:03b89038b21a 56 /**
nyatla 58:03b89038b21a 57 * This function moves rx buffer to next packet.
nyatla 58:03b89038b21a 58 */
nyatla 64:258e84040262 59 void precvNext(void);
nyatla 60:803de2088243 60 /**
nyatla 60:803de2088243 61 * true if precv has data.
nyatla 60:803de2088243 62 * This can avoid the block of precv.
nyatla 60:803de2088243 63 */
nyatla 60:803de2088243 64 bool canRecv();
nyatla 60:803de2088243 65
nyatla 58:03b89038b21a 66 bool sendTo(const IpAddr& i_host,unsigned short i_port,const void* i_tx,unsigned short i_tx_size);
nyatla 58:03b89038b21a 67 void joinMulticast(const IpAddr& i_host);
nyatla 58:03b89038b21a 68 void setBroadcast(void);
nyatla 58:03b89038b21a 69 };
nyatla 58:03b89038b21a 70 }
nyatla 58:03b89038b21a 71