Kenji Arai / mbed-os_TYBLE16

Dependents:   TYBLE16_simple_data_logger TYBLE16_MP3_Air

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers EthInterface.h Source File

EthInterface.h

00001 /*
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 /* @file EthInterface.h Common interface between Ethernet hardware */
00018 /** \addtogroup netinterface */
00019 /** @{*/
00020 
00021 #ifndef ETH_INTERFACE_H
00022 #define ETH_INTERFACE_H
00023 
00024 #include "netsocket/NetworkInterface.h"
00025 
00026 
00027 /** Common interface between Ethernet hardware.
00028  */
00029 class EthInterface : public virtual NetworkInterface {
00030 public:
00031 
00032     /** @copydoc NetworkInterface::ethInterface
00033      */
00034     virtual EthInterface *ethInterface ()
00035     {
00036         return this;
00037     }
00038 
00039     /** Get the default Ethernet interface.
00040      *
00041      * This is provided as a weak method so applications can override it.
00042      * Default behavior is to get the target's default interface, if
00043      * any.
00044      *
00045      * @return Pointer to interface, if one exists.
00046      */
00047     static EthInterface *get_default_instance();
00048 
00049 #if !defined(DOXYGEN_ONLY)
00050 protected:
00051 
00052     /** Get the target's default Ethernet interface.
00053      *
00054      * This is provided as a weak method so targets can override it. The
00055      * default implementation invokes EthernetInterface with the
00056      * default EMAC and default network stack, if DEVICE_EMAC is set.
00057      *
00058      * @return Pointer to interface, if one exists.
00059      */
00060     static EthInterface *get_target_default_instance();
00061 #endif //!defined(DOXYGEN_ONLY)
00062 };
00063 
00064 
00065 #endif
00066 
00067 /** @}*/