mirror of https://github.com/ARMmbed/mbed-os.git
Adopt mbed style doxygen comments
per @0xc0170
parent
f0f7972a64
commit
106e459a64
|
@ -20,9 +20,8 @@
|
||||||
#include "mbed.h"
|
#include "mbed.h"
|
||||||
#include "SocketAddress.h"
|
#include "SocketAddress.h"
|
||||||
|
|
||||||
/**
|
/** Enum of standardized error codes
|
||||||
* @enum ns_error_t
|
* @enum ns_error_t
|
||||||
* @brief enum of standardized error codes
|
|
||||||
*/
|
*/
|
||||||
enum nsapi_error_t {
|
enum nsapi_error_t {
|
||||||
NSAPI_ERROR_WOULD_BLOCK = -3001, /*!< no data is not available but call is non-blocking */
|
NSAPI_ERROR_WOULD_BLOCK = -3001, /*!< no data is not available but call is non-blocking */
|
||||||
|
@ -37,16 +36,15 @@ enum nsapi_error_t {
|
||||||
NSAPI_ERROR_DEVICE_ERROR = -3010, /*!< failure interfacing with the network procesor */
|
NSAPI_ERROR_DEVICE_ERROR = -3010, /*!< failure interfacing with the network procesor */
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/** Enum of available options
|
||||||
* @enum ns_opt_t
|
* @enum ns_opt_t
|
||||||
* @brief enum of available options
|
|
||||||
*/
|
*/
|
||||||
enum ns_opt_t {
|
enum ns_opt_t {
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Enum of socket protocols
|
/** Enum of socket protocols
|
||||||
/enum protocol_t
|
* @enum protocol_t
|
||||||
*/
|
*/
|
||||||
enum nsapi_protocol_t {
|
enum nsapi_protocol_t {
|
||||||
NSAPI_TCP, /*!< Socket is of TCP type */
|
NSAPI_TCP, /*!< Socket is of TCP type */
|
||||||
NSAPI_UDP, /*!< Socket is of UDP type */
|
NSAPI_UDP, /*!< Socket is of UDP type */
|
||||||
|
@ -62,27 +60,27 @@ public:
|
||||||
virtual ~NetworkInterface() {};
|
virtual ~NetworkInterface() {};
|
||||||
|
|
||||||
/** Get the internally stored IP address
|
/** Get the internally stored IP address
|
||||||
/return IP address of the interface or null if not yet connected
|
* @return IP address of the interface or null if not yet connected
|
||||||
*/
|
*/
|
||||||
virtual const char *get_ip_address() = 0;
|
virtual const char *get_ip_address() = 0;
|
||||||
|
|
||||||
/** Get the internally stored MAC address
|
/** Get the internally stored MAC address
|
||||||
/return MAC address of the interface
|
* @return MAC address of the interface
|
||||||
*/
|
*/
|
||||||
virtual const char *get_mac_address() = 0;
|
virtual const char *get_mac_address() = 0;
|
||||||
|
|
||||||
/** Get the current status of the interface
|
/** Get the current status of the interface
|
||||||
/return true if connected
|
* @return true if connected
|
||||||
*/
|
*/
|
||||||
virtual bool is_connected() {
|
virtual bool is_connected() {
|
||||||
return get_ip_address() != NULL;
|
return get_ip_address() != NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Looks up the specified host's IP address
|
/** Looks up the specified host's IP address
|
||||||
/param name Hostname to lookup
|
* @param name Hostname to lookup
|
||||||
/param dest Destination for IP address, must have space for SocketAddress::IP_SIZE
|
* @param dest Destination for IP address, must have space for SocketAddress::IP_SIZE
|
||||||
/return 0 on success, negative on failure
|
* @return 0 on success, negative on failure
|
||||||
*/
|
*/
|
||||||
virtual int gethostbyname(const char *name, char *dest);
|
virtual int gethostbyname(const char *name, char *dest);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -92,143 +90,143 @@ protected:
|
||||||
friend class TCPServer;
|
friend class TCPServer;
|
||||||
|
|
||||||
/** Create a socket
|
/** Create a socket
|
||||||
/param proto The type of socket to open, TCP or UDP
|
* @param proto The type of socket to open, TCP or UDP
|
||||||
/return The alocated socket or null on failure
|
* @return The alocated socket or null on failure
|
||||||
*/
|
*/
|
||||||
virtual void *socket_create(nsapi_protocol_t proto) = 0;
|
virtual void *socket_create(nsapi_protocol_t proto) = 0;
|
||||||
|
|
||||||
/** Destroy a socket
|
/** Destroy a socket
|
||||||
/param socket Previously allocated socket
|
* @param socket Previously allocated socket
|
||||||
*/
|
*/
|
||||||
virtual void socket_destroy(void *handle) = 0;
|
virtual void socket_destroy(void *handle) = 0;
|
||||||
|
|
||||||
/** Set socket options
|
/** Set socket options
|
||||||
\param handle Socket handle
|
* @param handle Socket handle
|
||||||
\param optname Option ID
|
* @param optname Option ID
|
||||||
\param optval Option value
|
* @param optval Option value
|
||||||
\param optlen Length of the option value
|
* @param optlen Length of the option value
|
||||||
\return 0 on success, negative on failure
|
* @return 0 on success, negative on failure
|
||||||
*/
|
*/
|
||||||
virtual int socket_set_option(void *handle, int optname, const void *optval, unsigned int optlen) = 0;
|
virtual int socket_set_option(void *handle, int optname, const void *optval, unsigned int optlen) = 0;
|
||||||
|
|
||||||
/** Get socket options
|
/** Get socket options
|
||||||
\param handle Socket handle
|
* @param handle Socket handle
|
||||||
\param optname Option ID
|
* @param optname Option ID
|
||||||
\param optval Buffer pointer where to write the option value
|
* @param optval Buffer pointer where to write the option value
|
||||||
\param optlen Length of the option value
|
* @param optlen Length of the option value
|
||||||
\return 0 on success, negative on failure
|
* @return 0 on success, negative on failure
|
||||||
*/
|
*/
|
||||||
virtual int socket_get_option(void *handle, int optname, void *optval, unsigned int *optlen) = 0;
|
virtual int socket_get_option(void *handle, int optname, void *optval, unsigned int *optlen) = 0;
|
||||||
|
|
||||||
/** Bind a server socket to a specific port
|
/** Bind a server socket to a specific port
|
||||||
\param handle Socket handle
|
* @param handle Socket handle
|
||||||
\param port The port to listen for incoming connections on
|
* @param port The port to listen for incoming connections on
|
||||||
\return 0 on success, negative on failure.
|
* @return 0 on success, negative on failure.
|
||||||
*/
|
*/
|
||||||
virtual int socket_bind(void *handle, int port) = 0;
|
virtual int socket_bind(void *handle, int port) = 0;
|
||||||
|
|
||||||
/** Start listening for incoming connections
|
/** Start listening for incoming connections
|
||||||
\param handle Socket handle
|
* @param handle Socket handle
|
||||||
\param backlog Number of pending connections that can be queued up at any
|
* @param backlog Number of pending connections that can be queued up at any
|
||||||
one time [Default: 1]
|
* one time [Default: 1]
|
||||||
\return 0 on success, negative on failure
|
* @return 0 on success, negative on failure
|
||||||
*/
|
*/
|
||||||
virtual int socket_listen(void *handle, int backlog) = 0;
|
virtual int socket_listen(void *handle, int backlog) = 0;
|
||||||
|
|
||||||
/** Connects this TCP socket to the server
|
/** Connects this TCP socket to the server
|
||||||
\param handle Socket handle
|
* @param handle Socket handle
|
||||||
\param address SocketAddress to connect to
|
* @param address SocketAddress to connect to
|
||||||
\return 0 on success, negative on failure
|
* @return 0 on success, negative on failure
|
||||||
*/
|
*/
|
||||||
virtual int socket_connect(void *handle, const SocketAddress &address) = 0;
|
virtual int socket_connect(void *handle, const SocketAddress &address) = 0;
|
||||||
|
|
||||||
/** Check if the socket is connected
|
/** Check if the socket is connected
|
||||||
\param handle Socket handle
|
* @param handle Socket handle
|
||||||
\return true if connected, false otherwise
|
* @return true if connected, false otherwise
|
||||||
*/
|
*/
|
||||||
virtual bool socket_is_connected(void *handle) = 0;
|
virtual bool socket_is_connected(void *handle) = 0;
|
||||||
|
|
||||||
/** Accept a new connection.
|
/** Accept a new connection.
|
||||||
\param handle Socket handle
|
* @param handle Socket handle
|
||||||
\param socket A TCPSocket instance that will handle the incoming connection.
|
* @param socket A TCPSocket instance that will handle the incoming connection.
|
||||||
\return 0 on success, negative on failure.
|
* @return 0 on success, negative on failure.
|
||||||
\note This call is not-blocking, if this call would block, must
|
* @note This call is not-blocking, if this call would block, must
|
||||||
immediately return NSAPI_ERROR_WOULD_WAIT
|
* immediately return NSAPI_ERROR_WOULD_WAIT
|
||||||
*/
|
*/
|
||||||
virtual int socket_accept(void *handle, void **connection) = 0;
|
virtual int socket_accept(void *handle, void **connection) = 0;
|
||||||
|
|
||||||
/** Send data to the remote host
|
/** Send data to the remote host
|
||||||
\param handle Socket handle
|
* @param handle Socket handle
|
||||||
\param data The buffer to send to the host
|
* @param data The buffer to send to the host
|
||||||
\param size The length of the buffer to send
|
* @param size The length of the buffer to send
|
||||||
\return Number of written bytes on success, negative on failure
|
* @return Number of written bytes on success, negative on failure
|
||||||
\note This call is not-blocking, if this call would block, must
|
* @note This call is not-blocking, if this call would block, must
|
||||||
immediately return NSAPI_ERROR_WOULD_WAIT
|
* immediately return NSAPI_ERROR_WOULD_WAIT
|
||||||
*/
|
*/
|
||||||
virtual int socket_send(void *handle, const void *data, unsigned size) = 0;
|
virtual int socket_send(void *handle, const void *data, unsigned size) = 0;
|
||||||
|
|
||||||
/** Receive data from the remote host
|
/** Receive data from the remote host
|
||||||
\param handle Socket handle
|
* @param handle Socket handle
|
||||||
\param data The buffer in which to store the data received from the host
|
* @param data The buffer in which to store the data received from the host
|
||||||
\param size The maximum length of the buffer
|
* @param size The maximum length of the buffer
|
||||||
\return Number of received bytes on success, negative on failure
|
* @return Number of received bytes on success, negative on failure
|
||||||
\note This call is not-blocking, if this call would block, must
|
* @note This call is not-blocking, if this call would block, must
|
||||||
immediately return NSAPI_ERROR_WOULD_WAIT
|
* immediately return NSAPI_ERROR_WOULD_WAIT
|
||||||
*/
|
*/
|
||||||
virtual int socket_recv(void *handle, void *data, unsigned size) = 0;
|
virtual int socket_recv(void *handle, void *data, unsigned size) = 0;
|
||||||
|
|
||||||
/** Send a packet to a remote endpoint
|
/** Send a packet to a remote endpoint
|
||||||
\param handle Socket handle
|
* @param handle Socket handle
|
||||||
\param address The remote SocketAddress
|
* @param address The remote SocketAddress
|
||||||
\param data The packet to be sent
|
* @param data The packet to be sent
|
||||||
\param size The length of the packet to be sent
|
* @param size The length of the packet to be sent
|
||||||
\return the number of written bytes on success, negative on failure
|
* @return the number of written bytes on success, negative on failure
|
||||||
\note This call is not-blocking, if this call would block, must
|
* @note This call is not-blocking, if this call would block, must
|
||||||
immediately return NSAPI_ERROR_WOULD_WAIT
|
* immediately return NSAPI_ERROR_WOULD_WAIT
|
||||||
*/
|
*/
|
||||||
virtual int socket_sendto(void *handle, const SocketAddress &address, const void *data, unsigned size) = 0;
|
virtual int socket_sendto(void *handle, const SocketAddress &address, const void *data, unsigned size) = 0;
|
||||||
|
|
||||||
/** Receive a packet from a remote endpoint
|
/** Receive a packet from a remote endpoint
|
||||||
\param handle Socket handle
|
* @param handle Socket handle
|
||||||
\param address Destination for the remote SocketAddress or null
|
* @param address Destination for the remote SocketAddress or null
|
||||||
\param buffer The buffer for storing the incoming packet data
|
* @param buffer The buffer for storing the incoming packet data
|
||||||
If a packet is too long to fit in the supplied buffer,
|
* If a packet is too long to fit in the supplied buffer,
|
||||||
excess bytes are discarded
|
* excess bytes are discarded
|
||||||
\param size The length of the buffer
|
* @param size The length of the buffer
|
||||||
\return the number of received bytes on success, negative on failure
|
* @return the number of received bytes on success, negative on failure
|
||||||
\note This call is not-blocking, if this call would block, must
|
* @note This call is not-blocking, if this call would block, must
|
||||||
immediately return NSAPI_ERROR_WOULD_WAIT
|
* immediately return NSAPI_ERROR_WOULD_WAIT
|
||||||
*/
|
*/
|
||||||
virtual int socket_recvfrom(void *handle, SocketAddress *address, void *buffer, unsigned size) = 0;
|
virtual int socket_recvfrom(void *handle, SocketAddress *address, void *buffer, unsigned size) = 0;
|
||||||
|
|
||||||
/** Close the socket
|
/** Close the socket
|
||||||
\param handle Socket handle
|
* @param handle Socket handle
|
||||||
\param shutdown free the left-over data in message queues
|
* @param shutdown free the left-over data in message queues
|
||||||
*/
|
*/
|
||||||
virtual int socket_close(void *handle, bool shutdown) = 0;
|
virtual int socket_close(void *handle, bool shutdown) = 0;
|
||||||
|
|
||||||
/** Register a callback on when a new connection is ready
|
/** Register a callback on when a new connection is ready
|
||||||
\param handle Socket handle
|
* @param handle Socket handle
|
||||||
\param callback Function to call when accept will succeed, may be called in
|
* @param callback Function to call when accept will succeed, may be called in
|
||||||
interrupt context.
|
* interrupt context.
|
||||||
\param id Argument to pass to callback
|
* @param id Argument to pass to callback
|
||||||
*/
|
*/
|
||||||
virtual void socket_attach_accept(void *handle, void (*callback)(void *), void *id) = 0;
|
virtual void socket_attach_accept(void *handle, void (*callback)(void *), void *id) = 0;
|
||||||
|
|
||||||
/** Register a callback on when send is ready
|
/** Register a callback on when send is ready
|
||||||
\param handle Socket handle
|
* @param handle Socket handle
|
||||||
\param callback Function to call when accept will succeed, may be called in
|
* @param callback Function to call when accept will succeed, may be called in
|
||||||
interrupt context.
|
* interrupt context.
|
||||||
\param id Argument to pass to callback
|
* @param id Argument to pass to callback
|
||||||
*/
|
*/
|
||||||
virtual void socket_attach_send(void *handle, void (*callback)(void *), void *id) = 0;
|
virtual void socket_attach_send(void *handle, void (*callback)(void *), void *id) = 0;
|
||||||
|
|
||||||
/** Register a callback on when recv is ready
|
/** Register a callback on when recv is ready
|
||||||
\param handle Socket handle
|
* @param handle Socket handle
|
||||||
\param callback Function to call when accept will succeed, may be called in
|
* @param callback Function to call when accept will succeed, may be called in
|
||||||
interrupt context.
|
* interrupt context.
|
||||||
\param id Argument to pass to callback
|
* @param id Argument to pass to callback
|
||||||
*/
|
*/
|
||||||
virtual void socket_attach_recv(void *handle, void (*callback)(void *), void *id) = 0;
|
virtual void socket_attach_recv(void *handle, void (*callback)(void *), void *id) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -29,34 +29,34 @@ public:
|
||||||
virtual ~Socket();
|
virtual ~Socket();
|
||||||
|
|
||||||
/** Set blocking or non-blocking mode of the socket
|
/** Set blocking or non-blocking mode of the socket
|
||||||
\param blocking true for blocking mode, false for non-blocking mode.
|
* @param blocking true for blocking mode, false for non-blocking mode.
|
||||||
*/
|
*/
|
||||||
void set_blocking(bool blocking);
|
void set_blocking(bool blocking);
|
||||||
|
|
||||||
/** Set timeout on a socket operation if blocking behaviour is enabled
|
/** Set timeout on a socket operation if blocking behaviour is enabled
|
||||||
\param timeout timeout in ms
|
* @param timeout timeout in ms
|
||||||
*/
|
*/
|
||||||
void set_timeout(unsigned int timeout);
|
void set_timeout(unsigned int timeout);
|
||||||
|
|
||||||
/** Set socket options
|
/* Set socket options
|
||||||
\param optname Option ID
|
* @param optname Option ID
|
||||||
\param optval Option value
|
* @param optval Option value
|
||||||
\param optlen Length of the option value
|
* @param optlen Length of the option value
|
||||||
\return 0 on success, negative on failure
|
* @return 0 on success, negative on failure
|
||||||
*/
|
*/
|
||||||
int set_option(int optname, const void *optval, unsigned optlen);
|
int set_option(int optname, const void *optval, unsigned optlen);
|
||||||
|
|
||||||
/** Get socket options
|
/* Get socket options
|
||||||
\param optname Option ID
|
* @param optname Option ID
|
||||||
\param optval Buffer pointer where to write the option value
|
* @param optval Buffer pointer where to write the option value
|
||||||
\param optlen Length of the option value
|
* @param optlen Length of the option value
|
||||||
\return 0 on success, negative on failure
|
* @return 0 on success, negative on failure
|
||||||
*/
|
*/
|
||||||
int get_option(int optname, void *optval, unsigned *optlen);
|
int get_option(int optname, void *optval, unsigned *optlen);
|
||||||
|
|
||||||
/** Close the socket
|
/** Close the socket
|
||||||
\param shutdown free the left-over data in message queues
|
* @param shutdown free the left-over data in message queues
|
||||||
*/
|
*/
|
||||||
int close(bool shutdown=true);
|
int close(bool shutdown=true);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
|
@ -36,42 +36,42 @@ class NetworkInterface;
|
||||||
class SocketAddress {
|
class SocketAddress {
|
||||||
public:
|
public:
|
||||||
/** SocketAddress construction using DNS resolution
|
/** SocketAddress construction using DNS resolution
|
||||||
/param iface NetworkInterface to use for DNS resolution
|
* @param iface NetworkInterface to use for DNS resolution
|
||||||
/param addr Null-terminated hostname that will be resolved
|
* @param addr Null-terminated hostname that will be resolved
|
||||||
/param port 16-bit port
|
* @param port 16-bit port
|
||||||
/note on failure, IP address and port will be set to null
|
* @note on failure, IP address and port will be set to null
|
||||||
*/
|
*/
|
||||||
SocketAddress(NetworkInterface *iface, const char *addr, uint16_t port = 0);
|
SocketAddress(NetworkInterface *iface, const char *addr, uint16_t port = 0);
|
||||||
|
|
||||||
/** SocketAddress construction
|
/** SocketAddress construction
|
||||||
/param addr Null-terminated IP address
|
* @param addr Null-terminated IP address
|
||||||
/param port 16-bit port
|
* @param port 16-bit port
|
||||||
/note on failure, IP address and port will be set to null
|
* @note on failure, IP address and port will be set to null
|
||||||
*/
|
*/
|
||||||
SocketAddress(const char *addr = 0, uint16_t port = 0);
|
SocketAddress(const char *addr = 0, uint16_t port = 0);
|
||||||
|
|
||||||
/** SocketAddress construction
|
/** SocketAddress construction
|
||||||
/param addr SocketAddress to copy
|
* @param addr SocketAddress to copy
|
||||||
*/
|
*/
|
||||||
SocketAddress(const SocketAddress &addr);
|
SocketAddress(const SocketAddress &addr);
|
||||||
|
|
||||||
/** Set the IP address
|
/** Set the IP address
|
||||||
\param addr Null-terminated string representing the IP address
|
* @param addr Null-terminated string representing the IP address
|
||||||
*/
|
*/
|
||||||
void set_ip_address(const char *addr);
|
void set_ip_address(const char *addr);
|
||||||
|
|
||||||
/** Set the port
|
/** Set the port
|
||||||
\param port 16-bit port
|
* @param port 16-bit port
|
||||||
*/
|
*/
|
||||||
void set_port(uint16_t port);
|
void set_port(uint16_t port);
|
||||||
|
|
||||||
/** Get the IP address
|
/** Get the IP address
|
||||||
\return The string representation of the IP Address
|
* @return The string representation of the IP Address
|
||||||
*/
|
*/
|
||||||
const char *get_ip_address() const;
|
const char *get_ip_address() const;
|
||||||
|
|
||||||
/** Get the port
|
/** Get the port
|
||||||
\return The 16-bit port
|
* @return The 16-bit port
|
||||||
*/
|
*/
|
||||||
uint16_t get_port(void) const;
|
uint16_t get_port(void) const;
|
||||||
|
|
||||||
|
|
|
@ -26,33 +26,33 @@
|
||||||
class TCPServer : public Socket {
|
class TCPServer : public Socket {
|
||||||
public:
|
public:
|
||||||
/** TCP Server lifetime
|
/** TCP Server lifetime
|
||||||
*/
|
*/
|
||||||
TCPServer(NetworkInterface *iface);
|
TCPServer(NetworkInterface *iface);
|
||||||
virtual ~TCPServer();
|
virtual ~TCPServer();
|
||||||
|
|
||||||
/** Bind a socket to a specific port
|
/** Bind a socket to a specific port
|
||||||
\param port The port to listen for incoming connections on
|
* @param port The port to listen for incoming connections on
|
||||||
\return 0 on success, negative on failure
|
* @return 0 on success, negative on failure
|
||||||
*/
|
*/
|
||||||
int bind(uint16_t port);
|
int bind(uint16_t port);
|
||||||
|
|
||||||
/** Start listening for incoming connections
|
/** Start listening for incoming connections
|
||||||
\param backlog Number of pending connections that can be queued up at any
|
* @param backlog Number of pending connections that can be queued up at any
|
||||||
one time [Default: 1]
|
* one time [Default: 1]
|
||||||
\return 0 on success, negative on failure
|
* @return 0 on success, negative on failure
|
||||||
*/
|
*/
|
||||||
int listen(int backlog=1);
|
int listen(int backlog=1);
|
||||||
|
|
||||||
/** Accept a new connection.
|
/** Accept a new connection.
|
||||||
\param socket A TCPSocket instance that will handle the incoming connection.
|
* @param socket A TCPSocket instance that will handle the incoming connection.
|
||||||
\return 0 on success, negative on failure.
|
* @return 0 on success, negative on failure.
|
||||||
*/
|
*/
|
||||||
int accept(TCPSocket *connection);
|
int accept(TCPSocket *connection);
|
||||||
|
|
||||||
/** Register a callback on when a new connection is ready
|
/** Register a callback on when a new connection is ready
|
||||||
\param callback Function to call when accept will succeed, may be called in
|
* @param callback Function to call when accept will succeed, may be called in
|
||||||
interrupt context.
|
* interrupt context.
|
||||||
*/
|
*/
|
||||||
void attach_accept(FunctionPointer callback);
|
void attach_accept(FunctionPointer callback);
|
||||||
|
|
||||||
template <typename T, typename M>
|
template <typename T, typename M>
|
||||||
|
|
|
@ -20,53 +20,52 @@
|
||||||
#include "Socket.h"
|
#include "Socket.h"
|
||||||
#include "NetworkInterface.h"
|
#include "NetworkInterface.h"
|
||||||
|
|
||||||
/**
|
/** TCP socket connection
|
||||||
TCP socket connection
|
*/
|
||||||
*/
|
|
||||||
class TCPSocket : public Socket {
|
class TCPSocket : public Socket {
|
||||||
public:
|
public:
|
||||||
/** TCP socket lifetime
|
/** TCP socket lifetime
|
||||||
*/
|
*/
|
||||||
TCPSocket(NetworkInterface *iface);
|
TCPSocket(NetworkInterface *iface);
|
||||||
virtual ~TCPSocket();
|
virtual ~TCPSocket();
|
||||||
|
|
||||||
/** Connects this TCP socket to the server
|
/** Connects this TCP socket to the server
|
||||||
\param host The host to connect to. It can either be an IP Address
|
* @param host The host to connect to. It can either be an IP Address
|
||||||
or a hostname that will be resolved with DNS
|
* or a hostname that will be resolved with DNS
|
||||||
\param port The host's port to connect to
|
* @param port The host's port to connect to
|
||||||
\return 0 on success, negative on failure
|
* @return 0 on success, negative on failure
|
||||||
*/
|
*/
|
||||||
int connect(const char *host, uint16_t port);
|
int connect(const char *host, uint16_t port);
|
||||||
|
|
||||||
/** Connects this TCP socket to the server
|
/** Connects this TCP socket to the server
|
||||||
\param address SocketAddress to connect to
|
* @param address SocketAddress to connect to
|
||||||
\return 0 on success, negative on failure
|
* @return 0 on success, negative on failure
|
||||||
*/
|
*/
|
||||||
int connect(const SocketAddress &address);
|
int connect(const SocketAddress &address);
|
||||||
|
|
||||||
/** Check if the socket is connected
|
/** Check if the socket is connected
|
||||||
\return true if connected, false otherwise
|
* @return true if connected, false otherwise
|
||||||
*/
|
*/
|
||||||
bool is_connected();
|
bool is_connected();
|
||||||
|
|
||||||
/** Send data to the remote host
|
/** Send data to the remote host
|
||||||
\param data The buffer to send to the host
|
* @param data The buffer to send to the host
|
||||||
\param size The length of the buffer to send
|
* @param size The length of the buffer to send
|
||||||
\return Number of written bytes on success, negative on failure
|
* @return Number of written bytes on success, negative on failure
|
||||||
*/
|
*/
|
||||||
int send(const void *data, unsigned size);
|
int send(const void *data, unsigned size);
|
||||||
|
|
||||||
/** Receive data from the remote host
|
/** Receive data from the remote host
|
||||||
\param data The buffer in which to store the data received from the host
|
* @param data The buffer in which to store the data received from the host
|
||||||
\param size The maximum length of the buffer
|
* @param size The maximum length of the buffer
|
||||||
\return Number of received bytes on success, negative on failure
|
* @return Number of received bytes on success, negative on failure
|
||||||
*/
|
*/
|
||||||
int recv(void *data, unsigned size);
|
int recv(void *data, unsigned size);
|
||||||
|
|
||||||
/** Register a callback on when send is ready
|
/** Register a callback on when send is ready
|
||||||
\param callback Function to call when send will succeed, may be called in
|
* @param callback Function to call when send will succeed, may be called in
|
||||||
interrupt context.
|
* interrupt context.
|
||||||
*/
|
*/
|
||||||
void attach_send(FunctionPointer callback);
|
void attach_send(FunctionPointer callback);
|
||||||
|
|
||||||
template <typename T, typename M>
|
template <typename T, typename M>
|
||||||
|
@ -75,9 +74,9 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Register a callback on when recv is ready
|
/** Register a callback on when recv is ready
|
||||||
\param callback Function to call when recv will succeed, may be called in
|
* @param callback Function to call when recv will succeed, may be called in
|
||||||
interrupt context.
|
* interrupt context.
|
||||||
*/
|
*/
|
||||||
void attach_recv(FunctionPointer callback);
|
void attach_recv(FunctionPointer callback);
|
||||||
|
|
||||||
template <typename T, typename M>
|
template <typename T, typename M>
|
||||||
|
|
|
@ -20,44 +20,43 @@
|
||||||
#include "Socket.h"
|
#include "Socket.h"
|
||||||
#include "NetworkInterface.h"
|
#include "NetworkInterface.h"
|
||||||
|
|
||||||
/**
|
/** UDP Socket
|
||||||
UDP Socket
|
*/
|
||||||
*/
|
|
||||||
class UDPSocket : public Socket {
|
class UDPSocket : public Socket {
|
||||||
public:
|
public:
|
||||||
/** UDPSocket lifetime
|
/** UDPSocket lifetime
|
||||||
*/
|
*/
|
||||||
UDPSocket(NetworkInterface *iface);
|
UDPSocket(NetworkInterface *iface);
|
||||||
virtual ~UDPSocket();
|
virtual ~UDPSocket();
|
||||||
|
|
||||||
/** Bind a UDP Server Socket to a specific port
|
/** Bind a UDP Server Socket to a specific port
|
||||||
\param port The port to listen for incoming connections on
|
* @param port The port to listen for incoming connections on
|
||||||
\return 0 on success, negative on failure.
|
* @return 0 on success, negative on failure.
|
||||||
*/
|
*/
|
||||||
int bind(uint16_t port);
|
int bind(uint16_t port);
|
||||||
|
|
||||||
/** Send a packet to a remote endpoint
|
/** Send a packet to a remote endpoint
|
||||||
\param address The remote SocketAddress
|
* @param address The remote SocketAddress
|
||||||
\param data The packet to be sent
|
* @param data The packet to be sent
|
||||||
\param size The length of the packet to be sent
|
* @param size The length of the packet to be sent
|
||||||
\return the number of written bytes on success, negative on failure
|
* @return The number of written bytes on success, negative on failure
|
||||||
*/
|
*/
|
||||||
int sendto(const SocketAddress &address, const void *data, unsigned size);
|
int sendto(const SocketAddress &address, const void *data, unsigned size);
|
||||||
|
|
||||||
/** Receive a packet from a remote endpoint
|
/** Receive a packet from a remote endpoint
|
||||||
\param address Destination for the remote SocketAddress or null
|
* @param address Destination for the remote SocketAddress or null
|
||||||
\param buffer The buffer for storing the incoming packet data
|
* @param buffer The buffer for storing the incoming packet data
|
||||||
If a packet is too long to fit in the supplied buffer,
|
* If a packet is too long to fit in the supplied buffer,
|
||||||
excess bytes are discarded
|
* excess bytes are discarded
|
||||||
\param size The length of the buffer
|
* @param size The length of the buffer
|
||||||
\return the number of received bytes on success, negative on failure
|
* @return The number of received bytes on success, negative on failure
|
||||||
*/
|
*/
|
||||||
int recvfrom(SocketAddress *address, void *buffer, unsigned size);
|
int recvfrom(SocketAddress *address, void *buffer, unsigned size);
|
||||||
|
|
||||||
/** Register a callback on when send is ready
|
/** Register a callback on when send is ready
|
||||||
\param callback Function to call when send will succeed, may be called in
|
* @param callback Function to call when send will succeed, may be called in
|
||||||
interrupt context.
|
* interrupt context.
|
||||||
*/
|
*/
|
||||||
void attach_send(FunctionPointer callback);
|
void attach_send(FunctionPointer callback);
|
||||||
|
|
||||||
template <typename T, typename M>
|
template <typename T, typename M>
|
||||||
|
@ -66,9 +65,9 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Register a callback on when recv is ready
|
/** Register a callback on when recv is ready
|
||||||
\param callback Function to call when recv will succeed, may be called in
|
* @param callback Function to call when recv will succeed, may be called in
|
||||||
interrupt context.
|
* interrupt context.
|
||||||
*/
|
*/
|
||||||
void attach_recv(FunctionPointer callback);
|
void attach_recv(FunctionPointer callback);
|
||||||
|
|
||||||
template <typename T, typename M>
|
template <typename T, typename M>
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
#include "NetworkInterface.h"
|
#include "NetworkInterface.h"
|
||||||
|
|
||||||
/** Enum for WiFi encryption types
|
/** Enum for WiFi encryption types
|
||||||
*/
|
*/
|
||||||
enum nsapi_security_t {
|
enum nsapi_security_t {
|
||||||
NSAPI_SECURITY_NONE = 0, /*!< open access point */
|
NSAPI_SECURITY_NONE = 0, /*!< open access point */
|
||||||
NSAPI_SECURITY_WEP, /*!< phrase conforms to WEP */
|
NSAPI_SECURITY_WEP, /*!< phrase conforms to WEP */
|
||||||
|
@ -35,16 +35,16 @@ class WiFiInterface : public NetworkInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/** Start the interface
|
/** Start the interface
|
||||||
/param ssid Name of the network to connect to
|
* @param ssid Name of the network to connect to
|
||||||
/param pass Security passphrase to connect to the network
|
* @param pass Security passphrase to connect to the network
|
||||||
/param security Type of encryption for connection
|
* @param security Type of encryption for connection
|
||||||
/return 0 on success, negative on failure
|
* @return 0 on success, negative on failure
|
||||||
*/
|
*/
|
||||||
virtual int connect(const char *ssid, const char *pass, nsapi_security_t security = NSAPI_SECURITY_NONE) = 0;
|
virtual int connect(const char *ssid, const char *pass, nsapi_security_t security = NSAPI_SECURITY_NONE) = 0;
|
||||||
|
|
||||||
/** Stop the interface
|
/** Stop the interface
|
||||||
/return 0 on success, negative on failure
|
* @return 0 on success, negative on failure
|
||||||
*/
|
*/
|
||||||
virtual int disconnect() = 0;
|
virtual int disconnect() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue