2121#include " rtos/Mutex.h"
2222#include " rtos/EventFlags.h"
2323#include " Callback.h"
24+ #include " mbed_atomic.h"
2425#include " mbed_toolchain.h"
2526#include " ControlPlane_netif.h"
2627#include " CellularContext.h"
@@ -40,7 +41,7 @@ class CellularNonIPSocket : public Socket {
4041 *
4142 * @note Closes socket if it's still open.
4243 */
43- virtual ~CellularNonIPSocket ();
44+ ~CellularNonIPSocket () override ;
4445
4546 /* * Creates a socket.
4647 */
@@ -54,7 +55,7 @@ class CellularNonIPSocket : public Socket {
5455 * @return NSAPI_ERROR_OK on success
5556 * NSAPI_ERROR_PARAMETER otherwise
5657 */
57- virtual nsapi_error_t open (mbed::CellularContext *cellular_context);
58+ nsapi_error_t open (mbed::CellularContext *cellular_context);
5859
5960 /* * Opens a socket that will use the given control plane interface for data delivery.
6061 * Attaches the event as callback to the control plane interface.
@@ -64,15 +65,15 @@ class CellularNonIPSocket : public Socket {
6465 * NSAPI_ERROR_PARAMETER otherwise
6566 *
6667 */
67- virtual nsapi_error_t open (mbed::ControlPlane_netif *cp_netif);
68+ nsapi_error_t open (mbed::ControlPlane_netif *cp_netif);
6869
6970 /* * Closes socket
7071 *
7172 * @return NSAPI_ERROR_OK on success
7273 * NSAPI_ERROR_NO_SOCKET otherwise
7374 */
7475
75- virtual nsapi_error_t close ();
76+ nsapi_error_t close () override ;
7677
7778 /* * Send data over a control plane cellular context.
7879 *
@@ -85,7 +86,7 @@ class CellularNonIPSocket : public Socket {
8586 * @return Number of sent bytes on success, negative error
8687 * code on failure.
8788 */
88- virtual nsapi_size_or_error_t send (const void *data, nsapi_size_t size);
89+ nsapi_size_or_error_t send (const void *data, nsapi_size_t size) override ;
8990
9091 /* * Receive data from a socket.
9192 *
@@ -98,60 +99,60 @@ class CellularNonIPSocket : public Socket {
9899 * @return Number of received bytes on success, negative error
99100 * code on failure.
100101 */
101- virtual nsapi_size_or_error_t recv (void *data, nsapi_size_t size);
102+ nsapi_size_or_error_t recv (void *data, nsapi_size_t size) override ;
102103
103104 /* * @copydoc Socket::set_blocking
104105 */
105- virtual void set_blocking (bool blocking);
106+ void set_blocking (bool blocking) override ;
106107
107108 /* * @copydoc Socket::set_timeout
108109 */
109- virtual void set_timeout (int timeout);
110+ void set_timeout (int timeout) override ;
110111
111112 /* * @copydoc Socket::sigio
112113 */
113- virtual void sigio (mbed::Callback<void ()> func);
114+ void sigio (mbed::Callback<void ()> func) override ;
114115
115116 // / NOT APPLICABLE
116- virtual nsapi_error_t connect (const SocketAddress &address);
117+ nsapi_error_t connect (const SocketAddress &address) override ;
117118 // / NOT APPLICABLE
118- virtual Socket *accept (nsapi_error_t *error = NULL );
119+ Socket *accept (nsapi_error_t *error = NULL ) override ;
119120 // / NOT APPLICABLE
120- virtual nsapi_error_t listen (int backlog = 1 );
121+ nsapi_error_t listen (int backlog = 1 ) override ;
121122 // / NOT APPLICABLE
122- virtual nsapi_error_t setsockopt (int level, int optname, const void *optval, unsigned optlen);
123+ nsapi_error_t setsockopt (int level, int optname, const void *optval, unsigned optlen) override ;
123124 // / NOT APPLICABLE
124- virtual nsapi_error_t getsockopt (int level, int optname, void *optval, unsigned *optlen);
125+ nsapi_error_t getsockopt (int level, int optname, void *optval, unsigned *optlen) override ;
125126 // / NOT APPLICABLE
126- virtual nsapi_error_t getpeername (SocketAddress *address);
127+ nsapi_error_t getpeername (SocketAddress *address) override ;
127128 // / NOT APPLICABLE
128- virtual nsapi_size_or_error_t sendto (const SocketAddress &address,
129- const void *data, nsapi_size_t size);
129+ nsapi_size_or_error_t sendto (const SocketAddress &address,
130+ const void *data, nsapi_size_t size) override ;
130131 // / NOT APPLICABLE
131- virtual nsapi_size_or_error_t recvfrom (SocketAddress *address,
132- void *data, nsapi_size_t size);
132+ nsapi_size_or_error_t recvfrom (SocketAddress *address,
133+ void *data, nsapi_size_t size) override ;
133134 // / NOT APPLICABLE
134- virtual nsapi_error_t bind (const SocketAddress &address);
135+ nsapi_error_t bind (const SocketAddress &address) override ;
135136
136137protected:
137- virtual void event ();
138+ void event ();
138139
139- uint32_t _timeout;
140+ uint32_t _timeout = osWaitForever ;
140141 mbed::Callback<void ()> _event;
141142 mbed::Callback<void ()> _callback;
142143 rtos::EventFlags _event_flag;
143144 rtos::Mutex _lock;
144- uint8_t _readers;
145- uint8_t _writers;
146- volatile unsigned _pending;
145+ uint8_t _readers = 0 ;
146+ uint8_t _writers = 0 ;
147+ core_util_atomic_flag _pending = CORE_UTIL_ATOMIC_FLAG_INIT ;
147148
148149 // Event flags
149150 static const int READ_FLAG = 0x1u ;
150151 static const int WRITE_FLAG = 0x2u ;
151152 static const int FINISHED_FLAG = 0x3u ;
152153
153154 static ControlPlane_netif *_cp_netif; // there can be only one Non-IP socket
154- bool _opened;
155+ bool _opened = false ;
155156};
156157
157158/* * @}*/
0 commit comments