diff options
Diffstat (limited to 'synchronizer')
-rw-r--r-- | synchronizer/listener.cpp | 38 | ||||
-rw-r--r-- | synchronizer/listener.h | 4 |
2 files changed, 16 insertions, 26 deletions
diff --git a/synchronizer/listener.cpp b/synchronizer/listener.cpp index 2e1e918..7481537 100644 --- a/synchronizer/listener.cpp +++ b/synchronizer/listener.cpp | |||
@@ -35,7 +35,7 @@ | |||
35 | #include <QLocalSocket> | 35 | #include <QLocalSocket> |
36 | #include <QTimer> | 36 | #include <QTimer> |
37 | 37 | ||
38 | Listener::Listener(const QString &resourceName, QObject *parent) | 38 | Listener::Listener(const QByteArray &resourceName, QObject *parent) |
39 | : QObject(parent), | 39 | : QObject(parent), |
40 | m_server(new QLocalServer(this)), | 40 | m_server(new QLocalServer(this)), |
41 | m_resourceName(resourceName), | 41 | m_resourceName(resourceName), |
@@ -48,11 +48,11 @@ Listener::Listener(const QString &resourceName, QObject *parent) | |||
48 | this, &Listener::refreshRevision); | 48 | this, &Listener::refreshRevision); |
49 | connect(m_server, &QLocalServer::newConnection, | 49 | connect(m_server, &QLocalServer::newConnection, |
50 | this, &Listener::acceptConnection); | 50 | this, &Listener::acceptConnection); |
51 | Log() << QString("Trying to open %1").arg(resourceName); | 51 | Log() << "Trying to open " << m_resourceName; |
52 | if (!m_server->listen(resourceName)) { | 52 | if (!m_server->listen(QString::fromLatin1(resourceName))) { |
53 | // FIXME: multiple starts need to be handled here | 53 | // FIXME: multiple starts need to be handled here |
54 | m_server->removeServer(resourceName); | 54 | m_server->removeServer(resourceName); |
55 | if (!m_server->listen(resourceName)) { | 55 | if (!m_server->listen(QString::fromLatin1(resourceName))) { |
56 | Warning() << "Utter failure to start server"; | 56 | Warning() << "Utter failure to start server"; |
57 | exit(-1); | 57 | exit(-1); |
58 | } | 58 | } |
@@ -212,26 +212,16 @@ void Listener::processCommand(int commandId, uint messageId, Client &client, uin | |||
212 | Warning() << "No resource loaded"; | 212 | Warning() << "No resource loaded"; |
213 | break; | 213 | break; |
214 | } | 214 | } |
215 | //TODO a more elegant composition of jobs should be possible | 215 | auto job = Async::null<void>(); |
216 | if (buffer->sourceSync()) { | 216 | if (buffer->sourceSync()) { |
217 | bool localSync = buffer->localSync(); | 217 | job = m_resource->synchronizeWithSource(m_pipeline); |
218 | m_resource->synchronizeWithSource(m_pipeline).then<void>([callback, localSync, this](Async::Future<void> &f){ | ||
219 | if (localSync) { | ||
220 | m_resource->processAllMessages().then<void>([callback](Async::Future<void> &f){ | ||
221 | callback(); | ||
222 | f.setFinished(); | ||
223 | }).exec(); | ||
224 | } else { | ||
225 | callback(); | ||
226 | f.setFinished(); | ||
227 | } | ||
228 | }).exec(); | ||
229 | } else if (buffer->localSync()) { | ||
230 | m_resource->processAllMessages().then<void>([callback](Async::Future<void> &f){ | ||
231 | callback(); | ||
232 | f.setFinished(); | ||
233 | }).exec(); | ||
234 | } | 218 | } |
219 | if (buffer->localSync()) { | ||
220 | job = job.then<void>(m_resource->processAllMessages()); | ||
221 | } | ||
222 | job.then<void>([callback]() { | ||
223 | callback(); | ||
224 | }).exec(); | ||
235 | return; | 225 | return; |
236 | } else { | 226 | } else { |
237 | Warning() << "received invalid command"; | 227 | Warning() << "received invalid command"; |
@@ -375,10 +365,10 @@ void Listener::loadResource() | |||
375 | Log() << QString("Resource factory: %1").arg((qlonglong)resourceFactory); | 365 | Log() << QString("Resource factory: %1").arg((qlonglong)resourceFactory); |
376 | Log() << QString("\tResource: %1").arg((qlonglong)m_resource); | 366 | Log() << QString("\tResource: %1").arg((qlonglong)m_resource); |
377 | //TODO: this doesn't really list all the facades .. fix | 367 | //TODO: this doesn't really list all the facades .. fix |
378 | Log() << QString("\tFacades: %1").arg(Akonadi2::FacadeFactory::instance().getFacade<Akonadi2::Domain::Event>(m_resourceName)->type()); | 368 | Log() << "\tFacades: " << Akonadi2::FacadeFactory::instance().getFacade<Akonadi2::ApplicationDomain::Event>(m_resourceName)->type(); |
379 | m_resource->configurePipeline(m_pipeline); | 369 | m_resource->configurePipeline(m_pipeline); |
380 | } else { | 370 | } else { |
381 | Error() << QString("Failed to load resource %1").arg(m_resourceName); | 371 | Error() << "Failed to load resource " << m_resourceName; |
382 | } | 372 | } |
383 | //TODO: on failure ... what? | 373 | //TODO: on failure ... what? |
384 | //Enter broken state? | 374 | //Enter broken state? |
diff --git a/synchronizer/listener.h b/synchronizer/listener.h index 8dad3a4..d2ef0fc 100644 --- a/synchronizer/listener.h +++ b/synchronizer/listener.h | |||
@@ -58,7 +58,7 @@ class Listener : public QObject | |||
58 | Q_OBJECT | 58 | Q_OBJECT |
59 | 59 | ||
60 | public: | 60 | public: |
61 | Listener(const QString &resourceName, QObject *parent = 0); | 61 | Listener(const QByteArray &resourceName, QObject *parent = 0); |
62 | ~Listener(); | 62 | ~Listener(); |
63 | 63 | ||
64 | Q_SIGNALS: | 64 | Q_SIGNALS: |
@@ -87,7 +87,7 @@ private: | |||
87 | QLocalServer *m_server; | 87 | QLocalServer *m_server; |
88 | QVector<Client> m_connections; | 88 | QVector<Client> m_connections; |
89 | flatbuffers::FlatBufferBuilder m_fbb; | 89 | flatbuffers::FlatBufferBuilder m_fbb; |
90 | const QString m_resourceName; | 90 | const QByteArray m_resourceName; |
91 | Akonadi2::Resource *m_resource; | 91 | Akonadi2::Resource *m_resource; |
92 | Akonadi2::Pipeline *m_pipeline; | 92 | Akonadi2::Pipeline *m_pipeline; |
93 | QTimer *m_clientBufferProcessesTimer; | 93 | QTimer *m_clientBufferProcessesTimer; |