SocketLineReader: don't call packets bytes
This commit is contained in:
parent
ba3c515148
commit
d4cf48901c
3 changed files with 5 additions and 9 deletions
|
@ -100,7 +100,7 @@ bool LanDeviceLink::sendPacket(NetworkPacket& np)
|
||||||
|
|
||||||
void LanDeviceLink::dataReceived()
|
void LanDeviceLink::dataReceived()
|
||||||
{
|
{
|
||||||
if (m_socketLineReader->bytesAvailable() == 0) return;
|
if (!m_socketLineReader->hasPacketsAvailable()) return;
|
||||||
|
|
||||||
const QByteArray serializedPacket = m_socketLineReader->readLine();
|
const QByteArray serializedPacket = m_socketLineReader->readLine();
|
||||||
NetworkPacket packet((QString()));
|
NetworkPacket packet((QString()));
|
||||||
|
@ -134,7 +134,7 @@ void LanDeviceLink::dataReceived()
|
||||||
|
|
||||||
Q_EMIT receivedPacket(packet);
|
Q_EMIT receivedPacket(packet);
|
||||||
|
|
||||||
if (m_socketLineReader->bytesAvailable() > 0) {
|
if (m_socketLineReader->hasPacketsAvailable()) {
|
||||||
QMetaObject::invokeMethod(this, "dataReceived", Qt::QueuedConnection);
|
QMetaObject::invokeMethod(this, "dataReceived", Qt::QueuedConnection);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,11 +26,11 @@ class KDECONNECTCORE_EXPORT SocketLineReader
|
||||||
public:
|
public:
|
||||||
explicit SocketLineReader(QSslSocket* socket, QObject* parent = nullptr);
|
explicit SocketLineReader(QSslSocket* socket, QObject* parent = nullptr);
|
||||||
|
|
||||||
|
bool hasPacketsAvailable() const { return !m_packets.isEmpty(); }
|
||||||
QByteArray readLine() { return m_packets.dequeue(); }
|
QByteArray readLine() { return m_packets.dequeue(); }
|
||||||
qint64 write(const QByteArray& data) { return m_socket->write(data); }
|
qint64 write(const QByteArray& data) { return m_socket->write(data); }
|
||||||
QHostAddress peerAddress() const { return m_socket->peerAddress(); }
|
QHostAddress peerAddress() const { return m_socket->peerAddress(); }
|
||||||
QSslCertificate peerCertificate() const { return m_socket->peerCertificate(); }
|
QSslCertificate peerCertificate() const { return m_socket->peerCertificate(); }
|
||||||
qint64 bytesAvailable() const { return m_packets.size(); }
|
|
||||||
|
|
||||||
QSslSocket* m_socket;
|
QSslSocket* m_socket;
|
||||||
|
|
||||||
|
|
|
@ -87,12 +87,8 @@ void TestSocketLineReader::socketLineReader()
|
||||||
|
|
||||||
void TestSocketLineReader::newPacket()
|
void TestSocketLineReader::newPacket()
|
||||||
{
|
{
|
||||||
if (!m_reader->bytesAvailable()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
int maxLoops = 5;
|
int maxLoops = 5;
|
||||||
while(m_reader->bytesAvailable() > 0 && maxLoops > 0) {
|
while(m_reader->hasPacketsAvailable() && maxLoops > 0) {
|
||||||
--maxLoops;
|
--maxLoops;
|
||||||
const QByteArray packet = m_reader->readLine();
|
const QByteArray packet = m_reader->readLine();
|
||||||
if (!packet.isEmpty()) {
|
if (!packet.isEmpty()) {
|
||||||
|
|
Loading…
Reference in a new issue