mirror of https://github.com/ARMmbed/mbed-os.git
Separate Stack/Interface concept into two distinct classes
parent
49ba2be3a7
commit
d17fa4faad
|
@ -17,7 +17,7 @@
|
||||||
#ifndef ESP8266_INTERFACE_H
|
#ifndef ESP8266_INTERFACE_H
|
||||||
#define ESP8266_INTERFACE_H
|
#define ESP8266_INTERFACE_H
|
||||||
|
|
||||||
#include "WiFiStack.h"
|
#include "WiFiInterface.h"
|
||||||
#include "ESP8266.h"
|
#include "ESP8266.h"
|
||||||
|
|
||||||
#define ESP8266_SOCKET_COUNT 5
|
#define ESP8266_SOCKET_COUNT 5
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
/** ESP8266Interface class
|
/** ESP8266Interface class
|
||||||
* Implementation of the NetworkStack for the ESP8266
|
* Implementation of the NetworkStack for the ESP8266
|
||||||
*/
|
*/
|
||||||
class ESP8266Interface : public WiFiStack
|
class ESP8266Interface : public NetworkStack, public WiFiInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/** ESP8266Interface lifetime
|
/** ESP8266Interface lifetime
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
#ifndef LWIP_INTERFACE_H
|
#ifndef LWIP_INTERFACE_H
|
||||||
#define LWIP_INTERFACE_H
|
#define LWIP_INTERFACE_H
|
||||||
|
|
||||||
#include "EthernetStack.h"
|
#include "EthernetInterface.h"
|
||||||
#include "rtos.h"
|
#include "rtos.h"
|
||||||
#include "lwip/netif.h"
|
#include "lwip/netif.h"
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
/** LWIPInterface class
|
/** LWIPInterface class
|
||||||
* Implementation of the NetworkStack for LWIP
|
* Implementation of the NetworkStack for LWIP
|
||||||
*/
|
*/
|
||||||
class LWIPInterface : public EthernetStack
|
class LWIPInterface : public NetworkStack, public EthernetInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/** Start the interface
|
/** Start the interface
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* CellularStack
|
/* CellularInterface
|
||||||
* 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,11 +19,11 @@
|
||||||
|
|
||||||
#include "NetworkStack.h"
|
#include "NetworkStack.h"
|
||||||
|
|
||||||
/** CellularStack class
|
/** CellularInterface class
|
||||||
*
|
*
|
||||||
* Common interface that is shared between ethernet hardware
|
* Common interface that is shared between ethernet hardware
|
||||||
*/
|
*/
|
||||||
class CellularStack : public NetworkStack
|
class CellularInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/** Start the interface
|
/** Start the interface
|
||||||
|
@ -40,6 +40,12 @@ public:
|
||||||
* @return 0 on success, negative error code on failure
|
* @return 0 on success, negative error code on failure
|
||||||
*/
|
*/
|
||||||
virtual int disconnect() = 0;
|
virtual int disconnect() = 0;
|
||||||
|
|
||||||
|
/** Get the local MAC address
|
||||||
|
*
|
||||||
|
* @return Null-terminated representation of the local MAC address
|
||||||
|
*/
|
||||||
|
virtual const char *get_mac_address() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -1,4 +1,4 @@
|
||||||
/* EthernetStack
|
/* 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");
|
||||||
|
@ -19,11 +19,11 @@
|
||||||
|
|
||||||
#include "NetworkStack.h"
|
#include "NetworkStack.h"
|
||||||
|
|
||||||
/** EthernetStack class
|
/** EthernetInterface class
|
||||||
*
|
*
|
||||||
* Common interface that is shared between ethernet hardware.
|
* Common interface that is shared between ethernet hardware.
|
||||||
*/
|
*/
|
||||||
class EthernetStack : public NetworkStack
|
class EthernetInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/** Start the interface
|
/** Start the interface
|
||||||
|
@ -37,6 +37,12 @@ public:
|
||||||
* @return 0 on success, negative error code on failure
|
* @return 0 on success, negative error code on failure
|
||||||
*/
|
*/
|
||||||
virtual int disconnect() = 0;
|
virtual int disconnect() = 0;
|
||||||
|
|
||||||
|
/** Get the local MAC address
|
||||||
|
*
|
||||||
|
* @return Null-terminated representation of the local MAC address
|
||||||
|
*/
|
||||||
|
virtual const char *get_mac_address() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -1,4 +1,4 @@
|
||||||
/* MeshStack
|
/* 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");
|
||||||
|
@ -19,11 +19,11 @@
|
||||||
|
|
||||||
#include "NetworkStack.h"
|
#include "NetworkStack.h"
|
||||||
|
|
||||||
/** MeshStack class
|
/** MeshInterface class
|
||||||
*
|
*
|
||||||
* Common interface that is shared between mesh hardware
|
* Common interface that is shared between mesh hardware
|
||||||
*/
|
*/
|
||||||
class MeshStack : public NetworkStack
|
class MeshInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/** Start the interface
|
/** Start the interface
|
||||||
|
@ -37,6 +37,12 @@ public:
|
||||||
* @return 0 on success, negative on failure
|
* @return 0 on success, negative on failure
|
||||||
*/
|
*/
|
||||||
virtual int disconnect() = 0;
|
virtual int disconnect() = 0;
|
||||||
|
|
||||||
|
/** Get the local MAC address
|
||||||
|
*
|
||||||
|
* @return Null-terminated representation of the local MAC address
|
||||||
|
*/
|
||||||
|
virtual const char *get_mac_address() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -77,14 +77,6 @@ enum nsapi_option_t {
|
||||||
NSAPI_RCVBUF, /*!< Sets recv buffer size */
|
NSAPI_RCVBUF, /*!< Sets recv buffer size */
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Maximum size of MAC address representation
|
|
||||||
*/
|
|
||||||
#define NSAPI_MAC_SIZE 18
|
|
||||||
|
|
||||||
/** Maximum number of bytes for MAC address
|
|
||||||
*/
|
|
||||||
#define NSAPI_MAC_BYTES 6
|
|
||||||
|
|
||||||
|
|
||||||
/** NetworkStack class
|
/** NetworkStack class
|
||||||
*
|
*
|
||||||
|
@ -105,12 +97,6 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual const char *get_ip_address() = 0;
|
virtual const char *get_ip_address() = 0;
|
||||||
|
|
||||||
/** Get the local MAC address
|
|
||||||
*
|
|
||||||
* @return Null-terminated representation of the local MAC address
|
|
||||||
*/
|
|
||||||
virtual const char *get_mac_address() = 0;
|
|
||||||
|
|
||||||
/** Translates a hostname to an IP address
|
/** Translates a hostname to an IP address
|
||||||
*
|
*
|
||||||
* The hostname may be either a domain name or an IP address. If the
|
* The hostname may be either a domain name or an IP address. If the
|
||||||
|
|
|
@ -52,9 +52,9 @@ int Socket::close()
|
||||||
if (!_socket) {
|
if (!_socket) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
_iface->socket_attach(_socket, 0, 0);
|
_iface->socket_attach(_socket, 0, 0);
|
||||||
|
|
||||||
void *volatile socket = _socket;
|
void *volatile socket = _socket;
|
||||||
_socket = 0;
|
_socket = 0;
|
||||||
return _iface->socket_close(socket);
|
return _iface->socket_close(socket);
|
||||||
|
|
|
@ -28,6 +28,14 @@
|
||||||
*/
|
*/
|
||||||
#define NSAPI_IP_BYTES NSAPI_IPv6_BYTES
|
#define NSAPI_IP_BYTES NSAPI_IPv6_BYTES
|
||||||
|
|
||||||
|
/** Maximum size of MAC address representation
|
||||||
|
*/
|
||||||
|
#define NSAPI_MAC_SIZE 18
|
||||||
|
|
||||||
|
/** Maximum number of bytes for MAC address
|
||||||
|
*/
|
||||||
|
#define NSAPI_MAC_BYTES 6
|
||||||
|
|
||||||
/** Enum of IP address versions
|
/** Enum of IP address versions
|
||||||
*
|
*
|
||||||
* The IP version specifies the type of an IP address.
|
* The IP version specifies the type of an IP address.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* WiFiStack
|
/* 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");
|
||||||
|
@ -33,11 +33,11 @@ enum nsapi_security_t {
|
||||||
NSAPI_SECURITY_WPA2, /*!< phrase conforms to WPA2 */
|
NSAPI_SECURITY_WPA2, /*!< phrase conforms to WPA2 */
|
||||||
};
|
};
|
||||||
|
|
||||||
/** WiFiStack class
|
/** WiFiInterface class
|
||||||
*
|
*
|
||||||
* Common interface that is shared between WiFi devices
|
* Common interface that is shared between WiFi devices
|
||||||
*/
|
*/
|
||||||
class WiFiStack : public NetworkStack
|
class WiFiInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/** Start the interface
|
/** Start the interface
|
||||||
|
@ -57,6 +57,12 @@ public:
|
||||||
* @return 0 on success, negative error code on failure
|
* @return 0 on success, negative error code on failure
|
||||||
*/
|
*/
|
||||||
virtual int disconnect() = 0;
|
virtual int disconnect() = 0;
|
||||||
|
|
||||||
|
/** Get the local MAC address
|
||||||
|
*
|
||||||
|
* @return Null-terminated representation of the local MAC address
|
||||||
|
*/
|
||||||
|
virtual const char *get_mac_address() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
Loading…
Reference in New Issue