[Libreoffice-commits] online.git: loolwsd/ChildProcessSession.cpp loolwsd/ChildProcessSession.hpp loolwsd/LOOLKit.cpp
Ashod Nakashian
ashod.nakashian at collabora.co.uk
Thu Dec 24 19:30:59 PST 2015
loolwsd/ChildProcessSession.cpp | 24 +++++++++++++-----------
loolwsd/ChildProcessSession.hpp | 17 +++++++++--------
loolwsd/LOOLKit.cpp | 17 +++++++++++------
3 files changed, 33 insertions(+), 25 deletions(-)
New commits:
commit f8f7eb9ccc030a9a8dd8e275f9b2db6c822c7021
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date: Wed Dec 23 21:20:49 2015 -0500
loolwsd: misc cleanups
Change-Id: I0e2f497c7527e18ec4524e0f52b920f1e30853fa
Reviewed-on: https://gerrit.libreoffice.org/20930
Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
Tested-by: Ashod Nakashian <ashnakash at gmail.com>
diff --git a/loolwsd/ChildProcessSession.cpp b/loolwsd/ChildProcessSession.cpp
index cf75086..f074eb5 100644
--- a/loolwsd/ChildProcessSession.cpp
+++ b/loolwsd/ChildProcessSession.cpp
@@ -214,8 +214,8 @@ extern "C"
/*pid_t tid = syscall(SYS_gettid);
std::cout << tid << " callbackWorker : " << priv->m_nViewId << " " << std::string(callbackTypeToString(nType)) << " " << std::string(pPayload ? pPayload : "(nil)") << std::endl;*/
- ChildProcessSession::_callbackQueue.enqueueNotification(new CallBackNotification(nType, pPayload ? pPayload : "(nil)", pData));
- //std::string aPayLoad(pPayload ? pPayload : "(nil)");
+ auto pNotif = new CallBackNotification(nType, pPayload ? pPayload : "(nil)", pData);
+ ChildProcessSession::_callbackQueue.enqueueNotification(pNotif);
}
}
@@ -243,6 +243,7 @@ bool ChildProcessSession::loadDocument(const char *buffer, int length, StringTok
return false;
}
+ Log::info("Loading URI: " + aUri.toString());
if (aUri.empty())
{
sendTextFrame("error: cmd=load kind=uriempty");
@@ -259,7 +260,7 @@ bool ChildProcessSession::loadDocument(const char *buffer, int length, StringTok
aUri = URI( URI("file://"), Path(jailDocumentURL + Path::separator() + std::to_string(Process::id()),
Path(aUri.getPath()).getFileName()).toString() );
- if ((_loKitDocument = _loKit->pClass->documentLoad(_loKit, aUri.toString().c_str())) == NULL)
+ if ((_loKitDocument = _loKit->pClass->documentLoad(_loKit, aUri.toString().c_str())) == nullptr)
{
sendTextFrame("error: cmd=load kind=failed");
Log::error("Failed to load: " + aUri.toString() + ", error is: " + _loKit->pClass->getError(_loKit));
@@ -315,7 +316,8 @@ void ChildProcessSession::sendFontRendering(const char* /*buffer*/, int /*length
pixmap = _loKitDocument->pClass->renderFont(_loKitDocument, decodedFont.c_str(), &width, &height);
std::cout << Util::logPrefix() << "renderFont called, font[" << font << "] rendered in " << double(timestamp.elapsed())/1000 << "ms" << std::endl;
- if (pixmap != nullptr) {
+ if (pixmap != nullptr)
+ {
if (!Util::encodePNGAndAppendToBuffer(pixmap, width, height, output, LOK_TILEMODE_RGBA))
{
sendTextFrame("error: cmd=renderfont kind=failure");
@@ -460,10 +462,10 @@ bool ChildProcessSession::downloadAs(const char* /*buffer*/, int /*length*/, Str
}
std::string tmpDir, url;
- File *file = NULL;
+ File *file = nullptr;
do
{
- if (file != NULL)
+ if (file != nullptr)
{
delete file;
}
@@ -474,8 +476,8 @@ bool ChildProcessSession::downloadAs(const char* /*buffer*/, int /*length*/, Str
delete file;
_loKitDocument->pClass->saveAs(_loKitDocument, url.c_str(),
- format.size() == 0 ? NULL :format.c_str(),
- filterOptions.size() == 0 ? NULL : filterOptions.c_str());
+ format.size() == 0 ? nullptr :format.c_str(),
+ filterOptions.size() == 0 ? nullptr : filterOptions.c_str());
//TODO: handle download portNumber.
//sendTextFrame("downloadas: jail=" + _childId + " dir=" + tmpDir + " name=" + name +
@@ -500,7 +502,7 @@ bool ChildProcessSession::getTextSelection(const char* /*buffer*/, int /*length*
return false;
}
- char *textSelection = _loKitDocument->pClass->getTextSelection(_loKitDocument, mimeType.c_str(), NULL);
+ char *textSelection = _loKitDocument->pClass->getTextSelection(_loKitDocument, mimeType.c_str(), nullptr);
sendTextFrame("textselectioncontent: " + std::string(textSelection));
return true;
@@ -697,8 +699,8 @@ bool ChildProcessSession::saveAs(const char* /*buffer*/, int /*length*/, StringT
}
bool success = _loKitDocument->pClass->saveAs(_loKitDocument, url.c_str(),
- format.size() == 0 ? NULL :format.c_str(),
- filterOptions.size() == 0 ? NULL : filterOptions.c_str());
+ format.size() == 0 ? nullptr :format.c_str(),
+ filterOptions.size() == 0 ? nullptr : filterOptions.c_str());
sendTextFrame("saveas: url=" + url);
std::string successStr = success ? "true" : "false";
diff --git a/loolwsd/ChildProcessSession.hpp b/loolwsd/ChildProcessSession.hpp
index 63a24a3..0c62a39 100644
--- a/loolwsd/ChildProcessSession.hpp
+++ b/loolwsd/ChildProcessSession.hpp
@@ -20,7 +20,7 @@ class ChildProcessSession final : public LOOLSession
{
public:
/// Create a new ChildProcessSession
- /// ws The socket to our counterparty (Child or Master).
+ /// ws The socket between master and kit (jailed).
/// loKit The LOKit instance.
/// loKitDocument The instance to an existing document (when opening
/// a new view) or nullptr (when first view).
@@ -82,14 +82,15 @@ class CallBackNotification: public Poco::Notification
public:
typedef Poco::AutoPtr<CallBackNotification> Ptr;
- CallBackNotification(int nType, const std::string& rPayload, void* pSession)
- : m_nType(nType),
- m_aPayload(rPayload),
- m_pSession(pSession)
- {}
+ CallBackNotification(const int nType, const std::string& rPayload, void* pSession)
+ : m_nType(nType),
+ m_aPayload(rPayload),
+ m_pSession(pSession)
+ {
+ }
- int m_nType;
- std::string m_aPayload;
+ const int m_nType;
+ const std::string m_aPayload;
void* m_pSession;
};
diff --git a/loolwsd/LOOLKit.cpp b/loolwsd/LOOLKit.cpp
index bfd6dd3..0cfeb14 100644
--- a/loolwsd/LOOLKit.cpp
+++ b/loolwsd/LOOLKit.cpp
@@ -60,6 +60,8 @@ const int MASTER_PORT_NUMBER = 9981;
const std::string CHILD_URI = "/loolws/child/";
const std::string LOKIT_BROKER = "/tmp/loolbroker.fifo";
+// This thread handles callbacks from the
+// lokit instance.
class CallBackWorker: public Runnable
{
public:
@@ -68,7 +70,7 @@ public:
{
}
- std::string callbackTypeToString (int nType)
+ std::string callbackTypeToString (const int nType)
{
switch (nType)
{
@@ -106,7 +108,7 @@ public:
return std::string("");
}
- void callback(int nType, std::string& rPayload, void* pData)
+ void callback(const int nType, const std::string& rPayload, void* pData)
{
ChildProcessSession *srv = reinterpret_cast<ChildProcessSession *>(pData);
@@ -120,12 +122,14 @@ public:
{
curPart = 0;
}
+
StringTokenizer tokens(rPayload, " ", StringTokenizer::TOK_IGNORE_EMPTY | StringTokenizer::TOK_TRIM);
if (tokens.count() == 4)
{
int x, y, width, height;
- try {
+ try
+ {
x = std::stoi(tokens[0]);
y = std::stoi(tokens[1]);
width = std::stoi(tokens[2]);
@@ -242,6 +246,8 @@ private:
FastMutex CallBackWorker::_mutex;
+// This thread handles incoming messages
+// on a given kit instance.
class QueueHandler: public Runnable
{
public:
@@ -265,7 +271,7 @@ public:
{
while (true)
{
- std::string input = _queue.get();
+ const std::string input = _queue.get();
if (input == "eof")
break;
if (!_session->handleInput(input.c_str(), input.size()))
@@ -334,12 +340,11 @@ public:
std::shared_ptr<WebSocket> ws(new WebSocket(cs, request, response));
_session.reset(new ChildProcessSession(ws, _loKit, _loKitDocument, std::to_string(_childId)));
- //std::shared_ptr<ChildProcessSession> session(new ChildProcessSession(ws, _loKit, _loKitDocument));
ws->setReceiveTimeout(0);
// child Jail TID PID
std::string hello("child " + std::to_string(_childId) + " " +
- _threadId + " " + std::to_string(Process::id()));
+ _threadId + " " + std::to_string(Process::id()));
_session->sendTextFrame(hello);
TileQueue queue;
More information about the Libreoffice-commits
mailing list