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:
- bridadan
- Date:
- 2015-05-19
- Revision:
- 2:ce08986b18b5
- Parent:
- 1:291a9d61e58a
- Child:
- 3:167dd63981b6
File content as of revision 2:ce08986b18b5:
/* 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() = 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
*/
virtual int init(char *ip, char *mask, char *gateway) = 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(unsigned int timeout_ms=15000) = 0;
/**
* Stop the interface, bringing down dhcp if necessary.
*
* \returns 0 on success, a negative number on failure
*/
virtual int disconnect() = 0;
/**
* Get the current IP address.
*
* \returns a pointer to a string containing the IP address.
*/
virtual char* getIPAddress() = 0;
/**
* Get the current gateway address.
*
* \returns a pointer to a string containing the gateway address.
*/
virtual char* getGateway() = 0;
/**
* Get the current network mask.
*
* \returns a pointer to a string containing the network mask.
*/
virtual char* getNetworkMask() = 0;
/**
* Get the current status of the interface connection.
*
* \returns true if connected, false otherwise.
*/
virtual bool isConnected(void) = 0;
};
#endif
