summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Swiften/Client/ClientSessionStanzaChannel.cpp2
-rw-r--r--Swiften/Component/Component.cpp27
-rw-r--r--Swiften/Component/Component.h35
-rw-r--r--Swiften/Component/SConscript1
4 files changed, 64 insertions, 1 deletions
diff --git a/Swiften/Client/ClientSessionStanzaChannel.cpp b/Swiften/Client/ClientSessionStanzaChannel.cpp
index 7656d06..996196b 100644
--- a/Swiften/Client/ClientSessionStanzaChannel.cpp
+++ b/Swiften/Client/ClientSessionStanzaChannel.cpp
@@ -43,7 +43,7 @@ void ClientSessionStanzaChannel::send(boost::shared_ptr<Stanza> stanza) {
session->sendStanza(stanza);
}
-void ClientSessionStanzaChannel::handleSessionFinished(boost::shared_ptr<Error> error) {
+void ClientSessionStanzaChannel::handleSessionFinished(boost::shared_ptr<Error>) {
session->onFinished.disconnect(boost::bind(&ClientSessionStanzaChannel::handleSessionFinished, this, _1));
session->onStanzaReceived.disconnect(boost::bind(&ClientSessionStanzaChannel::handleStanza, this, _1));
session->onStanzaAcked.disconnect(boost::bind(&ClientSessionStanzaChannel::handleStanzaAcked, this, _1));
diff --git a/Swiften/Component/Component.cpp b/Swiften/Component/Component.cpp
new file mode 100644
index 0000000..af3802d
--- /dev/null
+++ b/Swiften/Component/Component.cpp
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2010 Remko Tronçon
+ * Licensed under the GNU General Public License v3.
+ * See Documentation/Licenses/GPLv3.txt for more information.
+ */
+
+#include "Swiften/Component/Component.h"
+
+#include "Swiften/Queries/Responders/SoftwareVersionResponder.h"
+
+namespace Swift {
+
+Component::Component(const JID& jid, const String& secret) : CoreComponent(jid, secret) {
+ softwareVersionResponder = new SoftwareVersionResponder(getIQRouter());
+ softwareVersionResponder->start();
+}
+
+Component::~Component() {
+ softwareVersionResponder->stop();
+ delete softwareVersionResponder;
+}
+
+void Component::setSoftwareVersion(const String& name, const String& version) {
+ softwareVersionResponder->setVersion(name, version);
+}
+
+}
diff --git a/Swiften/Component/Component.h b/Swiften/Component/Component.h
new file mode 100644
index 0000000..a89deb3
--- /dev/null
+++ b/Swiften/Component/Component.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2010 Remko Tronçon
+ * Licensed under the GNU General Public License v3.
+ * See Documentation/Licenses/GPLv3.txt for more information.
+ */
+
+#pragma once
+
+#include "Swiften/Component/CoreComponent.h"
+
+namespace Swift {
+ class SoftwareVersionResponder;
+
+ /**
+ * Provides the core functionality for writing XMPP component software.
+ *
+ * Besides connecting to an XMPP server, this class also provides interfaces for
+ * performing most component tasks on the XMPP network.
+ */
+ class Component : public CoreComponent {
+ public:
+ Component(const JID& jid, const String& secret);
+ ~Component();
+
+ /**
+ * Sets the software version of the client.
+ *
+ * This will be used to respond to version queries from other entities.
+ */
+ void setSoftwareVersion(const String& name, const String& version);
+
+ private:
+ SoftwareVersionResponder* softwareVersionResponder;
+ };
+}
diff --git a/Swiften/Component/SConscript b/Swiften/Component/SConscript
index 4b3ed92..0ca5a02 100644
--- a/Swiften/Component/SConscript
+++ b/Swiften/Component/SConscript
@@ -6,6 +6,7 @@ sources = [
"ComponentSession.cpp",
"ComponentSessionStanzaChannel.cpp",
"CoreComponent.cpp",
+ "Component.cpp",
]
swiften_env.Append(SWIFTEN_OBJECTS = swiften_env.StaticObject(sources))