#pragma once #include #include #include "Swiften/Base/String.h" namespace Swift { class Element; class PayloadParserFactoryCollection; class PayloadSerializerCollection; class StreamStack; class XMPPLayer; class IncomingConnectionLayer; class IncomingConnection; class ByteArray; class ServerFromClientSession { public: ServerFromClientSession( const String& id, boost::shared_ptr connection, PayloadParserFactoryCollection* payloadParserFactories, PayloadSerializerCollection* payloadSerializers); ~ServerFromClientSession(); boost::signal onSessionFinished; boost::signal onDataWritten; boost::signal onDataRead; private: void handleElement(boost::shared_ptr); void handleStreamStart(const String& domain); private: String id_; boost::shared_ptr connection_; PayloadParserFactoryCollection* payloadParserFactories_; PayloadSerializerCollection* payloadSerializers_; IncomingConnectionLayer* connectionLayer_; StreamStack* streamStack_; XMPPLayer* xmppLayer_; String domain_; }; }