00001
00002
00003
00004
00005
00006
00007 #pragma once
00008
00009 #include <Swiften/Base/boost_bsignals.h>
00010 #include <boost/shared_ptr.hpp>
00011
00012 #include <Swiften/Queries/IQChannel.h>
00013 #include <Swiften/Elements/Message.h>
00014 #include <Swiften/Elements/Presence.h>
00015 #include <Swiften/TLS/Certificate.h>
00016
00017 namespace Swift {
00018 class StanzaChannel : public IQChannel {
00019 public:
00020 virtual void sendMessage(boost::shared_ptr<Message>) = 0;
00021 virtual void sendPresence(boost::shared_ptr<Presence>) = 0;
00022 virtual bool isAvailable() const = 0;
00023 virtual bool getStreamManagementEnabled() const = 0;
00024 virtual std::vector<Certificate::ref> getPeerCertificateChain() const = 0;
00025
00026 boost::signal<void (bool )> onAvailableChanged;
00027 boost::signal<void (boost::shared_ptr<Message>)> onMessageReceived;
00028 boost::signal<void (boost::shared_ptr<Presence>) > onPresenceReceived;
00029 boost::signal<void (boost::shared_ptr<Stanza>)> onStanzaAcked;
00030 };
00031 }