diff options
author | Remko Tronçon <git@el-tramo.be> | 2009-07-12 17:57:48 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2009-07-12 18:49:51 (GMT) |
commit | 72858ab262a16aa8db209c2898ab0d3c951a9829 (patch) | |
tree | 411ccedbf9bdd746ccb1f124e74fe91111d63a56 /Swiften/Server/ServerFromClientSession.h | |
parent | eb1338be843c53aa02fac0d38455aada3f89db0b (diff) | |
download | swift-contrib-72858ab262a16aa8db209c2898ab0d3c951a9829.zip swift-contrib-72858ab262a16aa8db209c2898ab0d3c951a9829.tar.bz2 |
Added ServerFromClientSession.
Diffstat (limited to 'Swiften/Server/ServerFromClientSession.h')
-rw-r--r-- | Swiften/Server/ServerFromClientSession.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/Swiften/Server/ServerFromClientSession.h b/Swiften/Server/ServerFromClientSession.h new file mode 100644 index 0000000..cedfcdb --- /dev/null +++ b/Swiften/Server/ServerFromClientSession.h @@ -0,0 +1,41 @@ +#pragma once + +#include <boost/shared_ptr.hpp> +#include <boost/signal.hpp> + +namespace Swift { + class Element; + class PayloadParserFactoryCollection; + class PayloadSerializerCollection; + class StreamStack; + class XMPPLayer; + class IncomingConnectionLayer; + class IncomingConnection; + class ByteArray; + class String; + + class ServerFromClientSession { + public: + ServerFromClientSession( + boost::shared_ptr<IncomingConnection> connection, + PayloadParserFactoryCollection* payloadParserFactories, + PayloadSerializerCollection* payloadSerializers); + ~ServerFromClientSession(); + + boost::signal<void()> onSessionFinished; + boost::signal<void (const ByteArray&)> onDataWritten; + boost::signal<void (const ByteArray&)> onDataRead; + + private: + void handleElement(boost::shared_ptr<Element>); + void handleStreamStart(const String& domain); + + private: + boost::shared_ptr<IncomingConnection> connection_; + PayloadParserFactoryCollection* payloadParserFactories_; + PayloadSerializerCollection* payloadSerializers_; + IncomingConnectionLayer* connectionLayer_; + StreamStack* streamStack_; + XMPPLayer* xmppLayer_; + }; +} |