Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: DnsQuery
Dependents: WizFi310_TCP_Echo_Server_Example
Fork of NetworkSocketAPI by
NetworkInterface.h
- Committer:
- austin.blackstone@arm.com
- Date:
- 2015-06-01
- Revision:
- 6:7437289cb2e9
- Parent:
- 5:fa54ca1af2cd
- Child:
- 7:b147c08301be
File content as of revision 6:7437289cb2e9:
/* NetworkInterface Base Class
* 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 NETWORKINTERFACE_H
#define NETWORKINTERFACE_H
/** NetworkInterface class.
* This is a common interface that is shared between all hardware that connect
* to a network over IP.
*/
class NetworkInterface
{
public:
/**
* Initialize the network interface with DHCP.
*
* \returns 0 on success, a negative number on failure
*/
virtual int init(void) const = 0;
/**
* Initialize the network interface with a static IP address.
*
* @param ip The static IP address to use
* @param mask The IP address mask
* @param gateway The gateway to use
*
* \returns 0 on success, a negative number on failure
*/
int init(const char *ip, const char *mask, const char *gateway) const = 0;
/**
* Start the interface, using DHCP if needed.
*
* @param timeout_ms Time in miliseconds to wait while attempting to connect before timing out
*
* \returns 0 on success, a negative number on failure
*/
virtual int connect(const unsigned int timeout_ms=15000) const = 0;
/**
* Stop the interface, bringing down dhcp if necessary.
*
* \returns 0 on success, a negative number on failure
*/
virtual int disconnect(void) const = 0;
/**
* Get the current IP address.
*
* \returns a pointer to a string containing the IP address.
*/
virtual char *getIPAddress(void) const = 0;
/**
* Get the current gateway address.
*
* \returns a pointer to a string containing the gateway address.
*/
virtual char *getGateway(void) const = 0;
/**
* Get the current network mask.
*
* \returns a pointer to a string containing the network mask.
*/
virtual char *getNetworkMask(void) const = 0;
/**
* Get the devices MAC address.
*
* \returns a pointer to a string containing the mac address.
*/
virtual char *getMACAddress(void) const = 0;
/**
* Get the current status of the interface connection.
*
* \returns true if connected, false otherwise.
*/
virtual int isConnected(void) const = 0;
};
#endif
