/* * Copyright (c) 2010-2016 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ #pragma once #include #include #include #include #include #include namespace Swift { class StanzaChannel; class SWIFTEN_API SubscriptionManager { public: SubscriptionManager(StanzaChannel* stanzaChannel); ~SubscriptionManager(); void cancelSubscription(const JID& jid); void confirmSubscription(const JID& jid); void requestSubscription(const JID& jid); /** * This signal is emitted when a presence subscription request is * received. * * The third parameter of this signal is the original presence stanza * received. This is useful when the subscriber adds extensions to * the request. */ boost::signals2::signal onPresenceSubscriptionRequest; boost::signals2::signal onPresenceSubscriptionRevoked; private: void handleIncomingPresence(Presence::ref presence); private: StanzaChannel* stanzaChannel; }; }