#pragma once #include #include 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 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: boost::shared_ptr connection_; PayloadParserFactoryCollection* payloadParserFactories_; PayloadSerializerCollection* payloadSerializers_; IncomingConnectionLayer* connectionLayer_; StreamStack* streamStack_; XMPPLayer* xmppLayer_; }; }