#pragma once #include #include #include #include "Swiften/Base/String.h" #include "Swiften/Session/Session.h" #include "Swiften/JID/JID.h" #include "Swiften/Network/Connection.h" namespace Swift { class ProtocolHeader; class Element; class Stanza; class PayloadParserFactoryCollection; class PayloadSerializerCollection; class StreamStack; class UserRegistry; class XMPPLayer; class ConnectionLayer; class Connection; class ByteArray; class ServerFromClientSession : public Session { public: ServerFromClientSession( const String& id, boost::shared_ptr connection, PayloadParserFactoryCollection* payloadParserFactories, PayloadSerializerCollection* payloadSerializers, UserRegistry* userRegistry); private: void handleElement(boost::shared_ptr); void handleStreamStart(const ProtocolHeader& header); private: String id_; UserRegistry* userRegistry_; bool authenticated_; String user_; }; }