summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Presence/PresenceSender.cpp')
-rw-r--r--Swiften/Presence/PresenceSender.cpp73
1 files changed, 1 insertions, 72 deletions
diff --git a/Swiften/Presence/PresenceSender.cpp b/Swiften/Presence/PresenceSender.cpp
index 6df02b8..50d75eb 100644
--- a/Swiften/Presence/PresenceSender.cpp
+++ b/Swiften/Presence/PresenceSender.cpp
@@ -5,81 +5,10 @@
*/
#include "Swiften/Presence/PresenceSender.h"
-#include "Swiften/Base/foreach.h"
-#include "Swiften/Client/StanzaChannel.h"
namespace Swift {
-PresenceSender::PresenceSender(StanzaChannel* channel) : channel(channel) {
-}
-
-void PresenceSender::sendPresence(boost::shared_ptr<Presence> presence) {
- if (!channel->isAvailable()) {
- return;
- }
-
- channel->sendPresence(presence);
-
- if (!presence->getTo().isValid()) {
- boost::shared_ptr<Presence> presenceCopy(new Presence(*presence));
- foreach(const JID& jid, directedPresenceReceivers) {
- presenceCopy->setTo(jid);
- channel->sendPresence(presenceCopy);
- }
-
- lastSentUndirectedPresence = presence;
- }
-}
-
-/**
- * Gets either the last broadcast presence, or an empty stanza if none has been sent.
- */
-boost::shared_ptr<Presence> PresenceSender::getLastSentUndirectedPresence() {
- boost::shared_ptr<Presence> presenceCopy(lastSentUndirectedPresence ? new Presence(*lastSentUndirectedPresence) : new Presence());
- return presenceCopy;
-}
-
-void PresenceSender::addDirectedPresenceReceiver(const JID& jid) {
- directedPresenceReceivers.insert(jid);
- if (channel->isAvailable()) {
- if (lastSentUndirectedPresence && lastSentUndirectedPresence->getType() == Presence::Available) {
- boost::shared_ptr<Presence> presenceCopy(new Presence(*lastSentUndirectedPresence));
- presenceCopy->setTo(jid);
- channel->sendPresence(presenceCopy);
- }
- }
-}
-
-void PresenceSender::removeDirectedPresenceReceiver(const JID& jid) {
- directedPresenceReceivers.erase(jid);
- if (channel->isAvailable()) {
- boost::shared_ptr<Presence> presence(new Presence());
- presence->setType(Presence::Unavailable);
- presence->setTo(jid);
- channel->sendPresence(presence);
- }
-}
-
-void PresenceSender::cancelSubscription(const JID& jid) {
- boost::shared_ptr<Presence> stanza(new Presence());
- stanza->setType(Presence::Unsubscribed);
- stanza->setTo(jid);
- channel->sendPresence(stanza);
-}
-
-void PresenceSender::confirmSubscription(const JID& jid) {
- boost::shared_ptr<Presence> stanza(new Presence());
- stanza->setType(Presence::Subscribed);
- stanza->setTo(jid);
- channel->sendPresence(stanza);
-}
-
-
-void PresenceSender::requestSubscription(const JID& jid) {
- boost::shared_ptr<Presence> stanza(new Presence());
- stanza->setType(Presence::Subscribe);
- stanza->setTo(jid);
- channel->sendPresence(stanza);
+PresenceSender::~PresenceSender() {
}
}