#pragma once #include #include #include "Swiften/Elements/ProtocolHeader.h" #include "Swiften/Elements/Element.h" #include "Swiften/Base/Error.h" namespace Swift { class SessionStream { public: class Error : public Swift::Error { public: Error() {} }; virtual ~SessionStream(); virtual void writeHeader(const ProtocolHeader& header) = 0; virtual void writeElement(boost::shared_ptr) = 0; virtual bool supportsTLSEncryption() = 0; virtual void addTLSEncryption() = 0; virtual void addWhitespacePing() = 0; virtual void resetXMPPParser() = 0; boost::signal onStreamStartReceived; boost::signal)> onElementReceived; boost::signal)> onError; }; }