gloox  1.0
pubsubresulthandler.h
00001 /*
00002   Copyright (c) 2007-2009 by Jakob Schroeter <js@camaya.net>
00003   This file is part of the gloox library. http://camaya.net/gloox
00004 
00005   This software is distributed under a license. The full license
00006   agreement can be found in the file LICENSE in this distribution.
00007   This software may not be copied, modified, sold or distributed
00008   other than expressed in the named license agreement.
00009 
00010   This software is distributed without any warranty.
00011 */
00012 
00013 #ifndef PUBSUBRESULTHANDLER_H__
00014 #define PUBSUBRESULTHANDLER_H__
00015 
00016 #include "error.h"
00017 #include "jid.h"
00018 #include "macros.h"
00019 #include "pubsub.h"
00020 #include "tag.h"
00021 
00022 #include <string>
00023 #include <list>
00024 #include <map>
00025 
00026 namespace gloox
00027 {
00028 
00029   class Tag;
00030   class Error;
00031   class DataForm;
00032 
00033   namespace PubSub
00034   {
00049     class GLOOX_API ResultHandler
00050     {
00051       public:
00055         virtual ~ResultHandler() {}
00056 
00064         virtual void handleItem( const JID& service,
00065                                  const std::string& node,
00066                                  const Tag* entry ) = 0;
00067 
00079         virtual void handleItems( const std::string& id,
00080                                   const JID& service,
00081                                   const std::string& node,
00082                                   const ItemList& itemList,
00083                                   const Error* error = 0 ) = 0;
00084 
00096         virtual void handleItemPublication( const std::string& id,
00097                                             const JID& service,
00098                                             const std::string& node,
00099                                             const ItemList& itemList,
00100                                             const Error* error = 0 ) = 0;
00101 
00113         virtual void handleItemDeletion( const std::string& id,
00114                                          const JID& service,
00115                                          const std::string& node,
00116                                          const ItemList& itemList,
00117                                          const Error* error = 0 ) = 0;
00118 
00133         virtual void handleSubscriptionResult( const std::string& id,
00134                                                const JID& service,
00135                                                const std::string& node,
00136                                                const std::string& sid,
00137                                                const JID& jid,
00138                                                const SubscriptionType subType,
00139                                                const Error* error = 0 ) = 0;
00140 
00151         virtual void handleUnsubscriptionResult( const std::string& id,
00152                                                  const JID& service,
00153                                                  const Error* error = 0 ) = 0;
00154 
00167         virtual void handleSubscriptionOptions( const std::string& id,
00168                                                 const JID& service,
00169                                                 const JID& jid,
00170                                                 const std::string& node,
00171                                                 const DataForm* options,
00172                                                 const Error* error = 0 ) = 0;
00173 
00185         virtual void handleSubscriptionOptionsResult( const std::string& id,
00186                                                       const JID& service,
00187                                                       const JID& jid,
00188                                                       const std::string& node,
00189                                                       const Error* error = 0 ) = 0;
00190 
00191 
00203         virtual void handleSubscribers( const std::string& id,
00204                                         const JID& service,
00205                                         const std::string& node,
00206                                         const SubscriberList* list,
00207                                         const Error* error = 0 ) = 0;
00208 
00220         virtual void handleSubscribersResult( const std::string& id,
00221                                               const JID& service,
00222                                               const std::string& node,
00223                                               const SubscriberList* list,
00224                                               const Error* error = 0 ) = 0;
00225 
00237         virtual void handleAffiliates( const std::string& id,
00238                                        const JID& service,
00239                                        const std::string& node,
00240                                        const AffiliateList* list,
00241                                        const Error* error = 0 ) = 0;
00242 
00254         virtual void handleAffiliatesResult( const std::string& id,
00255                                              const JID& service,
00256                                              const std::string& node,
00257                                              const AffiliateList* list,
00258                                              const Error* error = 0 ) = 0;
00259 
00260 
00272         virtual void handleNodeConfig( const std::string& id,
00273                                        const JID& service,
00274                                        const std::string& node,
00275                                        const DataForm* config,
00276                                        const Error* error = 0 ) = 0;
00277 
00288         virtual void handleNodeConfigResult( const std::string& id,
00289                                              const JID& service,
00290                                              const std::string& node,
00291                                              const Error* error = 0 ) = 0;
00292 
00303         virtual void handleNodeCreation( const std::string& id,
00304                                          const JID& service,
00305                                          const std::string& node,
00306                                          const Error* error = 0 ) = 0;
00307 
00318         virtual void handleNodeDeletion( const std::string& id,
00319                                          const JID& service,
00320                                          const std::string& node,
00321                                          const Error* error = 0 ) = 0;
00322 
00323 
00334         virtual void handleNodePurge( const std::string& id,
00335                                       const JID& service,
00336                                       const std::string& node,
00337                                       const Error* error = 0 ) = 0;
00338 
00349         virtual void handleSubscriptions( const std::string& id,
00350                                           const JID& service,
00351                                           const SubscriptionMap& subMap,
00352                                           const Error* error = 0) = 0;
00353 
00364         virtual void handleAffiliations( const std::string& id,
00365                                          const JID& service,
00366                                          const AffiliationMap& affMap,
00367                                          const Error* error = 0 ) = 0;
00368 
00379         virtual void handleDefaultNodeConfig( const std::string& id,
00380                                               const JID& service,
00381                                               const DataForm* config,
00382                                               const Error* error = 0 ) = 0;
00383 
00384     };
00385 
00386   }
00387 
00388 }
00389 
00390 #endif // PUBSUBRESULTHANDLER_H__
00391