[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