summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
Diffstat (limited to 'common')
-rw-r--r--common/clientapi.cpp3
-rw-r--r--common/facade.cpp3
-rw-r--r--common/genericresource.cpp11
-rw-r--r--common/listener.cpp3
-rw-r--r--common/modelresult.cpp3
-rw-r--r--common/pipeline.cpp3
-rw-r--r--common/queryrunner.cpp3
-rw-r--r--common/resourceaccess.cpp46
-rw-r--r--common/resourceaccess.h1
-rw-r--r--common/typeindex.cpp3
10 files changed, 51 insertions, 28 deletions
diff --git a/common/clientapi.cpp b/common/clientapi.cpp
index be9f3fd..a13456b 100644
--- a/common/clientapi.cpp
+++ b/common/clientapi.cpp
@@ -39,6 +39,9 @@
39#include "storage.h" 39#include "storage.h"
40#include "log.h" 40#include "log.h"
41 41
42#undef DEBUG_AREA
43#define DEBUG_AREA "client.clientapi"
44
42namespace Sink 45namespace Sink
43{ 46{
44 47
diff --git a/common/facade.cpp b/common/facade.cpp
index 8cb776c..95fecd9 100644
--- a/common/facade.cpp
+++ b/common/facade.cpp
@@ -29,6 +29,9 @@
29 29
30using namespace Sink; 30using namespace Sink;
31 31
32#undef DEBUG_AREA
33#define DEBUG_AREA "client.facade"
34
32class ResourceAccessFactory { 35class ResourceAccessFactory {
33public: 36public:
34 static ResourceAccessFactory &instance() 37 static ResourceAccessFactory &instance()
diff --git a/common/genericresource.cpp b/common/genericresource.cpp
index 29cd8b1..b49ca94 100644
--- a/common/genericresource.cpp
+++ b/common/genericresource.cpp
@@ -22,6 +22,9 @@ static int sBatchSize = 100;
22 22
23using namespace Sink; 23using namespace Sink;
24 24
25#undef DEBUG_AREA
26#define DEBUG_AREA "resource.changereplay"
27
25/** 28/**
26 * Replays changes from the storage one by one. 29 * Replays changes from the storage one by one.
27 * 30 *
@@ -110,6 +113,9 @@ private:
110 ReplayFunction mReplayFunction; 113 ReplayFunction mReplayFunction;
111}; 114};
112 115
116#undef DEBUG_AREA
117#define DEBUG_AREA "resource.commandprocessor"
118
113/** 119/**
114 * Drives the pipeline using the output from all command queues 120 * Drives the pipeline using the output from all command queues
115 */ 121 */
@@ -286,6 +292,8 @@ private:
286 InspectionFunction mInspect; 292 InspectionFunction mInspect;
287}; 293};
288 294
295#undef DEBUG_AREA
296#define DEBUG_AREA "resource"
289 297
290GenericResource::GenericResource(const QByteArray &resourceInstanceIdentifier, const QSharedPointer<Pipeline> &pipeline) 298GenericResource::GenericResource(const QByteArray &resourceInstanceIdentifier, const QSharedPointer<Pipeline> &pipeline)
291 : Sink::Resource(), 299 : Sink::Resource(),
@@ -312,7 +320,7 @@ GenericResource::GenericResource(const QByteArray &resourceInstanceIdentifier, c
312 QVariant expectedValue; 320 QVariant expectedValue;
313 s >> expectedValue; 321 s >> expectedValue;
314 inspect(inspectionType, inspectionId, domainType, entityId, property, expectedValue).then<void>([=]() { 322 inspect(inspectionType, inspectionId, domainType, entityId, property, expectedValue).then<void>([=]() {
315 Log() << "Inspection was successful: " << inspectionType << inspectionId << entityId; 323 Log_area("resource.inspection") << "Inspection was successful: " << inspectionType << inspectionId << entityId;
316 Sink::Notification n; 324 Sink::Notification n;
317 n.type = Sink::Commands::NotificationType_Inspection; 325 n.type = Sink::Commands::NotificationType_Inspection;
318 n.id = inspectionId; 326 n.id = inspectionId;
@@ -384,7 +392,6 @@ KAsync::Job<void> GenericResource::replay(Sink::Storage &synchronizationStore, c
384 392
385void GenericResource::removeFromDisk(const QByteArray &instanceIdentifier) 393void GenericResource::removeFromDisk(const QByteArray &instanceIdentifier)
386{ 394{
387 Warning() << "Removing from generic resource";
388 Sink::Storage(Sink::storageLocation(), instanceIdentifier, Sink::Storage::ReadWrite).removeFromDisk(); 395 Sink::Storage(Sink::storageLocation(), instanceIdentifier, Sink::Storage::ReadWrite).removeFromDisk();
389 Sink::Storage(Sink::storageLocation(), instanceIdentifier + ".userqueue", Sink::Storage::ReadWrite).removeFromDisk(); 396 Sink::Storage(Sink::storageLocation(), instanceIdentifier + ".userqueue", Sink::Storage::ReadWrite).removeFromDisk();
390 Sink::Storage(Sink::storageLocation(), instanceIdentifier + ".synchronizerqueue", Sink::Storage::ReadWrite).removeFromDisk(); 397 Sink::Storage(Sink::storageLocation(), instanceIdentifier + ".synchronizerqueue", Sink::Storage::ReadWrite).removeFromDisk();
diff --git a/common/listener.cpp b/common/listener.cpp
index 6b62552..323252b 100644
--- a/common/listener.cpp
+++ b/common/listener.cpp
@@ -39,6 +39,9 @@
39#include <QTime> 39#include <QTime>
40#include <QDataStream> 40#include <QDataStream>
41 41
42#undef DEBUG_AREA
43#define DEBUG_AREA "resource.communication"
44
42Listener::Listener(const QByteArray &resourceInstanceIdentifier, QObject *parent) 45Listener::Listener(const QByteArray &resourceInstanceIdentifier, QObject *parent)
43 : QObject(parent), 46 : QObject(parent),
44 m_server(new QLocalServer(this)), 47 m_server(new QLocalServer(this)),
diff --git a/common/modelresult.cpp b/common/modelresult.cpp
index 3a9fb95..f28c665 100644
--- a/common/modelresult.cpp
+++ b/common/modelresult.cpp
@@ -24,6 +24,9 @@
24#include "domain/folder.h" 24#include "domain/folder.h"
25#include "log.h" 25#include "log.h"
26 26
27#undef DEBUG_AREA
28#define DEBUG_AREA "client.modelresult"
29
27static uint qHash(const Sink::ApplicationDomain::ApplicationDomainType &type) 30static uint qHash(const Sink::ApplicationDomain::ApplicationDomainType &type)
28{ 31{
29 Q_ASSERT(!type.resourceInstanceIdentifier().isEmpty()); 32 Q_ASSERT(!type.resourceInstanceIdentifier().isEmpty());
diff --git a/common/pipeline.cpp b/common/pipeline.cpp
index db79dc8..627550e 100644
--- a/common/pipeline.cpp
+++ b/common/pipeline.cpp
@@ -36,6 +36,9 @@
36#include "definitions.h" 36#include "definitions.h"
37#include "bufferutils.h" 37#include "bufferutils.h"
38 38
39#undef DEBUG_AREA
40#define DEBUG_AREA "resource.pipeline"
41
39namespace Sink 42namespace Sink
40{ 43{
41 44
diff --git a/common/queryrunner.cpp b/common/queryrunner.cpp
index b49a3e0..63b5bcf 100644
--- a/common/queryrunner.cpp
+++ b/common/queryrunner.cpp
@@ -26,6 +26,9 @@
26#include "domainadaptor.h" 26#include "domainadaptor.h"
27#include "asyncutils.h" 27#include "asyncutils.h"
28 28
29#undef DEBUG_AREA
30#define DEBUG_AREA "client.queryrunner"
31
29using namespace Sink; 32using namespace Sink;
30 33
31/* 34/*
diff --git a/common/resourceaccess.cpp b/common/resourceaccess.cpp
index 2e87bc7..345622c 100644
--- a/common/resourceaccess.cpp
+++ b/common/resourceaccess.cpp
@@ -43,9 +43,10 @@
43#include <QBuffer> 43#include <QBuffer>
44 44
45#undef Trace 45#undef Trace
46#define Trace() Sink::Log::debugStream(Sink::Log::DebugLevel::Trace, __LINE__, __FILE__, Q_FUNC_INFO, "ResourceAccess") 46#define TracePrivate() Trace_area("client.communication." + resourceInstanceIdentifier)
47#define Trace() Trace_area("client.communication." + d->resourceInstanceIdentifier)
47#undef Log 48#undef Log
48#define Log(IDENTIFIER) Sink::Log::debugStream(Sink::Log::DebugLevel::Log, __LINE__, __FILE__, Q_FUNC_INFO, "ResourceAccess("+IDENTIFIER+")") 49#define Log() Log_area("client.communication." + d->resourceInstanceIdentifier)
49 50
50static void queuedInvoke(const std::function<void()> &f, QObject *context = 0) 51static void queuedInvoke(const std::function<void()> &f, QObject *context = 0)
51{ 52{
@@ -168,7 +169,7 @@ KAsync::Job<void> ResourceAccess::Private::tryToConnect()
168 return !socket; 169 return !socket;
169 }, 170 },
170 [this, counter](KAsync::Future<void> &future) { 171 [this, counter](KAsync::Future<void> &future) {
171 Trace() << "Loop"; 172 TracePrivate() << "Loop";
172 KAsync::wait(50) 173 KAsync::wait(50)
173 .then(connectToServer(resourceInstanceIdentifier)) 174 .then(connectToServer(resourceInstanceIdentifier))
174 .then<void, QSharedPointer<QLocalSocket> >([this, &future](const QSharedPointer<QLocalSocket> &s) { 175 .then<void, QSharedPointer<QLocalSocket> >([this, &future](const QSharedPointer<QLocalSocket> &s) {
@@ -176,10 +177,10 @@ KAsync::Job<void> ResourceAccess::Private::tryToConnect()
176 socket = s; 177 socket = s;
177 future.setFinished(); 178 future.setFinished();
178 }, 179 },
179 [&future, counter](int errorCode, const QString &errorString) { 180 [&future, counter, this](int errorCode, const QString &errorString) {
180 const int maxRetries = 10; 181 const int maxRetries = 10;
181 if (*counter > maxRetries) { 182 if (*counter > maxRetries) {
182 Trace() << "Giving up"; 183 TracePrivate() << "Giving up";
183 future.setError(-1, "Failed to connect to socket"); 184 future.setError(-1, "Failed to connect to socket");
184 } else { 185 } else {
185 future.setFinished(); 186 future.setFinished();
@@ -192,21 +193,21 @@ KAsync::Job<void> ResourceAccess::Private::tryToConnect()
192KAsync::Job<void> ResourceAccess::Private::initializeSocket() 193KAsync::Job<void> ResourceAccess::Private::initializeSocket()
193{ 194{
194 return KAsync::start<void>([this](KAsync::Future<void> &future) { 195 return KAsync::start<void>([this](KAsync::Future<void> &future) {
195 Trace() << "Trying to connect"; 196 TracePrivate() << "Trying to connect";
196 connectToServer(resourceInstanceIdentifier).then<void, QSharedPointer<QLocalSocket> >([this, &future](const QSharedPointer<QLocalSocket> &s) { 197 connectToServer(resourceInstanceIdentifier).then<void, QSharedPointer<QLocalSocket> >([this, &future](const QSharedPointer<QLocalSocket> &s) {
197 Trace() << "Connected to resource, without having to start it."; 198 TracePrivate() << "Connected to resource, without having to start it.";
198 Q_ASSERT(s); 199 Q_ASSERT(s);
199 socket = s; 200 socket = s;
200 future.setFinished(); 201 future.setFinished();
201 }, 202 },
202 [this, &future](int errorCode, const QString &errorString) { 203 [this, &future](int errorCode, const QString &errorString) {
203 Trace() << "Failed to connect, starting resource"; 204 TracePrivate() << "Failed to connect, starting resource";
204 //We failed to connect, so let's start the resource 205 //We failed to connect, so let's start the resource
205 QStringList args; 206 QStringList args;
206 args << resourceInstanceIdentifier; 207 args << resourceInstanceIdentifier;
207 qint64 pid = 0; 208 qint64 pid = 0;
208 if (QProcess::startDetached("sink_synchronizer", args, QDir::homePath(), &pid)) { 209 if (QProcess::startDetached("sink_synchronizer", args, QDir::homePath(), &pid)) {
209 Trace() << "Started resource " << pid; 210 TracePrivate() << "Started resource " << pid;
210 tryToConnect() 211 tryToConnect()
211 .then<void>([&future]() { 212 .then<void>([&future]() {
212 future.setFinished(); 213 future.setFinished();
@@ -232,12 +233,12 @@ ResourceAccess::ResourceAccess(const QByteArray &resourceInstanceIdentifier)
232 : ResourceAccessInterface(), 233 : ResourceAccessInterface(),
233 d(new Private(getResourceName(resourceInstanceIdentifier), resourceInstanceIdentifier, this)) 234 d(new Private(getResourceName(resourceInstanceIdentifier), resourceInstanceIdentifier, this))
234{ 235{
235 log("Starting access"); 236 Log() << "Starting access";
236} 237}
237 238
238ResourceAccess::~ResourceAccess() 239ResourceAccess::~ResourceAccess()
239{ 240{
240 log("Closing access"); 241 Log() << "Closing access";
241 if (!d->resultHandler.isEmpty()) { 242 if (!d->resultHandler.isEmpty()) {
242 Warning() << "Left jobs running while shutting down ResourceAccess: " << d->resultHandler.keys(); 243 Warning() << "Left jobs running while shutting down ResourceAccess: " << d->resultHandler.keys();
243 } 244 }
@@ -400,7 +401,7 @@ void ResourceAccess::open()
400 401
401void ResourceAccess::close() 402void ResourceAccess::close()
402{ 403{
403 log(QString("Closing %1").arg(d->socket->fullServerName())); 404 Log() << QString("Closing %1").arg(d->socket->fullServerName());
404 Trace() << "Pending commands: " << d->pendingCommands.size(); 405 Trace() << "Pending commands: " << d->pendingCommands.size();
405 Trace() << "Queued commands: " << d->commandQueue.size(); 406 Trace() << "Queued commands: " << d->commandQueue.size();
406 d->socket->close(); 407 d->socket->close();
@@ -412,7 +413,7 @@ void ResourceAccess::sendCommand(const QSharedPointer<QueuedCommand> &command)
412 //TODO: we should have a timeout for commands 413 //TODO: we should have a timeout for commands
413 d->messageId++; 414 d->messageId++;
414 const auto messageId = d->messageId; 415 const auto messageId = d->messageId;
415 log(QString("Sending command \"%1\" with messageId %2").arg(QString(Sink::Commands::name(command->commandId))).arg(d->messageId)); 416 Log() << QString("Sending command \"%1\" with messageId %2").arg(QString(Sink::Commands::name(command->commandId))).arg(d->messageId);
416 Q_ASSERT(command->callback); 417 Q_ASSERT(command->callback);
417 registerCallback(d->messageId, [this, messageId, command](int errorCode, QString errorMessage) { 418 registerCallback(d->messageId, [this, messageId, command](int errorCode, QString errorMessage) {
418 Trace() << "Command complete " << messageId; 419 Trace() << "Command complete " << messageId;
@@ -452,7 +453,7 @@ void ResourceAccess::connected()
452 return; 453 return;
453 } 454 }
454 455
455 log(QString("Connected: %1").arg(d->socket->fullServerName())); 456 Log() << QString("Connected: %1").arg(d->socket->fullServerName());
456 457
457 { 458 {
458 flatbuffers::FlatBufferBuilder fbb; 459 flatbuffers::FlatBufferBuilder fbb;
@@ -472,7 +473,7 @@ void ResourceAccess::connected()
472 473
473void ResourceAccess::disconnected() 474void ResourceAccess::disconnected()
474{ 475{
475 log(QString("Disconnected from %1").arg(d->socket->fullServerName())); 476 Log() << QString("Disconnected from %1").arg(d->socket->fullServerName());
476 d->socket->close(); 477 d->socket->close();
477 emit ready(false); 478 emit ready(false);
478} 479}
@@ -480,7 +481,7 @@ void ResourceAccess::disconnected()
480void ResourceAccess::connectionError(QLocalSocket::LocalSocketError error) 481void ResourceAccess::connectionError(QLocalSocket::LocalSocketError error)
481{ 482{
482 if (error == QLocalSocket::PeerClosedError) { 483 if (error == QLocalSocket::PeerClosedError) {
483 Log(d->resourceInstanceIdentifier) << "The resource closed the connection."; 484 Log() << "The resource closed the connection.";
484 d->abortPendingOperations(); 485 d->abortPendingOperations();
485 } else { 486 } else {
486 Warning() << QString("Connection error: %1 : %2").arg(error).arg(d->socket->errorString()); 487 Warning() << QString("Connection error: %1 : %2").arg(error).arg(d->socket->errorString());
@@ -524,14 +525,14 @@ bool ResourceAccess::processMessageBuffer()
524 switch (commandId) { 525 switch (commandId) {
525 case Commands::RevisionUpdateCommand: { 526 case Commands::RevisionUpdateCommand: {
526 auto buffer = Commands::GetRevisionUpdate(d->partialMessageBuffer.constData() + headerSize); 527 auto buffer = Commands::GetRevisionUpdate(d->partialMessageBuffer.constData() + headerSize);
527 log(QString("Revision updated to: %1").arg(buffer->revision())); 528 Log() << QString("Revision updated to: %1").arg(buffer->revision());
528 emit revisionChanged(buffer->revision()); 529 emit revisionChanged(buffer->revision());
529 530
530 break; 531 break;
531 } 532 }
532 case Commands::CommandCompletionCommand: { 533 case Commands::CommandCompletionCommand: {
533 auto buffer = Commands::GetCommandCompletion(d->partialMessageBuffer.constData() + headerSize); 534 auto buffer = Commands::GetCommandCompletion(d->partialMessageBuffer.constData() + headerSize);
534 log(QString("Command with messageId %1 completed %2").arg(buffer->id()).arg(buffer->success() ? "sucessfully" : "unsuccessfully")); 535 Log() << QString("Command with messageId %1 completed %2").arg(buffer->id()).arg(buffer->success() ? "sucessfully" : "unsuccessfully");
535 536
536 d->completeCommands << buffer->id(); 537 d->completeCommands << buffer->id();
537 //The callbacks can result in this object getting destroyed directly, so we need to ensure we finish our work first 538 //The callbacks can result in this object getting destroyed directly, so we need to ensure we finish our work first
@@ -544,11 +545,11 @@ bool ResourceAccess::processMessageBuffer()
544 auto buffer = Commands::GetNotification(d->partialMessageBuffer.constData() + headerSize); 545 auto buffer = Commands::GetNotification(d->partialMessageBuffer.constData() + headerSize);
545 switch (buffer->type()) { 546 switch (buffer->type()) {
546 case Sink::Commands::NotificationType::NotificationType_Shutdown: 547 case Sink::Commands::NotificationType::NotificationType_Shutdown:
547 Log(d->resourceInstanceIdentifier) << "Received shutdown notification."; 548 Log() << "Received shutdown notification.";
548 close(); 549 close();
549 break; 550 break;
550 case Sink::Commands::NotificationType::NotificationType_Inspection: { 551 case Sink::Commands::NotificationType::NotificationType_Inspection: {
551 Log(d->resourceInstanceIdentifier) << "Received inspection notification."; 552 Log() << "Received inspection notification.";
552 Notification n; 553 Notification n;
553 if (buffer->identifier()) { 554 if (buffer->identifier()) {
554 //Don't use fromRawData, the buffer is gone once we invoke emit notification 555 //Don't use fromRawData, the buffer is gone once we invoke emit notification
@@ -583,11 +584,6 @@ bool ResourceAccess::processMessageBuffer()
583 return d->partialMessageBuffer.size() >= headerSize; 584 return d->partialMessageBuffer.size() >= headerSize;
584} 585}
585 586
586void ResourceAccess::log(const QString &message)
587{
588 Log(d->resourceInstanceIdentifier) << this << message;
589}
590
591} 587}
592 588
593#pragma clang diagnostic push 589#pragma clang diagnostic push
diff --git a/common/resourceaccess.h b/common/resourceaccess.h
index d10363e..3acc886 100644
--- a/common/resourceaccess.h
+++ b/common/resourceaccess.h
@@ -101,7 +101,6 @@ private Q_SLOTS:
101 101
102private: 102private:
103 void connected(); 103 void connected();
104 void log(const QString &message);
105 void registerCallback(uint messageId, const std::function<void(int error, const QString &)> &callback); 104 void registerCallback(uint messageId, const std::function<void(int error, const QString &)> &callback);
106 105
107 void sendCommand(const QSharedPointer<QueuedCommand> &command); 106 void sendCommand(const QSharedPointer<QueuedCommand> &command);
diff --git a/common/typeindex.cpp b/common/typeindex.cpp
index e58832c..b1bcf6a 100644
--- a/common/typeindex.cpp
+++ b/common/typeindex.cpp
@@ -22,6 +22,9 @@
22#include "index.h" 22#include "index.h"
23#include <QDateTime> 23#include <QDateTime>
24 24
25#undef DEBUG_AREA
26#define DEBUG_AREA "common.typeindex"
27
25TypeIndex::TypeIndex(const QByteArray &type) 28TypeIndex::TypeIndex(const QByteArray &type)
26 : mType(type) 29 : mType(type)
27{ 30{