From ee7c1b0ea8bd9483add1f8b06d5b6f745f1cfe27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Remko=20Tron=C3=A7on?= Date: Tue, 13 Oct 2009 18:14:26 +0200 Subject: Refactored some degenerate stuff out of base Session. diff --git a/Swiften/Client/ClientSession.cpp b/Swiften/Client/ClientSession.cpp index ae98ee6..a0e1289 100644 --- a/Swiften/Client/ClientSession.cpp +++ b/Swiften/Client/ClientSession.cpp @@ -115,7 +115,7 @@ void ClientSession::handleElement(boost::shared_ptr element) { } else { state_ = SessionStarted; - setInitialized(); + onSessionStarted(); } } } @@ -171,7 +171,7 @@ void ClientSession::handleElement(boost::shared_ptr element) { else if (state_ == StartingSession) { if (iq->getType() == IQ::Result) { state_ = SessionStarted; - setInitialized(); + onSessionStarted(); } else if (iq->getType() == IQ::Error) { finishSession(SessionStartError); @@ -187,7 +187,7 @@ void ClientSession::handleElement(boost::shared_ptr element) { else { // FIXME Not correct? state_ = SessionStarted; - setInitialized(); + onSessionStarted(); } } diff --git a/Swiften/Client/ClientSession.h b/Swiften/Client/ClientSession.h index cb1e098..fead182 100644 --- a/Swiften/Client/ClientSession.h +++ b/Swiften/Client/ClientSession.h @@ -74,6 +74,7 @@ namespace Swift { public: boost::signal onNeedCredentials; + boost::signal onSessionStarted; private: TLSLayerFactory* tlsLayerFactory_; diff --git a/Swiften/LinkLocal/IncomingLinkLocalSession.cpp b/Swiften/LinkLocal/IncomingLinkLocalSession.cpp index a1fb901..4c3a681 100644 --- a/Swiften/LinkLocal/IncomingLinkLocalSession.cpp +++ b/Swiften/LinkLocal/IncomingLinkLocalSession.cpp @@ -18,7 +18,8 @@ IncomingLinkLocalSession::IncomingLinkLocalSession( boost::shared_ptr connection, PayloadParserFactoryCollection* payloadParserFactories, PayloadSerializerCollection* payloadSerializers) : - Session(connection, payloadParserFactories, payloadSerializers) { + Session(connection, payloadParserFactories, payloadSerializers), + initialized(false) { setLocalJID(localJID); } @@ -52,5 +53,11 @@ void IncomingLinkLocalSession::handleElement(boost::shared_ptr element) onElementReceived(element); } +void IncomingLinkLocalSession::setInitialized() { + initialized = true; + onSessionStarted(); +} + + } diff --git a/Swiften/LinkLocal/IncomingLinkLocalSession.h b/Swiften/LinkLocal/IncomingLinkLocalSession.h index 2f1a45b..e3f0460 100644 --- a/Swiften/LinkLocal/IncomingLinkLocalSession.h +++ b/Swiften/LinkLocal/IncomingLinkLocalSession.h @@ -22,8 +22,16 @@ namespace Swift { PayloadParserFactoryCollection* payloadParserFactories, PayloadSerializerCollection* payloadSerializers); + boost::signal onSessionStarted; + private: void handleElement(boost::shared_ptr); void handleStreamStart(const ProtocolHeader&); + void setInitialized(); + bool isInitialized() const { + return initialized; + } + + bool initialized; }; } diff --git a/Swiften/LinkLocal/OutgoingLinkLocalSession.cpp b/Swiften/LinkLocal/OutgoingLinkLocalSession.cpp index 1c2fefb..7b71f82 100644 --- a/Swiften/LinkLocal/OutgoingLinkLocalSession.cpp +++ b/Swiften/LinkLocal/OutgoingLinkLocalSession.cpp @@ -31,7 +31,6 @@ void OutgoingLinkLocalSession::handleStreamStart(const ProtocolHeader&) { sendElement(stanza); } queuedElements_.clear(); - setInitialized(); } void OutgoingLinkLocalSession::handleElement(boost::shared_ptr element) { diff --git a/Swiften/Server/ServerFromClientSession.cpp b/Swiften/Server/ServerFromClientSession.cpp index 3efacd7..c974e18 100644 --- a/Swiften/Server/ServerFromClientSession.cpp +++ b/Swiften/Server/ServerFromClientSession.cpp @@ -26,7 +26,8 @@ ServerFromClientSession::ServerFromClientSession( Session(connection, payloadParserFactories, payloadSerializers), id_(id), userRegistry_(userRegistry), - authenticated_(false) { + authenticated_(false), + initialized(false) { } @@ -87,4 +88,10 @@ void ServerFromClientSession::handleStreamStart(const ProtocolHeader& incomingHe getXMPPLayer()->writeElement(features); } +void ServerFromClientSession::setInitialized() { + initialized = true; + onSessionStarted(); +} + + } diff --git a/Swiften/Server/ServerFromClientSession.h b/Swiften/Server/ServerFromClientSession.h index 748f7eb..33826a4 100644 --- a/Swiften/Server/ServerFromClientSession.h +++ b/Swiften/Server/ServerFromClientSession.h @@ -31,14 +31,22 @@ namespace Swift { PayloadSerializerCollection* payloadSerializers, UserRegistry* userRegistry); + boost::signal onSessionStarted; + private: void handleElement(boost::shared_ptr); void handleStreamStart(const ProtocolHeader& header); + void setInitialized(); + bool isInitialized() const { + return initialized; + } + private: String id_; UserRegistry* userRegistry_; bool authenticated_; + bool initialized; String user_; }; } diff --git a/Swiften/Session/Session.cpp b/Swiften/Session/Session.cpp index 6f528c1..64456db 100644 --- a/Swiften/Session/Session.cpp +++ b/Swiften/Session/Session.cpp @@ -15,7 +15,6 @@ Session::Session( payloadParserFactories(payloadParserFactories), payloadSerializers(payloadSerializers), streamStack(0), - initialized(false), finishing(false) { } @@ -80,9 +79,4 @@ void Session::handleDisconnected(const boost::optional& conne } } -void Session::setInitialized() { - initialized = true; - onSessionStarted(); -} - } diff --git a/Swiften/Session/Session.h b/Swiften/Session/Session.h index 26d10c1..d63254a 100644 --- a/Swiften/Session/Session.h +++ b/Swiften/Session/Session.h @@ -44,6 +44,7 @@ namespace Swift { void startSession(); void finishSession(); + void sendElement(boost::shared_ptr); const JID& getLocalJID() const { @@ -55,19 +56,16 @@ namespace Swift { } boost::signal)> onElementReceived; - boost::signal onSessionStarted; boost::signal&)> onSessionFinished; boost::signal onDataWritten; boost::signal onDataRead; protected: void setRemoteJID(const JID& j) { - assert(!isInitialized()); remoteJID = j; } void setLocalJID(const JID& j) { - assert(!isInitialized()); localJID = j; } @@ -88,11 +86,6 @@ namespace Swift { return streamStack; } - void setInitialized(); - bool isInitialized() const { - return initialized; - } - void setFinished(); private: @@ -107,7 +100,6 @@ namespace Swift { boost::shared_ptr xmppLayer; boost::shared_ptr connectionLayer; StreamStack* streamStack; - bool initialized; bool finishing; }; } -- cgit v0.10.2-6-g49f6