loolwsd/ChildProcessSession.cpp | 5 ++++- loolwsd/ChildProcessSession.hpp | 11 ++++++++++- loolwsd/LOOLWSD.cpp | 2 +- 3 files changed, 15 insertions(+), 3 deletions(-)
New commits: commit 03f33c71d9c5cde5e56e8d49a2f6fa84912b17f5 Author: Henry Castro <hcas...@collabora.com> Date: Sun Dec 13 14:25:57 2015 -0500 loolwsd: Multiple views in ChildProcessSession Change-Id: I07359c97acc1e5e48dbbd35dc21ed08471c0697e Reviewed-on: https://gerrit.libreoffice.org/20899 Reviewed-by: Ashod Nakashian <ashnak...@gmail.com> Tested-by: Ashod Nakashian <ashnak...@gmail.com> diff --git a/loolwsd/ChildProcessSession.cpp b/loolwsd/ChildProcessSession.cpp index 5d73230..dfa179f 100644 --- a/loolwsd/ChildProcessSession.cpp +++ b/loolwsd/ChildProcessSession.cpp @@ -42,9 +42,11 @@ using Poco::Util::Application; ChildProcessSession::ChildProcessSession(std::shared_ptr<WebSocket> ws, LibreOfficeKit *loKit, + LibreOfficeKitDocument * loKitDocument, const std::string& childId) : LOOLSession(ws, Kind::ToMaster), - _loKitDocument(NULL), + _loKitDocument(loKitDocument), + _viewId(0), _loKit(loKit), _childId(childId), _clientPart(0) @@ -57,6 +59,7 @@ ChildProcessSession::~ChildProcessSession() std::cout << Util::logPrefix() << "ChildProcessSession dtor this=" << this << std::endl; if (LIBREOFFICEKIT_HAS(_loKit, registerCallback)) _loKit->pClass->registerCallback(_loKit, 0, 0); + Util::shutdownWebSocket(*_ws); } bool ChildProcessSession::handleInput(const char *buffer, int length) diff --git a/loolwsd/ChildProcessSession.hpp b/loolwsd/ChildProcessSession.hpp index 24bebc5..5b7baef 100644 --- a/loolwsd/ChildProcessSession.hpp +++ b/loolwsd/ChildProcessSession.hpp @@ -18,9 +18,16 @@ class ChildProcessSession final : public LOOLSession { public: + /// Create a new ChildProcessSession + /// ws The socket to our counterparty (Child or Master). + /// loKit The LOKit instance. + /// loKitDocument The instance to an existing document (when opening + /// a new view) or nullptr (when first view). + /// childId The id of the child, used by downloadas to construct jailed path. ChildProcessSession(std::shared_ptr<Poco::Net::WebSocket> ws, LibreOfficeKit *loKit, - const std::string& _childId); + LibreOfficeKitDocument * loKitDocument, + const std::string& childId); virtual ~ChildProcessSession(); virtual bool handleInput(const char *buffer, int length) override; @@ -33,6 +40,8 @@ public: LibreOfficeKitDocument *_loKitDocument; std::string _docType; + /// View ID, returned by createView() or 0 by default. + int _viewId; protected: virtual bool loadDocument(const char *buffer, int length, Poco::StringTokenizer& tokens) override; diff --git a/loolwsd/LOOLWSD.cpp b/loolwsd/LOOLWSD.cpp index 8bdc377..f02d7e5 100644 --- a/loolwsd/LOOLWSD.cpp +++ b/loolwsd/LOOLWSD.cpp @@ -1026,7 +1026,7 @@ void LOOLWSD::componentMain() HTTPResponse response; std::shared_ptr<WebSocket> ws(new WebSocket(cs, request, response)); - std::shared_ptr<ChildProcessSession> session(new ChildProcessSession(ws, loKit, std::to_string(_childId))); + std::shared_ptr<ChildProcessSession> session(new ChildProcessSession(ws, loKit, nullptr, std::to_string(_childId))); ws->setReceiveTimeout(0); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits