/* * 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(Presence::ref); 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(Payload::ref); private: Presence::ref lastSentPresence; PresenceSender* sender; Payload::ref payload; }; }