| Commit message (Collapse) | Author | Age |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
We want to maintain the order since we use the list in the model result
|
|
|
|
|
|
|
|
| |
* Smarter caching. ResourceAccess instances close after a timeout, if not reused.
* Introduced a start command to avoid race condition when sending
commands to a resource that is currently shutting down.
* We resend pending commands after we lost access to the resource
* unexpectedly.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
The QueryRunner object lives for the duration of the query (so just
for the initial query for non-live queries, and for the lifetime of the
result model for live queries).
It's supposed to handle all the threading internally and decouple the
lifetime of the facade.
|
|
|
|
|
|
|
|
| |
I finally figured out how to do that with cpp files.
It requires instantiating the code with all expected classes,
but that's not a big problem since we know all types.
This will hopefully greatly reduce the compiletimes...
|
|
|
|
| |
sync has been removed from the query code and is now a separate step
|
| |
|
| |
|
| |
|
|
|
|
| |
We no longer depend on clientapi.h from everywhere.
|
|
|
|
|
|
|
|
|
|
|
| |
* Ensure we always create the thread-local event loop before any objects
in the thread are created, and guarantee the done handler is
immediately registered before the query can execute.
* Call the callback on emitter destruction in the worker thread, where
the eventloop lives, instead of the main thread.
With this I can no longer reproduce any deadlocks or memory corruptions
that I used to get occasionally before.
|
|
|
|
|
|
|
|
| |
resource
The factory is potentially used from several queries simultaneously,
so it's now mutex protected.
Additionally we try to load the plugins directly in the factory.
|
| |
|
|
|
|
| |
resource-types
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Instead of dealing with dedicated configuration facades,
we'll integrate that directly into the domain interface. That way it should
be rather natural for applications to i.e. query for available resources,
and then configure them in the same way some other domain object would be
modified.
|
|
|
|
| |
Because it's really the application domain and not the akonadi domain.
|
|
|
|
|
| |
All identifiers should be latin1 and we make this explicit by using
QByteArray. QString is reserved for strings that can be UTF-8 or alike.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Otherwise the synchronizer keeps a Storage object alive, while the tests
deletes the db. This causes subsequent writes to fail in the next test.
|
|
|
|
| |
allowed including the header more than once ;)
|
| |
|
|
plugins
we can divide up libakonadi2common later once we have a full collection of classes
this makes writing code a bit simpler now as we don't have to figuer out which
libraries to link against or how class dependencies should look. when we have
more infrastructure in place this will mostly become self-evident
|