19 #ifndef NETWORK_STACK_H    20 #define NETWORK_STACK_H    22 #include <type_traits>    23 #include "nsapi_types.h"   153                                                        const char *interface_name = NULL);
   222     virtual nsapi_error_t setstackopt(
int level, 
int optname, 
const void *optval, 
unsigned optlen);
   236     virtual nsapi_error_t getstackopt(
int level, 
int optname, 
void *optval, 
unsigned *optlen);
   427                                      int optname, 
const void *optval, 
unsigned optlen);
   443                                      int optname, 
void *optval, 
unsigned *optlen);
   486     return iface->get_stack();
   499 template <
typename IF>
   502     return _nsapi_create_stack(iface, std::is_convertible<IF *, NetworkStack *>());
 virtual nsapi_size_or_error_t socket_send(nsapi_socket_t handle, const void *data, nsapi_size_t size)=0
Send data over a TCP socket. 
Socket implementation that uses IP network stack. 
Base class for DNS provider. 
NetworkStack * nsapi_create_stack(nsapi_stack_t *stack)
Convert a raw nsapi_stack_t object into a C++ NetworkStack object. 
virtual nsapi_error_t socket_connect(nsapi_socket_t handle, const SocketAddress &address)=0
Connects TCP socket to a remote host. 
mbed::Callback< void(nsapi_value_or_error_t result, SocketAddress *address)> hostbyname_cb_t
Hostname translation callback (asynchronous) 
virtual nsapi_error_t socket_listen(nsapi_socket_t handle, int backlog)=0
Listen for connections on a TCP socket. 
Network Interface base class. 
void * nsapi_socket_t
Opaque handle for network sockets. 
virtual nsapi_value_or_error_t getaddrinfo_async(const char *hostname, SocketAddress *hints, hostbyname_cb_t callback, const char *interface_name=NULL)
Translates a hostname to the multiple IP addresses (asynchronous) 
virtual nsapi_error_t get_ip_address(SocketAddress *address)
Get the local IP address. 
virtual nsapi_error_t get_ip_address_if(SocketAddress *address, const char *interface_name)
Get the local IP address on interface name. 
signed int nsapi_error_t
Type used to represent error codes. 
virtual nsapi_error_t get_ipv6_link_local_address(SocketAddress *address)
Get the IPv6 link local address. 
virtual OnboardNetworkStack * onboardNetworkStack()
Dynamic downcast to a OnboardNetworkStack. 
virtual nsapi_size_or_error_t socket_recv(nsapi_socket_t handle, void *data, nsapi_size_t size)=0
Receive data over a TCP socket. 
virtual nsapi_error_t socket_close(nsapi_socket_t handle)=0
Close the socket. 
virtual nsapi_error_t socket_bind(nsapi_socket_t handle, const SocketAddress &address)=0
Bind a specific address to a socket. 
virtual nsapi_size_or_error_t socket_recvfrom(nsapi_socket_t handle, SocketAddress *address, void *buffer, nsapi_size_t size)=0
Receive a packet over a UDP socket. 
signed int nsapi_size_or_error_t
Type used to represent either a size or error passed through sockets. 
mbed OS API for onboard IP stack abstraction 
virtual nsapi_error_t gethostbyname_async_cancel(int id)
Cancels asynchronous hostname translation. 
virtual nsapi_value_or_error_t getaddrinfo(const char *hostname, SocketAddress *hints, SocketAddress **res, const char *interface_name=NULL)
Translate a hostname to the multiple IP addresses with specific version using network interface name...
signed int nsapi_value_or_error_t
Type used to represent either a value or error. 
virtual nsapi_size_or_error_t socket_sendto(nsapi_socket_t handle, const SocketAddress &address, const void *data, nsapi_size_t size)=0
Send a packet over a UDP socket. 
virtual nsapi_error_t socket_open(nsapi_socket_t *handle, nsapi_protocol_t proto)=0
Opens a socket. 
virtual nsapi_error_t get_dns_server(int index, SocketAddress *address, const char *interface_name=NULL)
Get a domain name server from a list of servers to query. 
virtual nsapi_error_t setsockopt(nsapi_socket_t handle, int level, int optname, const void *optval, unsigned optlen)
Set stack-specific socket options. 
Common interface that is shared between network devices. 
virtual nsapi_error_t add_dns_server(const SocketAddress &address, const char *interface_name=NULL)
Add a domain name server to list of servers to query. 
virtual void socket_attach(nsapi_socket_t handle, void(*callback)(void *), void *data)=0
Register a callback on state change of the socket. 
virtual nsapi_error_t gethostbyname(const char *host, SocketAddress *address, nsapi_version_t version=NSAPI_UNSPEC, const char *interface_name=NULL)
Translates a hostname to an IP address with specific version. 
unsigned int nsapi_size_t
Type used to represent the size of data passed through sockets. 
virtual nsapi_error_t getsockopt(nsapi_socket_t handle, int level, int optname, void *optval, unsigned *optlen)
Get stack-specific socket options. 
virtual nsapi_error_t socket_accept(nsapi_socket_t server, nsapi_socket_t *handle, SocketAddress *address=0)=0
Accepts a connection on a TCP socket. 
Callback class based on template specialization. 
virtual nsapi_value_or_error_t gethostbyname_async(const char *host, hostbyname_cb_t callback, nsapi_version_t version=NSAPI_UNSPEC, const char *interface_name=NULL)
Translates a hostname to multiple IP addresses (asynchronous) 
InternetDatagramSocket socket implementation.