summaryrefslogtreecommitdiffstats
path: root/common
Commit message (Collapse)AuthorAge
* Colorized debug output a bitChristian Mollekopf2015-04-15
|
* Use a queryrunner to execute queries.Christian Mollekopf2015-04-15
| | | | | | | | | | | | | | The queryrunner is responsible for running queries and keeping them up to date. This is required for self-updating queries. To get this to work properly the ResultProvider/emitter had to be fixed. The emitter now only lives as long as the client holds a reference to it, allowing the provider to detect when it is no longer necessary to keep the query alive (because noone is listening). In the process various lifetime issues have been fixed, that we're caused by lambdas capturing smartpointers, that then extended the lifetime of the associated objects unpredictably.
* Always queue commands in resourceaccess.Christian Mollekopf2015-04-12
| | | | | We want to keep the command until we know it arrived in the resource, so we can resend it otherwise.
* Further simplify writing of buffer adaptors.Christian Mollekopf2015-04-12
| | | | Still not quite there but we're avoiding the bulk of duplication by now.
* Compile with flatbuffers 1.1Christian Mollekopf2015-04-12
|
* More generic domainadpator code.Christian Mollekopf2015-04-12
| | | | | This should cover read and write for entites that have a 1:1 mapping to the resource buffers.
* checkpointChristian Mollekopf2015-04-10
|
* commentsChristian Mollekopf2015-04-09
|
* Moved generic parts of the domain adaptor to commonChristian Mollekopf2015-04-09
|
* Renamed Akonadi::Domain to Akonadi::ApplicationDomainChristian Mollekopf2015-04-09
| | | | Because it's really the application domain and not the akonadi domain.
* Refactored buffer extraction from vector.Christian Mollekopf2015-04-09
|
* Started a facade base implementation.Christian Mollekopf2015-04-09
|
* Use QByteArray instead of QStringChristian Mollekopf2015-04-09
| | | | | 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.
* cleanupChristian Mollekopf2015-04-08
|
* Less noiseChristian Mollekopf2015-04-07
|
* Use memcpy to copy tables into vectors.Christian Mollekopf2015-04-07
| | | | | | Ideally we wouldn't be copying at all, and somehow cast the table to a vector. Unfortunately I haven't figured out how to do that, and this solution at least gets us from 0.065 ms to 0.028 ms in testCreateCommand.
* ResourceAccess: copy the buffer before capturing it in the lambda.Christian Mollekopf2015-04-02
| | | | | | | | | | | 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.
* async simplificationsChristian Mollekopf2015-04-02
|
* Unbreak the clientapi.Christian Mollekopf2015-04-02
| | | | We indeed have to keep the facade alive, otherwise this starts crashing.
* Cleanup and debug messages.Christian Mollekopf2015-04-02
|
* Storage: API cleanup/use QByteArray instead of std::stringChristian Mollekopf2015-03-31
|
* Don't try to restart the resource on every disconnect.Christian Mollekopf2015-03-31
| | | | | 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.
* Forgot to compile the notification schemaChristian Mollekopf2015-03-31
|
* Minor cleanup, less warnings.Christian Mollekopf2015-03-31
|
* Shutdown notification to achieve a clean shutdown.Christian Mollekopf2015-03-31
| | | | | | | 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).
* Resource crashhandler and logging facilities.Christian Mollekopf2015-03-31
|
* Async: allow appending Jobs to already running or finished JobsDan Vrátil2015-02-21
| | | | | | | | | 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.
* CMake: fix Qt5 lookup, use KDE_INSTALL_TARGETS_DEFAULT_ARGSDan Vrátil2015-02-21
|
* Async: allow appending existing Job objects to the Job chainDan Vrátil2015-02-20
| | | | | | | | | | | | Now it's possible to do something like Job<int, int> job = createSomeJob(); auto main = Async::start<int>(....).then(job); Previously the 'job' would have to be wrapped in a ThenTask-like lambda (which is what we still do internally), but with this new syntax it's possible to append another job chain to existing chain easilly. This syntax is available for all task types.
* catch unqlite impl up to current Storage APIAaron Seigo2015-02-09
|
* void const -> const voidAaron Seigo2015-02-09
| | | | | equivalent syntax, but follows the standard idiom we use throughout the code .. const char *, not char const * (e.g.)
* Added JOBAPI todo's.Christian Mollekopf2015-02-02
| | | | Work for dvratil.
* clenupChristian Mollekopf2015-01-30
|
* Shutdown command for synchronizers, used by the dummyresourcetest.Christian Mollekopf2015-01-30
| | | | | Otherwise the synchronizer keeps a Storage object alive, while the tests deletes the db. This causes subsequent writes to fail in the next test.
* Open the database readonly in readonly mode.Christian Mollekopf2015-01-30
|
* introduce a set of isInternalKey functions to hide this impl detailAaron Seigo2015-01-27
|
* can not delete this as it is an opaque data structureAaron Seigo2015-01-27
| | | | instead, use the lmdb api
* fix buildAaron Seigo2015-01-27
|
* Don't enlessly block in the eventloop.Christian Mollekopf2015-01-27
| | | | | The job currently finishes synchronously. If we just use the eventloop in waitForFinished that's automatically handled for us.
* debug outputChristian Mollekopf2015-01-25
|
* Propagate errors for commands.Christian Mollekopf2015-01-25
|
* Call callbacks after the resource crashed.Christian Mollekopf2015-01-25
|
* debug output, fixed dummyresourcetestChristian Mollekopf2015-01-25
|
* A way to ensure all messages have been processed.Christian Mollekopf2015-01-25
| | | | | 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.
* Uid index + query using that index.Christian Mollekopf2015-01-24
| | | | ...and a couple of other fixes.
* An index implementation.Christian Mollekopf2015-01-21
|
* Create buffer with values from domain objectChristian Mollekopf2015-01-21
|
* Storage: support for duplicates.Christian Mollekopf2015-01-20
|
* Fixed sync, detect errors during sync, wait until sync items are processed ↵Christian Mollekopf2015-01-19
| | | | until signalling completion.
* debug outputChristian Mollekopf2015-01-19
|