diff options
Diffstat (limited to 'Swiften/Component')
-rw-r--r-- | Swiften/Component/Component.cpp | 27 | ||||
-rw-r--r-- | Swiften/Component/Component.h | 35 | ||||
-rw-r--r-- | Swiften/Component/SConscript | 1 |
3 files changed, 63 insertions, 0 deletions
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)) |