diff options
author | Remko Tronçon <git@el-tramo.be> | 2010-12-04 11:10:09 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2010-12-04 11:10:09 (GMT) |
commit | ebd2b8b8a2f1ad2812543c5350c0acf0a5b8c188 (patch) | |
tree | f9a867414377906898d39305f317301ab7dc0023 /Swiften/Entity | |
parent | 8611f09eccb6ea84c7852d197a1cc0ae55dbfa6d (diff) | |
download | swift-contrib-ebd2b8b8a2f1ad2812543c5350c0acf0a5b8c188.zip swift-contrib-ebd2b8b8a2f1ad2812543c5350c0acf0a5b8c188.tar.bz2 |
Added addPayloadParserFactory() and addSerializer() on Entity API.
Diffstat (limited to 'Swiften/Entity')
-rw-r--r-- | Swiften/Entity/Entity.cpp | 31 | ||||
-rw-r--r-- | Swiften/Entity/Entity.h | 45 | ||||
-rw-r--r-- | Swiften/Entity/SConscript | 6 |
3 files changed, 82 insertions, 0 deletions
diff --git a/Swiften/Entity/Entity.cpp b/Swiften/Entity/Entity.cpp new file mode 100644 index 0000000..da2ecaf --- /dev/null +++ b/Swiften/Entity/Entity.cpp @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2010 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#include "Swiften/Entity/Entity.h" + +namespace Swift { + +Entity::~Entity() { +} + + +void Entity::addPayloadParserFactory(PayloadParserFactory* payloadParserFactory) { + payloadParserFactories.addFactory(payloadParserFactory); +} + +void Entity::removePayloadParserFactory(PayloadParserFactory* payloadParserFactory) { + payloadParserFactories.removeFactory(payloadParserFactory); +} + +void Entity::addPayloadSerializer(PayloadSerializer* payloadSerializer) { + payloadSerializers.addSerializer(payloadSerializer); +} + +void Entity::removePayloadSerializer(PayloadSerializer* payloadSerializer) { + payloadSerializers.removeSerializer(payloadSerializer); +} + +} diff --git a/Swiften/Entity/Entity.h b/Swiften/Entity/Entity.h new file mode 100644 index 0000000..20d02ba --- /dev/null +++ b/Swiften/Entity/Entity.h @@ -0,0 +1,45 @@ +/* + * 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/Base/boost_bsignals.h> +#include <boost/shared_ptr.hpp> + +#include "Swiften/Parser/PayloadParsers/FullPayloadParserFactoryCollection.h" +#include "Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.h" + +namespace Swift { + class PayloadParserFactory; + class PayloadSerializer; + + /** + * The base class for XMPP entities (Clients, Components). + */ + class Entity { + public: + virtual ~Entity(); + + void addPayloadParserFactory(PayloadParserFactory* payloadParserFactory); + void removePayloadParserFactory(PayloadParserFactory* payloadParserFactory); + + void addPayloadSerializer(PayloadSerializer* payloadSerializer); + void removePayloadSerializer(PayloadSerializer* payloadSerializer); + + protected: + PayloadParserFactoryCollection* getPayloadParserFactories() { + return &payloadParserFactories; + } + + PayloadSerializerCollection* getPayloadSerializers() { + return &payloadSerializers; + } + + private: + FullPayloadParserFactoryCollection payloadParserFactories; + FullPayloadSerializerCollection payloadSerializers; + }; +} diff --git a/Swiften/Entity/SConscript b/Swiften/Entity/SConscript new file mode 100644 index 0000000..78a298c --- /dev/null +++ b/Swiften/Entity/SConscript @@ -0,0 +1,6 @@ +Import("swiften_env") + +objects = swiften_env.StaticObject([ + "Entity.cpp", + ]) +swiften_env.Append(SWIFTEN_OBJECTS = [objects]) |