Skip to content

Commit eb4a398

Browse files
authored
Merge pull request #113 from arduino-libraries/reduce-lora-api
Reduce public API by turning connect/disconnect into protected methods.
2 parents 6214b92 + 3142ff5 commit eb4a398

5 files changed

+58
-49
lines changed

Diff for: src/ArduinoIoTCloud.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,6 @@ class ArduinoIoTCloudClass
8181
virtual ~ArduinoIoTCloudClass() { }
8282

8383

84-
virtual int connect () = 0;
85-
virtual bool disconnect () = 0;
8684
virtual void update () = 0;
8785
virtual int connected () = 0;
8886
virtual void printDebugInfo() = 0;
@@ -134,6 +132,9 @@ class ArduinoIoTCloudClass
134132

135133
protected:
136134

135+
virtual int connect () = 0;
136+
virtual void disconnect() = 0;
137+
137138
inline ArduinoIoTConnectionStatus getIoTStatus() { return _iot_status; }
138139

139140
ConnectionHandler * _connection = nullptr;

Diff for: src/ArduinoIoTCloudLPWAN.cpp

+15-12
Original file line numberDiff line numberDiff line change
@@ -47,18 +47,6 @@ ArduinoIoTCloudLPWAN::ArduinoIoTCloudLPWAN()
4747
* PUBLIC MEMBER FUNCTIONS
4848
******************************************************************************/
4949

50-
int ArduinoIoTCloudLPWAN::connect()
51-
{
52-
_connection->connect();
53-
return 1;
54-
}
55-
56-
bool ArduinoIoTCloudLPWAN::disconnect()
57-
{
58-
_connection->disconnect();
59-
return true;
60-
}
61-
6250
int ArduinoIoTCloudLPWAN::connected()
6351
{
6452
return (_connection->getStatus() == NetworkConnectionState::CONNECTED) ? 1 : 0;
@@ -116,6 +104,21 @@ void ArduinoIoTCloudLPWAN::printDebugInfo()
116104
Debug.print(DBG_INFO, "Thing ID: %s", getThingId().c_str());
117105
}
118106

107+
/******************************************************************************
108+
* PROTECTED MEMBER FUNCTIONS
109+
******************************************************************************/
110+
111+
int ArduinoIoTCloudLPWAN::connect()
112+
{
113+
_connection->connect();
114+
return 1;
115+
}
116+
117+
void ArduinoIoTCloudLPWAN::disconnect()
118+
{
119+
_connection->disconnect();
120+
}
121+
119122
/******************************************************************************
120123
* PRIVATE MEMBER FUNCTIONS
121124
******************************************************************************/

Diff for: src/ArduinoIoTCloudLPWAN.h

+6-2
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@ class ArduinoIoTCloudLPWAN : public ArduinoIoTCloudClass
3535
ArduinoIoTCloudLPWAN();
3636
virtual ~ArduinoIoTCloudLPWAN() { }
3737

38-
virtual int connect () override;
39-
virtual bool disconnect () override;
4038
virtual void update () override;
4139
virtual int connected () override;
4240
virtual void printDebugInfo() override;
@@ -52,6 +50,12 @@ class ArduinoIoTCloudLPWAN : public ArduinoIoTCloudClass
5250
inline void setIntervalRetry(long val) { _intervalRetry = val; }
5351

5452

53+
protected:
54+
55+
virtual int connect () override;
56+
virtual void disconnect () override;
57+
58+
5559
private:
5660

5761
bool _retryEnable;

Diff for: src/ArduinoIoTCloudTCP.cpp

+26-31
Original file line numberDiff line numberDiff line change
@@ -141,35 +141,6 @@ int ArduinoIoTCloudTCP::begin(String brokerAddress, uint16_t brokerPort)
141141
return 1;
142142
}
143143

144-
int ArduinoIoTCloudTCP::connect()
145-
{
146-
if (!_mqttClient->connect(_brokerAddress.c_str(), _brokerPort)) {
147-
return CONNECT_FAILURE;
148-
}
149-
if (_mqttClient->subscribe(_stdinTopic) == 0) {
150-
return CONNECT_FAILURE_SUBSCRIBE;
151-
}
152-
if (_mqttClient->subscribe(_dataTopicIn) == 0) {
153-
return CONNECT_FAILURE_SUBSCRIBE;
154-
}
155-
if (_shadowTopicIn != "") {
156-
if (_mqttClient->subscribe(_shadowTopicIn) == 0) {
157-
return CONNECT_FAILURE_SUBSCRIBE;
158-
}
159-
_syncStatus = ArduinoIoTSynchronizationStatus::SYNC_STATUS_WAIT_FOR_CLOUD_VALUES;
160-
_lastSyncRequestTickTime = 0;
161-
}
162-
163-
return CONNECT_SUCCESS;
164-
}
165-
166-
167-
bool ArduinoIoTCloudTCP::disconnect()
168-
{
169-
_mqttClient->stop();
170-
return true;
171-
}
172-
173144
void ArduinoIoTCloudTCP::update()
174145
{
175146
// Check if a primitive property wrapper is locally changed
@@ -209,6 +180,11 @@ void ArduinoIoTCloudTCP::update()
209180
}
210181
}
211182

183+
int ArduinoIoTCloudTCP::connected()
184+
{
185+
return _mqttClient->connected();
186+
}
187+
212188
void ArduinoIoTCloudTCP::printDebugInfo()
213189
{
214190
Debug.print(DBG_INFO, "***** Arduino IoT Cloud - configuration info *****");
@@ -225,10 +201,29 @@ int ArduinoIoTCloudTCP::reconnect()
225201
return connect();
226202
}
227203

204+
/******************************************************************************
205+
* PROTECTED MEMBER FUNCTIONS
206+
******************************************************************************/
228207

229-
int ArduinoIoTCloudTCP::connected()
208+
int ArduinoIoTCloudTCP::connect()
230209
{
231-
return _mqttClient->connected();
210+
if (!_mqttClient->connect(_brokerAddress.c_str(), _brokerPort)) return CONNECT_FAILURE;
211+
if (_mqttClient->subscribe(_stdinTopic) == 0) return CONNECT_FAILURE_SUBSCRIBE;
212+
if (_mqttClient->subscribe(_dataTopicIn) == 0) return CONNECT_FAILURE_SUBSCRIBE;
213+
214+
if (_shadowTopicIn != "")
215+
{
216+
if (_mqttClient->subscribe(_shadowTopicIn) == 0) return CONNECT_FAILURE_SUBSCRIBE;
217+
_syncStatus = ArduinoIoTSynchronizationStatus::SYNC_STATUS_WAIT_FOR_CLOUD_VALUES;
218+
_lastSyncRequestTickTime = 0;
219+
}
220+
221+
return CONNECT_SUCCESS;
222+
}
223+
224+
void ArduinoIoTCloudTCP::disconnect()
225+
{
226+
_mqttClient->stop();
232227
}
233228

234229
/******************************************************************************

Diff for: src/ArduinoIoTCloudTCP.h

+8-2
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,7 @@ class ArduinoIoTCloudTCP: public ArduinoIoTCloudClass
5353
ArduinoIoTCloudTCP();
5454
virtual ~ArduinoIoTCloudTCP();
5555

56-
virtual int connect () override;
57-
virtual bool disconnect () override;
56+
5857
virtual void update () override;
5958
virtual int connected () override;
6059
virtual void printDebugInfo() override;
@@ -79,6 +78,13 @@ class ArduinoIoTCloudTCP: public ArduinoIoTCloudClass
7978

8079
friend class CloudSerialClass;
8180

81+
82+
protected:
83+
84+
virtual int connect () override;
85+
virtual void disconnect () override;
86+
87+
8288
private:
8389
static const int MQTT_TRANSMIT_BUFFER_SIZE = 256;
8490

0 commit comments

Comments
 (0)