@startuml package "mbed OS Socket abstraction" { interface NetworkStack NetworkStack -o Socket abstract class Socket Socket <|-- UDPSocket Socket <|-- TCPSocket Socket <|-- TCPServer } interface NetworkInterface NetworkInterface --> NetworkStack : get_stack() EthernetInterface --|> NetworkInterface CellularInterface --|> NetworkInterface package "mbed-mesh-api" { abstract class MeshInterfaceNanostack <|-- LoWPANNDInterface MeshInterfaceNanostack <|-- ThreadInterface MeshInterfaceNanostack --|> NetworkInterface } hide empty members hide empty attributes hide empty fields @enduml