Skip to content

Commit 7ab9f4c

Browse files
committed
Added opaque nsapi_socket_t type
typedef void *nsapi_socket_t Helps avoid confusion with multiple void*s floating around, especially when passing a nsapi_socket_t by pointer as a destination. The nsapi_socket_t is just an opaque handle, implementations still need a cast to obtain implementation specific socket pointer.
1 parent d985d70 commit 7ab9f4c

File tree

3 files changed

+19
-14
lines changed

3 files changed

+19
-14
lines changed

NetworkStack.h

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ class NetworkStack
100100
* @param proto Protocol of socket to open, NSAPI_TCP or NSAPI_UDP
101101
* @return 0 on success, negative error code on failure
102102
*/
103-
virtual int socket_open(void **handle, nsapi_protocol_t proto) = 0;
103+
virtual int socket_open(nsapi_socket_t *handle, nsapi_protocol_t proto) = 0;
104104

105105
/** Close the socket
106106
*
@@ -110,7 +110,7 @@ class NetworkStack
110110
* @param handle Socket handle
111111
* @return 0 on success, negative error code on failure
112112
*/
113-
virtual int socket_close(void *handle) = 0;
113+
virtual int socket_close(nsapi_socket_t handle) = 0;
114114

115115
/** Bind a specific address to a socket
116116
*
@@ -121,7 +121,7 @@ class NetworkStack
121121
* @param address Local address to bind
122122
* @return 0 on success, negative error code on failure.
123123
*/
124-
virtual int socket_bind(void *handle, const SocketAddress &address) = 0;
124+
virtual int socket_bind(nsapi_socket_t handle, const SocketAddress &address) = 0;
125125

126126
/** Listen for connections on a TCP socket
127127
*
@@ -133,7 +133,7 @@ class NetworkStack
133133
* simultaneously
134134
* @return 0 on success, negative error code on failure
135135
*/
136-
virtual int socket_listen(void *handle, int backlog) = 0;
136+
virtual int socket_listen(nsapi_socket_t handle, int backlog) = 0;
137137

138138
/** Connects TCP socket to a remote host
139139
*
@@ -144,7 +144,7 @@ class NetworkStack
144144
* @param address The SocketAddress of the remote host
145145
* @return 0 on success, negative error code on failure
146146
*/
147-
virtual int socket_connect(void *handle, const SocketAddress &address) = 0;
147+
virtual int socket_connect(nsapi_socket_t handle, const SocketAddress &address) = 0;
148148

149149
/** Accepts a connection on a TCP socket
150150
*
@@ -163,7 +163,7 @@ class NetworkStack
163163
* @param server Socket handle to server to accept from
164164
* @return 0 on success, negative error code on failure
165165
*/
166-
virtual int socket_accept(void **handle, void *server) = 0;
166+
virtual int socket_accept(nsapi_socket_t *handle, nsapi_socket_t server) = 0;
167167

168168
/** Send data over a TCP socket
169169
*
@@ -179,7 +179,7 @@ class NetworkStack
179179
* @return Number of sent bytes on success, negative error
180180
* code on failure
181181
*/
182-
virtual int socket_send(void *handle, const void *data, unsigned size) = 0;
182+
virtual int socket_send(nsapi_socket_t handle, const void *data, unsigned size) = 0;
183183

184184
/** Receive data over a TCP socket
185185
*
@@ -195,7 +195,7 @@ class NetworkStack
195195
* @return Number of received bytes on success, negative error
196196
* code on failure
197197
*/
198-
virtual int socket_recv(void *handle, void *data, unsigned size) = 0;
198+
virtual int socket_recv(nsapi_socket_t handle, void *data, unsigned size) = 0;
199199

200200
/** Send a packet over a UDP socket
201201
*
@@ -212,7 +212,7 @@ class NetworkStack
212212
* @return Number of sent bytes on success, negative error
213213
* code on failure
214214
*/
215-
virtual int socket_sendto(void *handle, const SocketAddress &address, const void *data, unsigned size) = 0;
215+
virtual int socket_sendto(nsapi_socket_t handle, const SocketAddress &address, const void *data, unsigned size) = 0;
216216

217217
/** Receive a packet over a UDP socket
218218
*
@@ -229,7 +229,7 @@ class NetworkStack
229229
* @return Number of received bytes on success, negative error
230230
* code on failure
231231
*/
232-
virtual int socket_recvfrom(void *handle, SocketAddress *address, void *buffer, unsigned size) = 0;
232+
virtual int socket_recvfrom(nsapi_socket_t handle, SocketAddress *address, void *buffer, unsigned size) = 0;
233233

234234
/** Register a callback on state change of the socket
235235
*
@@ -244,7 +244,7 @@ class NetworkStack
244244
* @param callback Function to call on state change
245245
* @param data Argument to pass to callback
246246
*/
247-
virtual void socket_attach(void *handle, void (*callback)(void *), void *data) = 0;
247+
virtual void socket_attach(nsapi_socket_t handle, void (*callback)(void *), void *data) = 0;
248248

249249
/* Set stack-specific socket options
250250
*
@@ -259,7 +259,7 @@ class NetworkStack
259259
* @param optlen Length of the option value
260260
* @return 0 on success, negative error code on failure
261261
*/
262-
virtual int setsockopt(void *handle, int level, int optname, const void *optval, unsigned optlen);
262+
virtual int setsockopt(nsapi_socket_t handle, int level, int optname, const void *optval, unsigned optlen);
263263

264264
/* Get stack-specific socket options
265265
*
@@ -274,7 +274,7 @@ class NetworkStack
274274
* @param optlen Length of the option value
275275
* @return 0 on success, negative error code on failure
276276
*/
277-
virtual int getsockopt(void *handle, int level, int optname, void *optval, unsigned *optlen);
277+
virtual int getsockopt(nsapi_socket_t handle, int level, int optname, void *optval, unsigned *optlen);
278278
};
279279

280280

Socket.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ class Socket {
178178
virtual void event() = 0;
179179

180180
NetworkStack *_iface;
181-
void *_socket;
181+
nsapi_socket_t _socket;
182182
uint32_t _timeout;
183183
mbed::Callback<void()> _event;
184184
mbed::Callback<void()> _callback;

nsapi_types.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,11 @@ typedef struct nsapi_addr {
104104
} nsapi_addr_t;
105105

106106

107+
/** Opaque handle for network sockets
108+
*/
109+
typedef void *nsapi_socket_t;
110+
111+
107112
/** Enum of socket protocols
108113
*
109114
* The socket protocol specifies a particular protocol to

0 commit comments

Comments
 (0)