diff options
author | Remko Tronçon <git@el-tramo.be> | 2009-11-09 20:34:44 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2009-11-09 22:12:10 (GMT) |
commit | c682941cd230ad8caed3f3d457de3dc0cd7172d4 (patch) | |
tree | e4d4382a8627409d81bb7c79a62f1bc55f45b410 /Swiften/Session/SessionStream.h | |
parent | f1d74218cb432513c376b46aa115acb3e107ed3a (diff) | |
download | swift-contrib-c682941cd230ad8caed3f3d457de3dc0cd7172d4.zip swift-contrib-c682941cd230ad8caed3f3d457de3dc0cd7172d4.tar.bz2 |
Refactoring Client.
Diffstat (limited to 'Swiften/Session/SessionStream.h')
-rw-r--r-- | Swiften/Session/SessionStream.h | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/Swiften/Session/SessionStream.h b/Swiften/Session/SessionStream.h index 44a1980..b2444f5 100644 --- a/Swiften/Session/SessionStream.h +++ b/Swiften/Session/SessionStream.h @@ -6,6 +6,7 @@ #include "Swiften/Elements/ProtocolHeader.h" #include "Swiften/Elements/Element.h" #include "Swiften/Base/Error.h" +#include "Swiften/TLS/PKCS12Certificate.h" namespace Swift { class SessionStream { @@ -17,18 +18,38 @@ namespace Swift { virtual ~SessionStream(); + virtual bool isAvailable() = 0; + virtual void writeHeader(const ProtocolHeader& header) = 0; + virtual void writeFooter() = 0; virtual void writeElement(boost::shared_ptr<Element>) = 0; virtual bool supportsTLSEncryption() = 0; virtual void addTLSEncryption() = 0; - - virtual void addWhitespacePing() = 0; + virtual void setWhitespacePingEnabled(bool enabled) = 0; virtual void resetXMPPParser() = 0; + void setTLSCertificate(const PKCS12Certificate& cert) { + certificate = cert; + } + + virtual bool hasTLSCertificate() { + return !certificate.isNull(); + } + + boost::signal<void (const ProtocolHeader&)> onStreamStartReceived; boost::signal<void (boost::shared_ptr<Element>)> onElementReceived; boost::signal<void (boost::shared_ptr<Error>)> onError; + boost::signal<void ()> onTLSEncrypted; + + protected: + const PKCS12Certificate& getTLSCertificate() const { + return certificate; + } + + private: + PKCS12Certificate certificate; }; } |