summaryrefslogtreecommitdiff
path: root/sappeer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sappeer.cc')
-rw-r--r--sappeer.cc23
1 files changed, 19 insertions, 4 deletions
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