joey shelton / LED_Demo

Dependencies:   MAX44000 PWM_Tone_Library nexpaq_mdk

Fork of LED_Demo by Maxim nexpaq

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers NetworkInterface.h Source File

NetworkInterface.h

00001 /* NetworkStack
00002  * Copyright (c) 2015 ARM Limited
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *     http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 
00017 #ifndef NETWORK_INTERFACE_H
00018 #define NETWORK_INTERFACE_H
00019 
00020 // Predeclared class
00021 class NetworkStack;
00022 
00023 
00024 /** NetworkInterface class
00025  *
00026  *  Common interface that is shared between network devices
00027  */
00028 class NetworkInterface {
00029 public:
00030     virtual ~NetworkInterface() {};
00031 
00032     /** Get the local IP address
00033      *
00034      *  @return         Null-terminated representation of the local IP address
00035      *                  or null if not yet connected
00036      */
00037     virtual const char *get_ip_address() = 0;
00038 
00039 protected:
00040     friend class Socket;
00041     friend class UDPSocket;
00042     friend class TCPSocket;
00043     friend class TCPServer;
00044     friend class SocketAddress;
00045     template <typename IF>
00046     friend NetworkStack *nsapi_create_stack(IF *iface);
00047 
00048     /** Provide access to the NetworkStack object
00049      *
00050      *  @return The underlying NetworkStack object
00051      */
00052     virtual NetworkStack *get_stack() = 0;
00053 };
00054 
00055 
00056 #endif