Skip to content

Commit fb26c34

Browse files
committed
Common code moved to the ConnectionHandler class
1 parent 8ea22ec commit fb26c34

8 files changed

+67
-137
lines changed

src/Arduino_ConnectionHandler.cpp

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
/*
2+
This file is part of ArduinoIoTCloud.
3+
4+
Copyright 2019 ARDUINO SA (http://www.arduino.cc/)
5+
6+
This software is released under the GNU General Public License version 3,
7+
which covers the main part of arduino-cli.
8+
The terms of this license can be found at:
9+
https://www.gnu.org/licenses/gpl-3.0.en.html
10+
11+
You can be released from the requirements of the above licenses by purchasing
12+
a commercial license. Buying such a license is mandatory if you want to modify or
13+
otherwise use the software for commercial activities involving the Arduino
14+
software without disclosing the source code of your own applications. To purchase
15+
a commercial license, send an email to license@arduino.cc.
16+
*/
17+
18+
/******************************************************************************
19+
INCLUDE
20+
******************************************************************************/
21+
22+
#include "Arduino_ConnectionHandler.h"
23+
24+
/******************************************************************************
25+
PUBLIC MEMBER FUNCTIONS
26+
******************************************************************************/
27+
28+
void ConnectionHandler::addCallback(NetworkConnectionEvent const event, OnNetworkEventCallback callback) {
29+
switch (event) {
30+
case NetworkConnectionEvent::CONNECTED: _on_connect_event_callback = callback; break;
31+
case NetworkConnectionEvent::DISCONNECTED: _on_disconnect_event_callback = callback; break;
32+
case NetworkConnectionEvent::ERROR: _on_error_event_callback = callback; break;
33+
case NetworkConnectionEvent::INIT: ; break;
34+
case NetworkConnectionEvent::CONNECTING: ; break;
35+
case NetworkConnectionEvent::DISCONNECTING: ; break;
36+
case NetworkConnectionEvent::CLOSED: ; break;
37+
}
38+
}
39+
40+
void ConnectionHandler::addConnectCallback(OnNetworkEventCallback callback) {
41+
_on_connect_event_callback = callback;
42+
}
43+
void ConnectionHandler::addDisconnectCallback(OnNetworkEventCallback callback) {
44+
_on_disconnect_event_callback = callback;
45+
}
46+
void ConnectionHandler::addErrorCallback(OnNetworkEventCallback callback) {
47+
_on_error_event_callback = callback;
48+
}
49+
50+
void ConnectionHandler::execNetworkEventCallback(OnNetworkEventCallback & callback, void * callback_arg) {
51+
if (callback) {
52+
(*callback)(callback_arg);
53+
}
54+
}
55+

src/Arduino_ConnectionHandler.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -60,21 +60,21 @@ class ConnectionHandler {
6060
}
6161
virtual void connect();
6262
virtual void disconnect();
63-
virtual void addCallback(NetworkConnectionEvent const event, OnNetworkEventCallback callback);
64-
virtual void addConnectCallback(OnNetworkEventCallback callback);
65-
virtual void addDisconnectCallback(OnNetworkEventCallback callback);
66-
virtual void addErrorCallback(OnNetworkEventCallback callback);
67-
68-
private:
69-
OnNetworkEventCallback _on_connect_event_callback,
70-
_on_disconnect_event_callback,
71-
_on_error_event_callback;
63+
void addCallback(NetworkConnectionEvent const event, OnNetworkEventCallback callback);
64+
void addConnectCallback(OnNetworkEventCallback callback);
65+
void addDisconnectCallback(OnNetworkEventCallback callback);
66+
void addErrorCallback(OnNetworkEventCallback callback);
7267

7368
protected:
69+
OnNetworkEventCallback _on_connect_event_callback = NULL,
70+
_on_disconnect_event_callback = NULL,
71+
_on_error_event_callback = NULL;
7472

7573
unsigned long lastValidTimestamp = 0; /* UNUSED */
7674
NetworkConnectionState netConnectionState = NetworkConnectionState::DISCONNECTED;
7775

76+
static void execNetworkEventCallback(OnNetworkEventCallback & callback, void * callback_arg);
77+
7878
};
7979

8080
#ifdef ARDUINO_SAMD_MKR1000

src/Arduino_GSMConnectionHandler.cpp

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,7 @@ GSMConnectionHandler::GSMConnectionHandler(const char *pin, const char *apn, con
4949
pass(pass),
5050
lastConnectionTickTime(millis()),
5151
connectionTickTimeInterval(CHECK_INTERVAL_IDLE),
52-
keepAlive(_keepAlive),
53-
_on_connect_event_callback(NULL),
54-
_on_disconnect_event_callback(NULL),
55-
_on_error_event_callback(NULL) {
52+
keepAlive(_keepAlive) {
5653
}
5754

5855
/******************************************************************************
@@ -71,34 +68,6 @@ void GSMConnectionHandler::init() {
7168
}
7269
}
7370

74-
void GSMConnectionHandler::addCallback(NetworkConnectionEvent const event, OnNetworkEventCallback callback) {
75-
switch (event) {
76-
case NetworkConnectionEvent::CONNECTED: _on_connect_event_callback = callback; break;
77-
case NetworkConnectionEvent::DISCONNECTED: _on_disconnect_event_callback = callback; break;
78-
case NetworkConnectionEvent::ERROR: _on_error_event_callback = callback; break;
79-
case NetworkConnectionEvent::INIT: ; break;
80-
case NetworkConnectionEvent::CONNECTING: ; break;
81-
case NetworkConnectionEvent::DISCONNECTING: ; break;
82-
case NetworkConnectionEvent::CLOSED: ; break;
83-
}
84-
}
85-
86-
void GSMConnectionHandler::addConnectCallback(OnNetworkEventCallback callback) {
87-
_on_connect_event_callback = callback;
88-
}
89-
void GSMConnectionHandler::addDisconnectCallback(OnNetworkEventCallback callback) {
90-
_on_disconnect_event_callback = callback;
91-
}
92-
void GSMConnectionHandler::addErrorCallback(OnNetworkEventCallback callback) {
93-
_on_error_event_callback = callback;
94-
}
95-
96-
void GSMConnectionHandler::execNetworkEventCallback(OnNetworkEventCallback & callback, void * callback_arg) {
97-
if (callback) {
98-
(*callback)(callback_arg);
99-
}
100-
}
101-
10271
unsigned long GSMConnectionHandler::getTime() {
10372
return gsmAccess.getTime();
10473
}

src/Arduino_GSMConnectionHandler.h

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,6 @@ class GSMConnectionHandler : public TcpIpConnectionHandler {
5656
virtual void disconnect();
5757
virtual void connect();
5858

59-
virtual void addCallback(NetworkConnectionEvent const event, OnNetworkEventCallback callback);
60-
virtual void addConnectCallback(OnNetworkEventCallback callback);
61-
virtual void addDisconnectCallback(OnNetworkEventCallback callback);
62-
virtual void addErrorCallback(OnNetworkEventCallback callback);
63-
6459
private:
6560

6661
void changeConnectionState(NetworkConnectionState _newState);
@@ -80,11 +75,6 @@ class GSMConnectionHandler : public TcpIpConnectionHandler {
8075

8176
bool keepAlive;
8277

83-
OnNetworkEventCallback _on_connect_event_callback,
84-
_on_disconnect_event_callback,
85-
_on_error_event_callback;
86-
87-
static void execNetworkEventCallback(OnNetworkEventCallback & callback, void * callback_arg);
8878
};
8979

9080
#endif /* #ifdef BOARD_HAS_GSM */

src/Arduino_LoRaConnectionHandler.cpp

Lines changed: 1 addition & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,7 @@ LoRaConnectionHandler::LoRaConnectionHandler(const char *_appeui, const char *_a
3939
band(band),
4040
lastConnectionTickTime(millis()),
4141
connectionTickTimeInterval(CHECK_INTERVAL_IDLE),
42-
keepAlive(false),
43-
_on_connect_event_callback(NULL),
44-
_on_disconnect_event_callback(NULL),
45-
_on_error_event_callback(NULL) {
42+
keepAlive(false) {
4643
netConnectionState = NetworkConnectionState::INIT;
4744
}
4845

@@ -53,35 +50,6 @@ LoRaConnectionHandler::LoRaConnectionHandler(const char *_appeui, const char *_a
5350
void LoRaConnectionHandler::init() {
5451
}
5552

56-
// INIT, CONNECTING, CONNECTED, DISCONNECTING, DISCONNECTED, CLOSED, ERROR
57-
void LoRaConnectionHandler::addCallback(NetworkConnectionEvent const event, OnNetworkEventCallback callback) {
58-
switch (event) {
59-
case NetworkConnectionEvent::CONNECTED: _on_connect_event_callback = callback; break;
60-
case NetworkConnectionEvent::DISCONNECTED: _on_disconnect_event_callback = callback; break;
61-
case NetworkConnectionEvent::ERROR: _on_error_event_callback = callback; break;
62-
case NetworkConnectionEvent::INIT: ; break;
63-
case NetworkConnectionEvent::CONNECTING: ; break;
64-
case NetworkConnectionEvent::DISCONNECTING: ; break;
65-
case NetworkConnectionEvent::CLOSED: ; break;
66-
}
67-
}
68-
69-
void LoRaConnectionHandler::addConnectCallback(OnNetworkEventCallback callback) {
70-
_on_connect_event_callback = callback;
71-
}
72-
void LoRaConnectionHandler::addDisconnectCallback(OnNetworkEventCallback callback) {
73-
_on_disconnect_event_callback = callback;
74-
}
75-
void LoRaConnectionHandler::addErrorCallback(OnNetworkEventCallback callback) {
76-
_on_error_event_callback = callback;
77-
}
78-
79-
void LoRaConnectionHandler::execNetworkEventCallback(OnNetworkEventCallback & callback, void * callback_arg) {
80-
if (callback) {
81-
(*callback)(callback_arg);
82-
}
83-
}
84-
8553
unsigned long LoRaConnectionHandler::getTime() {
8654
return 0;
8755
}

src/Arduino_LoRaConnectionHandler.h

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,6 @@ class LoRaConnectionHandler : public LPWANConnectionHandler {
4848
void disconnect();
4949
void connect();
5050

51-
virtual void addCallback(NetworkConnectionEvent const event, OnNetworkEventCallback callback);
52-
virtual void addConnectCallback(OnNetworkEventCallback callback);
53-
virtual void addDisconnectCallback(OnNetworkEventCallback callback);
54-
virtual void addErrorCallback(OnNetworkEventCallback callback);
55-
5651
private:
5752

5853
const int CHECK_INTERVAL_IDLE = 100;
@@ -73,11 +68,6 @@ class LoRaConnectionHandler : public LPWANConnectionHandler {
7368

7469
bool keepAlive;
7570

76-
OnNetworkEventCallback _on_connect_event_callback,
77-
_on_disconnect_event_callback,
78-
_on_error_event_callback;
79-
80-
static void execNetworkEventCallback(OnNetworkEventCallback & callback, void * callback_arg);
8171
NetworkConnectionState update_handleInit();
8272
NetworkConnectionState update_handleConnecting();
8373
NetworkConnectionState update_handleConnected();

src/Arduino_WiFiConnectionHandler.cpp

Lines changed: 1 addition & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,7 @@ WiFiConnectionHandler::WiFiConnectionHandler(const char *_ssid, const char *_pas
3232
pass(_pass),
3333
lastConnectionTickTime(millis()),
3434
connectionTickTimeInterval(CHECK_INTERVAL_IDLE),
35-
keepAlive(_keepAlive),
36-
_on_connect_event_callback(NULL),
37-
_on_disconnect_event_callback(NULL),
38-
_on_error_event_callback(NULL) {
35+
keepAlive(_keepAlive) {
3936
}
4037

4138
/******************************************************************************
@@ -45,35 +42,6 @@ WiFiConnectionHandler::WiFiConnectionHandler(const char *_ssid, const char *_pas
4542
void WiFiConnectionHandler::init() {
4643
}
4744

48-
// INIT, CONNECTING, CONNECTED, DISCONNECTING, DISCONNECTED, CLOSED, ERROR
49-
void WiFiConnectionHandler::addCallback(NetworkConnectionEvent const event, OnNetworkEventCallback callback) {
50-
switch (event) {
51-
case NetworkConnectionEvent::CONNECTED: _on_connect_event_callback = callback; break;
52-
case NetworkConnectionEvent::DISCONNECTED: _on_disconnect_event_callback = callback; break;
53-
case NetworkConnectionEvent::ERROR: _on_error_event_callback = callback; break;
54-
case NetworkConnectionEvent::INIT: ; break;
55-
case NetworkConnectionEvent::CONNECTING: ; break;
56-
case NetworkConnectionEvent::DISCONNECTING: ; break;
57-
case NetworkConnectionEvent::CLOSED: ; break;
58-
}
59-
}
60-
61-
void WiFiConnectionHandler::addConnectCallback(OnNetworkEventCallback callback) {
62-
_on_connect_event_callback = callback;
63-
}
64-
void WiFiConnectionHandler::addDisconnectCallback(OnNetworkEventCallback callback) {
65-
_on_disconnect_event_callback = callback;
66-
}
67-
void WiFiConnectionHandler::addErrorCallback(OnNetworkEventCallback callback) {
68-
_on_error_event_callback = callback;
69-
}
70-
71-
void WiFiConnectionHandler::execNetworkEventCallback(OnNetworkEventCallback & callback, void * callback_arg) {
72-
if (callback) {
73-
(*callback)(callback_arg);
74-
}
75-
}
76-
7745
unsigned long WiFiConnectionHandler::getTime() {
7846
#if !defined(BOARD_ESP8266)
7947
return WiFi.getTime();

src/Arduino_WiFiConnectionHandler.h

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,6 @@ class WiFiConnectionHandler : public TcpIpConnectionHandler {
4949
virtual void disconnect();
5050
virtual void connect();
5151

52-
virtual void addCallback(NetworkConnectionEvent const event, OnNetworkEventCallback callback);
53-
virtual void addConnectCallback(OnNetworkEventCallback callback);
54-
virtual void addDisconnectCallback(OnNetworkEventCallback callback);
55-
virtual void addErrorCallback(OnNetworkEventCallback callback);
5652
WiFiUDP udp;
5753

5854
private:
@@ -71,12 +67,6 @@ class WiFiConnectionHandler : public TcpIpConnectionHandler {
7167

7268
bool keepAlive;
7369

74-
OnNetworkEventCallback _on_connect_event_callback,
75-
_on_disconnect_event_callback,
76-
_on_error_event_callback;
77-
78-
static void execNetworkEventCallback(OnNetworkEventCallback & callback, void * callback_arg);
79-
8070
NetworkConnectionState update_handleInit ();
8171
NetworkConnectionState update_handleConnecting ();
8272
NetworkConnectionState update_handleConnected ();

0 commit comments

Comments
 (0)