| Commit message (Collapse) | Author | Age |
... | |
| |
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
| |
Remote id's need to be resolved while syncing any references.
This is done by the synchronizer by consulting the rid to entity id
mapping. If the referenced entity doesn't exist yet we create a local
id anyways, that we then need to pick up once the actual entity arrives.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Unittests can set the level themselves (so i.e. benchmarks don't print
a shitload of messages), while in normal operation we can set it from
the environment. There's no override currently, but first things first.
|
|
|
|
| |
So we have commands in one place, and not in a header file.
|
| |
|
| |
|
|
|
|
|
|
| |
"Left jobs running while shutting down ResourceAccess",
happens because the shutdown command destroys the instance
before the method can clean up.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Another nice showcase implementation how things get easier, testable and
composable using async.
|
| |
|
| |
|
|
|
|
|
| |
We want to keep the command until we know it arrived in the resource,
so we can resend it otherwise.
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
It's lifetime is limited to the end of the function, so we have to copy it before.
I switched to QByteArray because it simplifies the code and shouldn't really
cost anything, additionally the implicit sharing makes copies cheap.
This patch incurs the cost of always copying the buffer instead of writing
straight to the socket, but we probably anyways want to keep a copy around,
and if it would indeed be a performance issues (I doubt it), we could still optimize
that copy away.
|
|
|
|
|
| |
There's a chance that the resource actually wanted to shut-down. Instead
ResourceAccess should only reopen the connection if it still has work to do.
|
|
|
|
|
|
|
| |
Otherwise the client always restarts the resource because of the lost connection.
We currently require this in tests to be able to delete the db, but eventually
we likely want a "disable akonadi" function that shuts resources down,
and keeps clients from restarting them (e.g. via configuration).
|
| |
|
|
|
|
|
|
|
|
|
| |
When user gets a Job (from a method call for instance), which is already running
or might have even finished already, they can still append a new Job to the chain
and re-execute it. The Job will internally chain up to the last finished Job, use
it's result and continue from the next Job in the chain. If a Job in the chain is
still running, it will wait for it to finish and pass the result to the next Job
in the chain.
|
|
|
|
| |
Work for dvratil.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
As queries become reactive this should become less important. We can then just wait until
all results become available. For tests it is in either case useful though.
|
|
|
|
| |
...and a couple of other fixes.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
It's a huge hack but starts to show results.
Most urgently we need:
* reliable command results
* the 3 buffers instead of the 1
* A way to implement storage as preprocessor (or a place to impelement it after the preprocessors).
|
|
|
|
|
| |
will allow stateful handling of resource side client-specific caches
in future (e.g. for storing the results of source-side search queries)
|
| |
|
| |
|
|
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
|