From 10d8877b9251d5408da9ac3a5eafb066de121bc6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Remko=20Tron=C3=A7on?= <git@el-tramo.be>
Date: Fri, 15 Oct 2010 22:22:24 +0200
Subject: Added Component.


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))
-- 
cgit v0.10.2-6-g49f6