[SCM] kdeconnect packaging branch, master, updated. debian/0.9g-1-1183-g9d69498
Maximiliano Curia
maxy at moszumanska.debian.org
Fri Oct 14 14:27:33 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/kdeconnect.git;a=commitdiff;h=0f734de
The following commit has been merged in the master branch:
commit 0f734de3e9d976ca7a4ea6f4a7889b9e602bddb9
Author: Àlex Fiestas <afiestas at kde.org>
Date: Mon Apr 14 21:49:47 2014 +0200
Simplify socketlinereader by using Qt build in parser
This also speeds it a lot making it possible to pass long lines.
REVIEW:116645
---
kded/backends/lan/socketlinereader.cpp | 41 ++++++++++++----------------------
1 file changed, 14 insertions(+), 27 deletions(-)
diff --git a/kded/backends/lan/socketlinereader.cpp b/kded/backends/lan/socketlinereader.cpp
index 4cd8ef0..c209e83 100644
--- a/kded/backends/lan/socketlinereader.cpp
+++ b/kded/backends/lan/socketlinereader.cpp
@@ -1,5 +1,6 @@
/**
* Copyright 2013 Albert Vaca <albertvaka at gmail.com>
+ * Copyright 2014 Alejandro Fiestas Olivares <afiestas at kde.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@ -20,8 +21,6 @@
#include "socketlinereader.h"
-#include "../../kdebugnamespace.h"
-
SocketLineReader::SocketLineReader(QTcpSocket* socket, QObject* parent)
: QObject(parent)
, mSocket(socket)
@@ -37,36 +36,24 @@ SocketLineReader::SocketLineReader(QTcpSocket* socket, QObject* parent)
void SocketLineReader::dataReceived()
{
-
- QByteArray data = lastChunk + mSocket->readAll();
-
- int parsedLength = 0;
- int packageLength = 0;
- Q_FOREACH(char c, data) {
- packageLength++;
- if (c == '
') {
- QByteArray package = data.mid(parsedLength,packageLength);
- parsedLength += packageLength;
- packageLength = 0;
- if(package.length() > 1) { //Ignore single newlines
- mPackages.enqueue(package);
- }
+ int packages = mPackages.size();
+ while(mSocket->canReadLine()) {
+ const QByteArray line = mSocket->readLine();
+ if (line.length() > 1) {
+ mPackages.enqueue(line);//we don't want single
}
}
- lastChunk = data.mid(parsedLength);
-
+ //If we still have things to read from the socket, call dataReceived again
+ //We do this manually because we do not trust readyRead to be emitted again
+ //So we call this method again just in case.
if (mSocket->bytesAvailable() > 0) {
-
QMetaObject::invokeMethod(this, "dataReceived", Qt::QueuedConnection);
+ return;
+ }
- } else {
-
- if (mPackages.length() > 0) {
- Q_EMIT readyRead();
- } else {
- kDebug(kdeconnect_kded()) << "Received incomplete chunk of data, waiting for more";
- }
-
+ //If we have any packages, tell it to the world.
+ if (!mPackages.isEmpty()) {
+ Q_EMIT readyRead();
}
}
--
kdeconnect packaging
More information about the pkg-kde-commits
mailing list