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.
Dependents: HelloWizFi250Interface
Fork of NetworkSocketAPI by
Revision 43:09ea32f2eb54, committed 2016-02-24
- Comitter:
- Christopher Haster
- Date:
- Wed Feb 24 22:04:19 2016 -0600
- Branch:
- api-changes
- Parent:
- 42:49893d13c432
- Child:
- 44:aef3f416e4b0
- Commit message:
- Responded to feedback in API decisions
- Removed small .cpp files
- Added null _iface checks
- Matched mbed coding standard
- Removed setTimeout/getTimeout
Changed in this revision
--- a/NetworkInterface.cpp Tue Feb 23 05:07:02 2016 -0600
+++ b/NetworkInterface.cpp Wed Feb 24 22:04:19 2016 -0600
@@ -20,7 +20,6 @@
#include <string.h>
NetworkInterface::NetworkInterface()
- : _timeout(15000)
{
memset(_ip_address, 0, NS_IP_SIZE);
memset(_network_mask, 0, NS_IP_SIZE);
@@ -76,16 +75,6 @@
}
}
-void NetworkInterface::setTimeout(uint32_t timeout)
-{
- _timeout = timeout;
-}
-
-uint32_t NetworkInterface::getTimeout()
-{
- return _timeout;
-}
-
bool NetworkInterface::isConnected()
{
return getIPAddress() != 0;
--- a/NetworkInterface.h Tue Feb 23 05:07:02 2016 -0600
+++ b/NetworkInterface.h Wed Feb 24 22:04:19 2016 -0600
@@ -74,17 +74,6 @@
* @return String MAC address of the interface
*/
virtual const char *getMACAddress() = 0;
-
- /** Set a timeout on network operations
- * @param timeout Maximum time in milliseconds for socket operations
- */
- virtual void setTimeout(uint32_t timeout);
-
- /** Get the current timeout on network operations
- * @return Maximum time in milliseconds for socket operations
- */
- virtual uint32_t getTimeout();
-
/** Get the current status of the interface
* @return true if connected
@@ -119,7 +108,6 @@
char _ip_address[NS_IP_SIZE];
char _network_mask[NS_IP_SIZE];
char _gateway[NS_IP_SIZE];
- uint32_t _timeout;
};
#endif
--- a/Socket.cpp Tue Feb 23 05:07:02 2016 -0600
+++ b/Socket.cpp Wed Feb 24 22:04:19 2016 -0600
@@ -24,19 +24,25 @@
{
memset(_ip_address, 0, NS_IP_SIZE);
_port = 0;
-
- _timeout = iface->getTimeout();
}
Socket::~Socket()
{
- if (_socket) close();
+ if (_socket) {
+ close();
+ }
}
int32_t Socket::setURL(const char *url)
{
+ if (!_iface) {
+ return -4;
+ }
+
int32_t err = _iface->getHostByName(url, _ip_address);
- if (err) return err;
+ if (err) {
+ return err;
+ }
if (_socket) {
_socket->setIPAddress(_ip_address);
@@ -77,20 +83,6 @@
return _port;
}
-void Socket::setTimeout(uint32_t timeout)
-{
- _timeout = timeout;
-
- if (_socket) {
- _socket->setTimeout(timeout);
- }
-}
-
-uint32_t Socket::getTimeout() const
-{
- return _timeout;
-}
-
bool Socket::isConnected()
{
if (!_socket) {
@@ -100,16 +92,24 @@
return _socket->isConnected();
}
-int32_t Socket::open(const char *url, uint16_t port)
+int32_t Socket::open(const char *address, uint16_t port)
{
int32_t err;
err = close();
- if (err) return err;
+ if (err) {
+ return err;
+ }
- if (url) {
- err = setURL(url);
- if (err) return err;
+ if (!_iface) {
+ return -4;
+ }
+
+ if (address) {
+ err = setURL(address);
+ if (err) {
+ return err;
+ }
}
if (port) {
@@ -121,9 +121,9 @@
}
_socket = _iface->createSocket(_proto);
- if (!_socket) return -2;
-
- _socket->setTimeout(_timeout);
+ if (!_socket) {
+ return -2;
+ }
err = _socket->open(_ip_address, _port);
@@ -136,7 +136,9 @@
int32_t Socket::close()
{
- if (!_socket) return 0;
+ if (!_socket) {
+ return 0;
+ }
int32_t err = _socket->close();
@@ -149,13 +151,17 @@
int32_t Socket::send(const void *data, uint32_t len)
{
- if (!_socket) return -2;
+ if (!_socket) {
+ return -2;
+ }
return _socket->send(data, len);
}
int32_t Socket::recv(void *data, uint32_t len)
{
- if (!_socket) return -2;
+ if (!_socket) {
+ return -2;
+ }
return _socket->recv(data, len);
}
--- a/Socket.h Tue Feb 23 05:07:02 2016 -0600
+++ b/Socket.h Wed Feb 24 22:04:19 2016 -0600
@@ -53,16 +53,6 @@
*/
uint16_t getPort() const;
- /** Set a timeout on network operations
- * @param timeout Maximum time in milliseconds for socket operations
- */
- void setTimeout(uint32_t timeout);
-
- /** Get the current timeout on network operations
- * @return Maximum time in milliseconds for socket operations
- */
- uint32_t getTimeout() const;
-
/** Returns status of socket
* @return true if connected
*/
@@ -70,11 +60,11 @@
/** Open a connection to the underlying address
- * @param url Optional URL or IP address to connect to
+ * @param address Optional URL or IP address to connect to
* @param port Optional port to connect to
* @return 0 on success
*/
- int32_t open(const char *url = 0, uint16_t port = 0);
+ int32_t open(const char *address = 0, uint16_t port = 0);
/** Close an open connection
* @return 0 on success
@@ -107,7 +97,6 @@
char _ip_address[NS_IP_SIZE];
uint16_t _port;
- uint32_t _timeout;
};
#endif
--- a/SocketInterface.h Tue Feb 23 05:07:02 2016 -0600
+++ b/SocketInterface.h Wed Feb 24 22:04:19 2016 -0600
@@ -39,22 +39,26 @@
/** Set the IP address of the socket
* @param ip IP address to connect to
*/
- virtual void setIPAddress(const char *ip);
+ virtual void setIPAddress(const char *ip) { (void)ip; }
/** Set the port of the socket
* @param port Port to connect to
*/
- virtual void setPort(uint16_t port);
+ virtual void setPort(uint16_t port) { (void)port; }
/** Set a timeout on network operations
* @param timeout Maximum time in milliseconds for socket operations
*/
- virtual void setTimeout(uint32_t timeout);
+ virtual void setTimeout(uint32_t timeout) { (void)timeout; }
/** Status of the socket
* @return True if connected
*/
- virtual bool isConnected();
+ virtual bool isConnected()
+ {
+ // By default return true if socket was created successfully
+ return true;
+ }
/** Open a connection to the underlying address
* @param ip IP address to connect to
--- a/TCPSocket.h Tue Feb 23 05:07:02 2016 -0600
+++ b/TCPSocket.h Wed Feb 24 22:04:19 2016 -0600
@@ -32,7 +32,10 @@
* @param url Optional URL to connect to, copied internally
* @param port Optional port to connect to
*/
- TCPSocket(NetworkInterface *iface);
+ TCPSocket(NetworkInterface *iface)
+ : Socket(iface, SOCK_TCP)
+ {
+ }
};
#endif
--- a/UDPSocket.h Tue Feb 23 05:07:02 2016 -0600
+++ b/UDPSocket.h Wed Feb 24 22:04:19 2016 -0600
@@ -32,7 +32,10 @@
* @param ip Optional URL to connect to, copied internally
* @param port Optional port to connect to
*/
- UDPSocket(NetworkInterface *iface);
+ UDPSocket(NetworkInterface *iface)
+ : Socket(iface, SOCK_UDP)
+ {
+ }
};
#endif
