00001
00002
00003
00004
00005
00006
00007 #pragma once
00008
00009 #include <set>
00010
00011 #include <Swiften/Elements/Presence.h>
00012 #include <Swiften/Presence/PresenceSender.h>
00013 #include <Swiften/Base/API.h>
00014
00015 namespace Swift {
00016 class SWIFTEN_API DirectedPresenceSender : public PresenceSender {
00017 public:
00018 enum SendPresence {AndSendPresence, DontSendPresence};
00019 DirectedPresenceSender(PresenceSender*);
00020
00021 void addDirectedPresenceReceiver(const JID&, SendPresence);
00022 void removeDirectedPresenceReceiver(const JID&, SendPresence);
00023
00024 void sendPresence(Presence::ref);
00025
00026 Presence::ref getLastSentUndirectedPresence();
00027
00028 bool isAvailable() const;
00029
00030 private:
00031 Presence::ref lastSentUndirectedPresence;
00032 PresenceSender* sender;
00033 std::set<JID> directedPresenceReceivers;
00034 };
00035 }