summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/PubSub/PubSubManager.h')
-rw-r--r--Swiften/PubSub/PubSubManager.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/Swiften/PubSub/PubSubManager.h b/Swiften/PubSub/PubSubManager.h
new file mode 100644
index 0000000..2f3c84d
--- /dev/null
+++ b/Swiften/PubSub/PubSubManager.h
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2013 Remko Tronçon
+ * Licensed under the GNU General Public License.
+ * See the COPYING file for more information.
+ */
+
+#pragma once
+
+#include <boost/shared_ptr.hpp>
+
+#include <Swiften/Base/Override.h>
+#include <Swiften/Base/API.h>
+#include <Swiften/Base/boost_bsignals.h>
+#include <Swiften/Queries/PubSubRequest.h>
+#include <Swiften/PubSub/PubSubUtil.h>
+#include <Swiften/Elements/PubSub.h>
+#include <Swiften/Elements/PubSubOwnerPubSub.h>
+#include <Swiften/Elements/PubSubCreate.h>
+#include <Swiften/Elements/PubSubSubscribe.h>
+#include <Swiften/Elements/PubSubAffiliations.h>
+#include <Swiften/Elements/PubSubDefault.h>
+#include <Swiften/Elements/PubSubItems.h>
+#include <Swiften/Elements/PubSubPublish.h>
+#include <Swiften/Elements/PubSubRetract.h>
+#include <Swiften/Elements/PubSubSubscription.h>
+#include <Swiften/Elements/PubSubSubscriptions.h>
+#include <Swiften/Elements/PubSubUnsubscribe.h>
+#include <Swiften/Elements/PubSubOwnerAffiliations.h>
+#include <Swiften/Elements/PubSubOwnerConfigure.h>
+#include <Swiften/Elements/PubSubOwnerDefault.h>
+#include <Swiften/Elements/PubSubOwnerDelete.h>
+#include <Swiften/Elements/PubSubOwnerPurge.h>
+#include <Swiften/Elements/PubSubOwnerSubscriptions.h>
+#include <Swiften/Elements/IQ.h>
+#include <Swiften/Elements/PubSubEventPayload.h>
+
+#define SWIFTEN_PUBSUBMANAGER_DECLARE_CREATE_REQUEST(payload, container, response) \
+ virtual boost::shared_ptr< PubSubRequest<payload> > \
+ createRequest(IQ::Type, const JID&, boost::shared_ptr<payload>) = 0;
+
+namespace Swift {
+ class JID;
+
+ class SWIFTEN_API PubSubManager {
+ public:
+ virtual ~PubSubManager();
+
+ SWIFTEN_PUBSUB_FOREACH_PUBSUB_PAYLOAD_TYPE(
+ SWIFTEN_PUBSUBMANAGER_DECLARE_CREATE_REQUEST)
+
+ boost::signal<void (const JID&, const boost::shared_ptr<PubSubEventPayload>)> onEvent;
+ };
+}