00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef PUBSUBRESULTHANDLER_H__
00014 #define PUBSUBRESULTHANDLER_H__
00015
00016 #include "macros.h"
00017 #include "pubsub.h"
00018 #include "error.h"
00019 #include "jid.h"
00020
00021 #include <string>
00022 #include <list>
00023 #include <map>
00024
00025 namespace gloox
00026 {
00027
00028 class Tag;
00029 class Error;
00030 class DataForm;
00031
00032 typedef std::list< Tag* > TagList;
00033
00034 namespace PubSub
00035 {
00050 class GLOOX_API ResultHandler
00051 {
00052 public:
00056 virtual ~ResultHandler() {}
00057
00065 virtual void handleItem( const JID& service,
00066 const std::string& node,
00067 const Tag* entry ) = 0;
00068
00079 virtual void handleItems( const JID& service,
00080 const std::string& node,
00081 const TagList* itemList,
00082 const Error* error = 0 ) = 0;
00083
00094 virtual void handleItemPublication( const JID& service,
00095 const std::string& node,
00096 const std::string& item,
00097 const Error* error = 0 ) = 0;
00098
00109 virtual void handleItemDeletation( const JID& service,
00110 const std::string& node,
00111 const std::string& item,
00112 const Error* error = 0 ) = 0;
00113
00126 virtual void handleSubscriptionResult( const JID& service,
00127 const std::string& node,
00128 const std::string& sid,
00129 const JID& jid,
00130 const SubscriptionType subType,
00131 const Error* error = 0 ) = 0;
00132
00144 virtual void handleUnsubscriptionResult( const JID& service,
00145 const std::string& node,
00146 const std::string& sid,
00147 const JID& jid,
00148 const Error* error = 0 ) = 0;
00149
00161 virtual void handleSubscriptionOptions( const JID& service,
00162 const JID& jid,
00163 const std::string& node,
00164 const DataForm* options,
00165 const Error* error = 0 ) = 0;
00166
00177 virtual void handleSubscriptionOptionsResult( const JID& service,
00178 const JID& jid,
00179 const std::string& node,
00180 const Error* error = 0 ) = 0;
00181
00182
00193 virtual void handleSubscribers( const JID& service,
00194 const std::string& node,
00195 const SubscriberList* list,
00196 const Error* error = 0 ) = 0;
00197
00207 virtual void handleSubscribersResult( const JID& service,
00208 const std::string& node,
00209 const SubscriberList* list,
00210 const Error* error = 0 ) = 0;
00211
00222 virtual void handleAffiliates( const JID& service,
00223 const std::string& node,
00224 const AffiliateList* list,
00225 const Error* error = 0 ) = 0;
00226
00236 virtual void handleAffiliatesResult( const JID& service,
00237 const std::string& node,
00238 const AffiliateList* list,
00239 const Error* error = 0 ) = 0;
00240
00241
00252 virtual void handleNodeConfig( const JID& service,
00253 const std::string& node,
00254 const DataForm* config,
00255 const Error* error = 0 ) = 0;
00256
00266 virtual void handleNodeConfigResult( const JID& service,
00267 const std::string& node,
00268 const Error* error = 0 ) = 0;
00269
00279 virtual void handleNodeCreation( const JID& service,
00280 const std::string& node,
00281 const Error* error = 0 ) = 0;
00282
00292 virtual void handleNodeDeletation( const JID& service,
00293 const std::string& node,
00294 const Error* error = 0 ) = 0;
00295
00296
00306 virtual void handleNodePurge( const JID& service,
00307 const std::string& node,
00308 const Error* error = 0 ) = 0;
00309
00319 virtual void handleSubscriptions( const JID& service,
00320 const SubscriptionMap* subMap,
00321 const Error* error = 0) = 0;
00322
00332 virtual void handleAffiliations( const JID& service,
00333 const AffiliationMap* affMap,
00334 const Error* error = 0 ) = 0;
00335
00346 virtual void handleDefaultNodeConfig( const JID& service,
00347 const DataForm* config,
00348 const Error* error = 0 ) = 0;
00349
00350 };
00351
00352 }
00353
00354 }
00355
00356 #endif
00357