diff options
author | Javier <dev.git@javispedro.com> | 2015-12-25 23:33:26 +0100 |
---|---|---|
committer | Javier <dev.git@javispedro.com> | 2015-12-25 23:33:26 +0100 |
commit | ab90fac4e4c306f47ab0903b33d1b3aacb228c46 (patch) | |
tree | e0f04c9270cefe2002410e49b3ac06dd086e049d /sappeer.cc | |
parent | 14d20babe395e52d220bbc27e91cec2fddd1ed0f (diff) | |
download | sapd-ab90fac4e4c306f47ab0903b33d1b3aacb228c46.tar.gz sapd-ab90fac4e4c306f47ab0903b33d1b3aacb228c46.zip |
destroy agents on disconnection
Diffstat (limited to 'sappeer.cc')
-rw-r--r-- | sappeer.cc | 23 |
1 files changed, 19 insertions, 4 deletions
@@ -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 |