00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef DISCONODEHANDLER_H__
00016 #define DISCONODEHANDLER_H__
00017
00018 #include "gloox.h"
00019
00020 #include <list>
00021 #include <map>
00022 #include <string>
00023
00024 namespace gloox
00025 {
00026
00030 struct DiscoNodeItem
00031 {
00032 DiscoNodeItem() {}
00033 DiscoNodeItem( const std::string& _node,
00034 const std::string& _jid,
00035 const std::string& _name )
00036 : node( _node ), jid( _jid ), name( _name ) {}
00037 std::string node;
00038 std::string jid;
00039 std::string name;
00040 };
00041
00045 typedef std::list<DiscoNodeItem> DiscoNodeItemList;
00046
00054 class GLOOX_API DiscoNodeHandler
00055 {
00056 public:
00060 virtual ~DiscoNodeHandler() {}
00061
00069 virtual StringList handleDiscoNodeFeatures( const std::string& node ) = 0;
00070
00081 virtual StringMap handleDiscoNodeIdentities( const std::string& node, std::string& name ) = 0;
00082
00091 virtual DiscoNodeItemList handleDiscoNodeItems( const std::string& node = "" ) = 0;
00092
00093 };
00094
00095 }
00096
00097 #endif // DISCONODEHANDLER_H__