mirror of https://github.com/ARMmbed/mbed-os.git
Revised documentation for Interface classes
parent
aa2357a836
commit
d36a0b6b88
|
@ -0,0 +1,45 @@
|
||||||
|
/* CellularInterface
|
||||||
|
* Copyright (c) 2015 ARM Limited
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef CELLULAR_INTERFACE_H
|
||||||
|
#define CELLULAR_INTERFACE_H
|
||||||
|
|
||||||
|
#include "NetworkInterface.h"
|
||||||
|
|
||||||
|
/** CellularInterface class
|
||||||
|
*
|
||||||
|
* Common interface that is shared between ethernet hardware
|
||||||
|
*/
|
||||||
|
class CellularInterface : public NetworkInterface
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/** Start the interface
|
||||||
|
*
|
||||||
|
* @param apn Optional name of the network to connect to
|
||||||
|
* @param username Optional username for your APN
|
||||||
|
* @param password Optional password for your APN
|
||||||
|
* @return 0 on success, negative error code on failure
|
||||||
|
*/
|
||||||
|
virtual int connect(const char *apn = 0, const char *username = 0, const char *password = 0) = 0;
|
||||||
|
|
||||||
|
/** Stop the interface
|
||||||
|
*
|
||||||
|
* @return 0 on success, negative error code on failure
|
||||||
|
*/
|
||||||
|
virtual int disconnect() = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -1,4 +1,4 @@
|
||||||
/* Socket
|
/* EthernetInterface
|
||||||
* Copyright (c) 2015 ARM Limited
|
* Copyright (c) 2015 ARM Limited
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
@ -20,18 +20,21 @@
|
||||||
#include "NetworkInterface.h"
|
#include "NetworkInterface.h"
|
||||||
|
|
||||||
/** EthernetInterface class
|
/** EthernetInterface class
|
||||||
* Common interface that is shared between ethernet hardware
|
*
|
||||||
|
* Common interface that is shared between ethernet hardware.
|
||||||
*/
|
*/
|
||||||
class EthernetInterface : public NetworkInterface
|
class EthernetInterface : public NetworkInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/** Start the interface
|
/** Start the interface
|
||||||
* @return 0 on success, negative on failure
|
*
|
||||||
|
* @return 0 on success, negative error code on failure
|
||||||
*/
|
*/
|
||||||
virtual int connect() = 0;
|
virtual int connect() = 0;
|
||||||
|
|
||||||
/** Stop the interface
|
/** Stop the interface
|
||||||
* @return 0 on success, negative on failure
|
*
|
||||||
|
* @return 0 on success, negative error code on failure
|
||||||
*/
|
*/
|
||||||
virtual int disconnect() = 0;
|
virtual int disconnect() = 0;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* Socket
|
/* MeshInterface
|
||||||
* Copyright (c) 2015 ARM Limited
|
* Copyright (c) 2015 ARM Limited
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
@ -20,17 +20,20 @@
|
||||||
#include "NetworkInterface.h"
|
#include "NetworkInterface.h"
|
||||||
|
|
||||||
/** MeshInterface class
|
/** MeshInterface class
|
||||||
* Common interface that is shared between ethernet hardware
|
*
|
||||||
|
* Common interface that is shared between mesh hardware
|
||||||
*/
|
*/
|
||||||
class MeshInterface : public NetworkInterface
|
class MeshInterface : public NetworkInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/** Start the interface
|
/** Start the interface
|
||||||
|
*
|
||||||
* @return 0 on success, negative on failure
|
* @return 0 on success, negative on failure
|
||||||
*/
|
*/
|
||||||
virtual int connect() = 0;
|
virtual int connect() = 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;
|
||||||
|
|
|
@ -46,7 +46,7 @@ enum nsapi_error_t {
|
||||||
* The socket protocol specifies a particular protocol to
|
* The socket protocol specifies a particular protocol to
|
||||||
* be used with a newly created socket.
|
* be used with a newly created socket.
|
||||||
*
|
*
|
||||||
* @enum protocol_t
|
* @enum nsapi_protocol_t
|
||||||
*/
|
*/
|
||||||
enum nsapi_protocol_t {
|
enum nsapi_protocol_t {
|
||||||
NSAPI_TCP, /*!< Socket is of TCP type */
|
NSAPI_TCP, /*!< Socket is of TCP type */
|
||||||
|
@ -74,26 +74,29 @@ class NetworkInterface
|
||||||
public:
|
public:
|
||||||
virtual ~NetworkInterface() {};
|
virtual ~NetworkInterface() {};
|
||||||
|
|
||||||
/** Get the internally stored IP address
|
/** Get the local IP address
|
||||||
*
|
*
|
||||||
* @return IP address of the interface or null if not yet connected
|
* @return Null-terminated representation of the local IP address
|
||||||
|
* 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 local MAC address
|
||||||
*
|
*
|
||||||
* @return MAC address of the interface
|
* @return Null-terminated representation of the local MAC address
|
||||||
*/
|
*/
|
||||||
virtual const char *get_mac_address() = 0;
|
virtual const char *get_mac_address() = 0;
|
||||||
|
|
||||||
/** Translates a hostname to an IP address
|
/** Translates a hostname to an IP address
|
||||||
*
|
*
|
||||||
* The host name may be either a domain name or an IP address.
|
* The hostname may be either a domain name or an IP address. If the
|
||||||
|
* hostname is an IP address, no network transactions will be performed.
|
||||||
|
*
|
||||||
* If no stack-specific DNS resolution is provided, the hostname
|
* If no stack-specific DNS resolution is provided, the hostname
|
||||||
* will be resolve using a UDP socket on the stack.
|
* will be resolve using a UDP socket on the stack.
|
||||||
*
|
*
|
||||||
* @param address Destination for the host SocketAddress
|
* @param address Destination for the host SocketAddress
|
||||||
* @param host Host name to lookup
|
* @param host Hostname to resolve
|
||||||
* @return 0 on success, negative error code on failure
|
* @return 0 on success, negative error code on failure
|
||||||
*/
|
*/
|
||||||
virtual int gethostbyname(SocketAddress *address, const char *host);
|
virtual int gethostbyname(SocketAddress *address, const char *host);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* Socket
|
/* SocketAddress
|
||||||
* Copyright (c) 2015 ARM Limited
|
* Copyright (c) 2015 ARM Limited
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
@ -28,8 +28,11 @@
|
||||||
*/
|
*/
|
||||||
#define NSAPI_IP_BYTES NSAPI_IPv6_BYTES
|
#define NSAPI_IP_BYTES NSAPI_IPv6_BYTES
|
||||||
|
|
||||||
/** Enum of address families
|
/** Enum of IP address versions
|
||||||
* @enum nsapi_family_t
|
*
|
||||||
|
* The IP version specifies the type of an IP address.
|
||||||
|
*
|
||||||
|
* @enum nsapi_version_t
|
||||||
*/
|
*/
|
||||||
enum nsapi_version_t {
|
enum nsapi_version_t {
|
||||||
NSAPI_IPv4, /*!< Address is IPv4 */
|
NSAPI_IPv4, /*!< Address is IPv4 */
|
||||||
|
@ -56,74 +59,92 @@ enum nsapi_version_t {
|
||||||
class NetworkInterface;
|
class NetworkInterface;
|
||||||
|
|
||||||
|
|
||||||
/** A general address class composed of the IP address and optional port
|
/** SocketAddress class
|
||||||
|
*
|
||||||
|
* Representation of an IP address and port pair.
|
||||||
*/
|
*/
|
||||||
class SocketAddress {
|
class SocketAddress {
|
||||||
public:
|
public:
|
||||||
/** SocketAddress construction using DNS resolution
|
/** Create a SocketAddress from a hostname and port
|
||||||
* @param iface NetworkInterface to use for DNS resolution
|
*
|
||||||
* @param addr Null-terminated hostname that will be resolved
|
* The hostname may be either a domain name or an IP address. If the
|
||||||
|
* hostname is an IP address, no network transactions will be performed.
|
||||||
|
*
|
||||||
|
* On failure, the IP address and port will be set to zero
|
||||||
|
*
|
||||||
|
* @param iface Network stack to use for DNS resolution
|
||||||
|
* @param host Hostname to resolve
|
||||||
* @param port Optional 16-bit port
|
* @param port Optional 16-bit port
|
||||||
* @note on failure, IP address and port will be set to zero
|
|
||||||
*/
|
*/
|
||||||
SocketAddress(NetworkInterface *iface, const char *addr, uint16_t port = 0);
|
SocketAddress(NetworkInterface *iface, const char *host, uint16_t port = 0);
|
||||||
|
|
||||||
/** SocketAddress construction
|
/** Create a SocketAddress from an IP address and port
|
||||||
* @param addr Null-terminated IP address
|
*
|
||||||
|
* @param host Null-terminated representation of the IP address
|
||||||
* @param port Optional 16-bit port
|
* @param port Optional 16-bit port
|
||||||
*/
|
*/
|
||||||
SocketAddress(const char *addr = 0, uint16_t port = 0);
|
SocketAddress(const char *addr = 0, uint16_t port = 0);
|
||||||
|
|
||||||
/** SocketAddress construction
|
/** Create a SocketAddress from a raw IP address and port
|
||||||
* @param bytes Bytes to assign to address in big-endian order
|
*
|
||||||
|
* @param bytes Raw IP address in big-endian order
|
||||||
* @param version IP address version, NSAPI_IPv4 or NSAPI_IPv6
|
* @param version IP address version, NSAPI_IPv4 or NSAPI_IPv6
|
||||||
* @param port Optional 16-bit port
|
* @param port Optional 16-bit port
|
||||||
*/
|
*/
|
||||||
SocketAddress(const void *bytes, nsapi_version_t version, uint16_t port = 0);
|
SocketAddress(const void *bytes, nsapi_version_t version, uint16_t port = 0);
|
||||||
|
|
||||||
/** SocketAddress construction
|
/** Create a SocketAddress from another SocketAddress
|
||||||
* @param addr SocketAddress to copy
|
*
|
||||||
|
* @param address 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 represention of the IP address
|
||||||
*/
|
*/
|
||||||
void set_ip_address(const char *addr);
|
void set_ip_address(const char *addr);
|
||||||
|
|
||||||
/** Set the IP address bytes directly
|
/** Set the raw IP address
|
||||||
* @param bytes Bytes to assign to address in big-endian order
|
*
|
||||||
|
* @param bytes Raw IP address in big-endian order
|
||||||
* @param version IP address version, NSAPI_IPv4 or NSAPI_IPv6
|
* @param version IP address version, NSAPI_IPv4 or NSAPI_IPv6
|
||||||
*/
|
*/
|
||||||
void set_ip_bytes(const void *bytes, nsapi_version_t version);
|
void set_ip_bytes(const void *bytes, nsapi_version_t version);
|
||||||
|
|
||||||
/** 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 Null-terminated representation of the IP Address
|
||||||
*/
|
*/
|
||||||
const char *get_ip_address() const;
|
const char *get_ip_address() const;
|
||||||
|
|
||||||
/** Get the IP address bytes directly
|
/** Get the raw IP address
|
||||||
* @return IP address bytes
|
*
|
||||||
|
* @return Raw IP address in big-endian order
|
||||||
*/
|
*/
|
||||||
const void *get_ip_bytes() const;
|
const void *get_ip_bytes() const;
|
||||||
|
|
||||||
/** Get the type of the IP address
|
/** Get the IP address version
|
||||||
|
*
|
||||||
* @return IP address version, NSAPI_IPv4 or NSAPI_IPv6
|
* @return IP address version, NSAPI_IPv4 or NSAPI_IPv6
|
||||||
*/
|
*/
|
||||||
nsapi_version_t get_ip_version() const;
|
nsapi_version_t get_ip_version() const;
|
||||||
|
|
||||||
/** Get the port
|
/** Get the port
|
||||||
|
*
|
||||||
* @return The 16-bit port
|
* @return The 16-bit port
|
||||||
*/
|
*/
|
||||||
uint16_t get_port() const;
|
uint16_t get_port() const;
|
||||||
|
|
||||||
/** Determine if address is all zeros
|
/** Test if address is zero
|
||||||
* @return True if address is not zero address
|
*
|
||||||
|
* @return True if address is not zero
|
||||||
*/
|
*/
|
||||||
operator bool() const;
|
operator bool() const;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* Socket
|
/* TCPServer
|
||||||
* Copyright (c) 2015 ARM Limited
|
* Copyright (c) 2015 ARM Limited
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* Socket
|
/* TCPSocket
|
||||||
* Copyright (c) 2015 ARM Limited
|
* Copyright (c) 2015 ARM Limited
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* Socket
|
/* UDPSocket
|
||||||
* Copyright (c) 2015 ARM Limited
|
* Copyright (c) 2015 ARM Limited
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* Socket
|
/* WiFiInterface
|
||||||
* Copyright (c) 2015 ARM Limited
|
* Copyright (c) 2015 ARM Limited
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
@ -19,7 +19,12 @@
|
||||||
|
|
||||||
#include "NetworkInterface.h"
|
#include "NetworkInterface.h"
|
||||||
|
|
||||||
/** Enum for WiFi encryption types
|
/** Enum of WiFi encryption types
|
||||||
|
*
|
||||||
|
* The security type specifies a particular security to use when
|
||||||
|
* connected to a WiFi network
|
||||||
|
*
|
||||||
|
* @enum nsapi_protocol_t
|
||||||
*/
|
*/
|
||||||
enum nsapi_security_t {
|
enum nsapi_security_t {
|
||||||
NSAPI_SECURITY_NONE = 0, /*!< open access point */
|
NSAPI_SECURITY_NONE = 0, /*!< open access point */
|
||||||
|
@ -29,21 +34,27 @@ enum nsapi_security_t {
|
||||||
};
|
};
|
||||||
|
|
||||||
/** WiFiInterface class
|
/** WiFiInterface class
|
||||||
|
*
|
||||||
* Common interface that is shared between WiFi devices
|
* Common interface that is shared between WiFi devices
|
||||||
*/
|
*/
|
||||||
class WiFiInterface : public NetworkInterface
|
class WiFiInterface : public NetworkInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/** Start the interface
|
/** Start the interface
|
||||||
|
*
|
||||||
|
* Attempts to connect to a WiFi network. If passphrase is invalid,
|
||||||
|
* NSAPI_ERROR_AUTH_ERROR is returned.
|
||||||
|
*
|
||||||
* @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 error code 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 error code on failure
|
||||||
*/
|
*/
|
||||||
virtual int disconnect() = 0;
|
virtual int disconnect() = 0;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue