00001
00002
00003
00004
00005
00006
00007 #pragma once
00008
00009 #include <Swiften/Base/API.h>
00010 #include <Swiften/Elements/CapsInfo.h>
00011 #include <Swiften/Elements/DiscoInfo.h>
00012 #include <Swiften/Presence/PayloadAddingPresenceSender.h>
00013
00014 namespace Swift {
00015 class IQRouter;
00016 class DiscoInfoResponder;
00017 class PayloadAddingPresenceSender;
00018 class PresenceSender;
00019
00030 class SWIFTEN_API ClientDiscoManager {
00031 public:
00039 ClientDiscoManager(IQRouter* iqRouter, PresenceSender* presenceSender);
00040 ~ClientDiscoManager();
00041
00045 void setCapsNode(const std::string& node);
00046
00050 void setDiscoInfo(const DiscoInfo& info);
00051
00058 PresenceSender* getPresenceSender() const {
00059 return presenceSender;
00060 }
00061
00067 void handleConnected();
00068
00069 private:
00070 PayloadAddingPresenceSender* presenceSender;
00071 DiscoInfoResponder* discoInfoResponder;
00072 std::string capsNode;
00073 CapsInfo::ref capsInfo;
00074 };
00075 }