From ab90fac4e4c306f47ab0903b33d1b3aacb228c46 Mon Sep 17 00:00:00 2001 From: Javier Date: Fri, 25 Dec 2015 23:33:26 +0100 Subject: destroy agents on disconnection --- sappeer.cc | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'sappeer.cc') diff --git a/sappeer.cc b/sappeer.cc index 7f570eb..551ca45 100644 --- a/sappeer.cc +++ b/sappeer.cc @@ -18,6 +18,14 @@ SAPPeer::SAPPeer(SAProtocol::Role role, const QString &localName, const QString { } +SAPPeer::~SAPPeer() +{ + qDeleteAll(_conns); + qDeleteAll(_sessions); + _conns.clear(); + _sessions.clear(); +} + SAPConnection * SAPPeer::createServiceConnection(const QString &profile, const QString &requesterProfile, SAPServiceInfo::Role requesterRole) { SAPManager *manager = SAPManager::instance(); @@ -212,15 +220,22 @@ void SAPPeer::handleConnected() { emit connected(); - // Manually call the capability agent in order to trigger initial capability discovery. - CapabilityAgent *caps = CapabilityAgent::instance(); - caps->peerFound(this); + // Call in all the agents + SAPManager *manager = SAPManager::instance(); + foreach (SAPAgent *agent, manager->allAgents()) { + agent->peerFound(this); + } } void SAPPeer::handleDisconnected() { - // TODO Figure out who should actually reconnect + // Clear out all active sessions emit disconnected(); + qDeleteAll(_conns); + qDeleteAll(_sessions); + _conns.clear(); + _sessions.clear(); + // TODO Figure out who should actually reconnect } int SAPPeer::findUnusedSessionId() const -- cgit v1.2.3