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:
- sam_grove
- Date:
- 2015-07-15
- Revision:
- 10:50b0a3f840df
- Parent:
- 7:b147c08301be
- Child:
- 11:47c32687a44c
File content as of revision 10:50b0a3f840df:
/* 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
#include "stdint.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 int32_t 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
*/
virtual int32_t 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 int32_t connect(uint32_t timeout_ms = 15000) const = 0;
/** Stop the interface, bringing down dhcp if necessary.
@returns 0 on success, a negative number on failure
*/
virtual int32_t 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, a negative number on failure
*/
virtual int32_t isConnected(void) const = 0;
};
#endif
