Added a test for instances count (memory leak again)
This commit is contained in:
@@ -9,10 +9,14 @@ static auto red = TinyConsole::red;
|
||||
static auto yellow = TinyConsole::yellow;
|
||||
|
||||
int TinyMqtt::debug=2;
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef EPOXY_DUINO
|
||||
std::map<MqttMessage::Type, int> MqttClient::counters;
|
||||
int MqttBroker::instances = 0;
|
||||
int MqttClient::instances = 0;
|
||||
|
||||
#endif
|
||||
|
||||
MqttBroker::MqttBroker(uint16_t port, uint8_t max_retain_size)
|
||||
@@ -23,10 +27,16 @@ MqttBroker::MqttBroker(uint16_t port, uint8_t max_retain_size)
|
||||
#ifdef TINY_MQTT_ASYNC
|
||||
server->onClient(onClient, this);
|
||||
#endif
|
||||
#ifdef EPOXY_DUINO
|
||||
instances++;
|
||||
#endif
|
||||
}
|
||||
|
||||
MqttBroker::~MqttBroker()
|
||||
{
|
||||
#ifdef EPOXY_DUINO
|
||||
instances--;
|
||||
#endif
|
||||
while(clients.size())
|
||||
{
|
||||
auto client = clients[0];
|
||||
@@ -56,6 +66,7 @@ MqttClient::MqttClient(MqttBroker* local_broker, TcpClient* new_client)
|
||||
#endif
|
||||
#ifdef EPOXY_DUINO
|
||||
alive = millis()+500000;
|
||||
instances++;
|
||||
#else
|
||||
alive = millis()+5000; // TODO MAGIC client expires after 5s if no CONNECT msg
|
||||
#endif
|
||||
@@ -68,10 +79,16 @@ MqttClient::MqttClient(MqttBroker* local_broker, const string& id)
|
||||
keep_alive = 0;
|
||||
|
||||
if (local_broker) local_broker->addClient(this);
|
||||
#ifdef EPOXY_DUINO
|
||||
instances++;
|
||||
#endif
|
||||
}
|
||||
|
||||
MqttClient::~MqttClient()
|
||||
{
|
||||
#ifdef EPOXY_DUINO
|
||||
instances--;
|
||||
#endif
|
||||
close();
|
||||
delete tcp_client;
|
||||
debug("*** MqttClient delete()");
|
||||
|
||||
@@ -289,6 +289,7 @@ class MqttClient
|
||||
|
||||
#ifdef EPOXY_DUINO
|
||||
static std::map<MqttMessage::Type, int> counters; // Number of processed messages
|
||||
static int instances;
|
||||
#endif
|
||||
uint32_t keepAlive() const { return keep_alive; }
|
||||
|
||||
@@ -354,6 +355,9 @@ class MqttBroker
|
||||
}
|
||||
|
||||
const std::vector<MqttClient*> getClients() const { return clients; }
|
||||
#ifdef EPOXY_DUINO
|
||||
static int instances;
|
||||
#endif
|
||||
|
||||
private:
|
||||
friend class MqttClient;
|
||||
|
||||
Reference in New Issue
Block a user