/* * Copyright (c) 2010 Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #pragma once #include "Swiften/Presence/PresenceSender.h" #include "Swiften/Elements/Payload.h" namespace Swift { class StanzaChannel; /** * This presence sender adds payloads to outgoing presences. * * This class isn't meant to be used with directed presence. */ class PayloadAddingPresenceSender : public PresenceSender { public: PayloadAddingPresenceSender(PresenceSender*); void sendPresence(boost::shared_ptr); bool isAvailable() const; /** * Sets the payload to be added to outgoing presences. * If initial presence has been sent, this will resend the last sent presence * with an updated payload. Initial presence is reset when unavailable presence is * sent. */ void setPayload(boost::shared_ptr); private: boost::shared_ptr lastSentPresence; PresenceSender* sender; boost::shared_ptr payload; }; }