summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2009-11-09 20:34:44 (GMT)
committerRemko Tronçon <git@el-tramo.be>2009-11-09 22:12:10 (GMT)
commitc682941cd230ad8caed3f3d457de3dc0cd7172d4 (patch)
treee4d4382a8627409d81bb7c79a62f1bc55f45b410 /Swiften/Session/SessionStream.h
parentf1d74218cb432513c376b46aa115acb3e107ed3a (diff)
downloadswift-c682941cd230ad8caed3f3d457de3dc0cd7172d4.zip
swift-c682941cd230ad8caed3f3d457de3dc0cd7172d4.tar.bz2
Refactoring Client.
Diffstat (limited to 'Swiften/Session/SessionStream.h')
-rw-r--r--Swiften/Session/SessionStream.h25
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;
};
}