gloox 1.0.27
pubsub.h
1/*
2 Copyright (c) 2007-2023 by Jakob Schröter <js@camaya.net>
3 This file is part of the gloox library. http://camaya.net/gloox
4
5 This software is distributed under a license. The full license
6 agreement can be found in the file LICENSE in this distribution.
7 This software may not be copied, modified, sold or distributed
8 other than expressed in the named license agreement.
9
10 This software is distributed without any warranty.
11*/
12
13#ifndef PUBSUB_H__
14#define PUBSUB_H__
15
16#include <map>
17#include <string>
18
19#include "gloox.h"
20#include "jid.h"
21
22namespace gloox
23{
27 namespace PubSub
28 {
29
30 class Item;
31
44
56
77
92
101
129
177
178// [Persistent - Notification]
179/* Publisher MUST include an &lt;item/&gt; element, which MAY be empty or contain a payload; if item ID is not provided by publisher, it MUST be generated by pubsub service */
180
181// [Persistent - Payload]
182/* Publisher MUST include an &lt;item/&gt; element that contains the payload; if item ID is not provided by publisher, it MUST be generated by pubsub service */
183
184// [Transient - Notification]
185/* Publisher MUST NOT include an &lt;item/&gt; element (therefore item ID is neither provided nor generated) but the notification will include an empty &lt;items/&gt; element */
186
187// [Transient - Payload]
188/* Publisher MUST include an &lt;item/&gt; element that contains the payload, but the item ID is OPTIONAL */
189
194 {
195 Subscriber( const JID& _jid,
196 SubscriptionType _type,
197 const std::string& _subid = EmptyString)
198 : jid( _jid ), type( _type ), subid( _subid ) {}
199 JID jid;
200 SubscriptionType type;
201 std::string subid;
202 };
203
208 {
209 Affiliate( const JID& _jid, AffiliationType _type )
210 : jid( _jid ), type( _type ) {}
211 JID jid;
212 AffiliationType type;
213 };
214
215 typedef std::list<Subscriber> SubscriberList;
216 typedef std::list<Affiliate> AffiliateList;
217
223 {
224 JID service;
225 std::string node;
226 std::string item;
227 std::string sid;
228 };
229
234 {
235 SubscriptionType type;
236 JID jid;
237 std::string subid;
238 };
239
240 typedef std::list<SubscriptionInfo> SubscriptionList;
241 typedef std::map<std::string, SubscriptionList> SubscriptionMap;
242 typedef std::map<std::string, AffiliationType> AffiliationMap;
243 typedef std::list<Item*> ItemList;
244
245 }
246
247}
248
249#endif // PUBSUB_H__
An abstraction of a JID.
Definition jid.h:31
Abstracts a PubSub Item (XEP-0060).
Definition pubsubitem.h:38
@ SubscriptionItems
Definition pubsub.h:99
@ SubscriptionNodes
Definition pubsub.h:98
@ EventCollection
Definition pubsub.h:83
@ EventItemsRetract
Definition pubsub.h:87
@ EventSubscription
Definition pubsub.h:89
@ EventConfigure
Definition pubsub.h:84
@ AccessWhitelist
Definition pubsub.h:119
@ AccessAuthorize
Definition pubsub.h:117
@ SubscriptionPending
Definition pubsub.h:67
@ SubscriptionInvalid
Definition pubsub.h:75
@ SubscriptionNone
Definition pubsub.h:62
@ SubscriptionSubscribed
Definition pubsub.h:64
@ SubscriptionUnconfigured
Definition pubsub.h:71
@ AffiliationInvalid
Definition pubsub.h:54
@ AffiliationOwner
Definition pubsub.h:52
@ AffiliationPublisher
Definition pubsub.h:51
@ AffiliationNone
Definition pubsub.h:50
@ AffiliationOutcast
Definition pubsub.h:53
@ NodeCollection
Definition pubsub.h:39
@ FeatureRetrieveAffiliations
Definition pubsub.h:164
@ FeatureModifyAffiliations
Definition pubsub.h:150
@ FeaturePublisherAffiliation
Definition pubsub.h:161
@ FeatureGetPending
Definition pubsub.h:143
@ FeatureConfigNode
Definition pubsub.h:136
@ FeatureMultiSubscribe
Definition pubsub.h:153
@ FeatureRetrieveDefault
Definition pubsub.h:166
@ FeatureCreateAndConfig
Definition pubsub.h:137
@ FeatureMultiCollection
Definition pubsub.h:151
@ FeatureCollections
Definition pubsub.h:135
@ FeatureSubscriptionOptions
Definition pubsub.h:172
@ FeatureRetrieveSubscriptions
Definition pubsub.h:169
@ FeaturePresenceNotifications
Definition pubsub.h:157
@ FeatureLeasedSubscription
Definition pubsub.h:147
@ FeatureDeleteNodes
Definition pubsub.h:142
@ FeaturePersistentItems
Definition pubsub.h:156
@ FeatureManageSubscriptions
Definition pubsub.h:148
@ FeatureCreateNodes
Definition pubsub.h:139
@ FeaturePurgeNodes
Definition pubsub.h:162
@ FeatureSubscriptionNotifs
Definition pubsub.h:174
@ FeatureMetaData
Definition pubsub.h:149
@ FeaturePutcastAffiliation
Definition pubsub.h:155
@ FeatureRetrieveItems
Definition pubsub.h:168
@ FeatureDeleteAny
Definition pubsub.h:140
@ FeatureSubscribe
Definition pubsub.h:171
@ FeatureInstantNodes
Definition pubsub.h:145
@ FeatureRetractItems
Definition pubsub.h:163
The namespace for the gloox library.
Definition adhoc.cpp:28
const std::string EmptyString
Definition gloox.cpp:124