summaryrefslogtreecommitdiffstats
path: root/common/listener.cpp
Commit message (Collapse)AuthorAge
* Avoid storing the password in the configurationChristian Mollekopf2017-09-18
| | | | | | | The password (or any other secret), is now cached in the client process (in-memory only), and delivered to the resource via command. The resource avoids doing any operations against the source until the secret is available.
* Ensure revision updates are instantaneous.Christian Mollekopf2017-06-23
| | | | | | | We could do some event compression with a timer if necessary, but for the time being we'll just flush after every notification. This is necessary so i.e. a mail in the outbox appears immediately as it is created in the resource.
* Added progress notificationChristian Mollekopf2017-05-04
|
* Send an error status messagebefore crashing.Christian Mollekopf2017-04-07
|
* Be less verboseChristian Mollekopf2017-04-07
| | | | We already see the resource exiting.
* Implemented notification support in the model.Christian Mollekopf2017-03-24
| | | | | | | | This will allow us to fold things like progress and sync status directly into the model. Usecases are mail download progress and folder sync progress. Ideally we would also solve the resource/account state through this.
* Ensure resources kill themselves if noone connects.Christian Mollekopf2017-01-17
|
* Used the CommandProcessor as central place for all command processing.Christian Mollekopf2016-11-28
|
* Removed unused command.Christian Mollekopf2016-11-25
|
* Added the flush command.Christian Mollekopf2016-11-25
| | | | | | | Instead of trying to actually flush queues, we send a special command through the same queues as the other commands and can thus guarantee that the respective commands have been processed without blocking anything.
* Implement debug stream operators for query.Christian Mollekopf2016-11-07
|
* Refactor how the storage is used.Christian Mollekopf2016-10-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the initial refactoring to improve how we deal with the storage. It does a couple of things: * Rename Sink::Storage to Sink::Storage::DataStore to free up the Sink::Storage namespace * Introduce a Sink::ResourceContext to have a single object that can be passed around containing everything that is necessary to operate on a resource. This is a lot better than the multiple separate parameters that we used to pass around all over the place, while still allowing for dependency injection for tests. * Tie storage access together using the new EntityStore that directly works with ApplicationDomainTypes. This gives us a central place where main storage, indexes and buffer adaptors are tied together, which will also give us a place to implement external indexes, such as a fulltextindex using xapian. * Use ApplicationDomainTypes as the default way to pass around entities. Instead of using various ways to pass around entities (buffers, buffer adaptors, ApplicationDomainTypes), only use a single way. The old approach was confusing, and was only done as: * optimization; really shouldn't be necessary and otherwise I'm sure we can find better ways to optimize ApplicationDomainType itself. * a way to account for entities that have multiple buffers, a concept that I no longer deem relevant. While this commit does the bulk of the work to get there, the following commits will refactor more stuff to get things back to normal.
* Avoid using the resource object to remove the data from disk.Christian Mollekopf2016-10-07
| | | | | ...because creating it will potentially start transactions on the database we're about to remove.
* Backwards comaptible names and some cleanupChristian Mollekopf2016-10-04
|
* Ported to the kasync revampChristian Mollekopf2016-09-15
|
* CleanupChristian Mollekopf2016-09-15
|
* Ensure we send the response before closing the socket.Christian Mollekopf2016-07-12
|
* Immediately stop processing commands on shutdown.Christian Mollekopf2016-07-12
| | | | | | | | We send the command completion, then the shutdown notificaiton, and then we immediately shutdown. Otherwise we risk callbacks by further commands into the already destroyed resource.
* A new debug system.Christian Mollekopf2016-07-07
| | | | | | | | | | | | | | | Instead of a single #define as debug area the new system allows for an identifier for each debug message with the structure component.area. The component is a dot separated identifier of the runtime component, such as the process or the plugin. The area is the code component, and can be as such defined at compiletime. The idea of this system is that it becomes possible to i.e. look at the output of all messages in the query subsystem of a specific resource (something that happens in the client process, but in the resource-specific subcomponent). The new macros are supposed to be less likely to clash with other names, hence the new names.
* Less memory leaking with unique_ptrChristian Mollekopf2016-07-07
|
* Fixed a bunch of memory leaks.Christian Mollekopf2016-07-06
| | | | Found with valgrind
* Prepare for making the resource status availableChristian Mollekopf2016-07-05
|
* Remove the store from the resource side.Christian Mollekopf2016-06-26
| | | | ...and shutdown the resource after we removed all data.
* Made the log-level output a lot less noisyChristian Mollekopf2016-06-20
|
* Propagate the synchronization error.Christian Mollekopf2016-05-22
|
* A better crashhandler that notifies the client of the crash.Christian Mollekopf2016-05-22
|
* Protect against resources we can't instantiate.Christian Mollekopf2016-04-28
|
* Don't encode the resource type into the identifierChristian Mollekopf2016-04-17
|
* Fromatted the whole codebase with clang-format.Christian Mollekopf2016-03-03
| | | | clang-format -i */**{.cpp,.h}
* Gather more timingsChristian Mollekopf2016-02-08
|
* Executed database removal in the resource instead of the client.Christian Mollekopf2016-02-08
| | | | | The resource doesn't really notify all clients properly about the removal, but the tests all still pass.
* Introduced debug areas and prettified output.Christian Mollekopf2016-02-04
|
* Build without warningsChristian Mollekopf2016-01-31
|
* Renamed Akonadi2 to SinkChristian Mollekopf2016-01-20
| | | | (except for documentation).
* ResourceNotification -> NotificationChristian Mollekopf2016-01-19
|
* Moved all commands in to the Commands namespaceChristian Mollekopf2016-01-19
|
* Working resource inspectionChristian Mollekopf2016-01-18
|
* Draft of inspection APIChristian Mollekopf2016-01-18
|
* Report successChristian Mollekopf2016-01-18
|
* Time syncChristian Mollekopf2015-12-26
|
* Use a null-resource object to avoid having to check the pointerChristian Mollekopf2015-10-20
| | | | everytime
* CleanupChristian Mollekopf2015-10-20
|
* Draft of ChangeReplayChristian Mollekopf2015-10-20
|
* Let clients tell the resource when they no longer require a revision.Christian Mollekopf2015-10-19
|
* Untangled the include dependencies a bit.Christian Mollekopf2015-08-13
| | | | We no longer depend on clientapi.h from everywhere.
* Debugmessage for received commands in resourceChristian Mollekopf2015-07-31
|
* Tested command loop with Ping command.Christian Mollekopf2015-07-30
| | | | | | Ping is a command that by definition doesn't affect the resource, and thus can be used at all times to check if the resource is still alive.
* Moved lockfile into synchronizerChristian Mollekopf2015-07-30
| | | | For better testability of listener.
* Made the pipeline an implementation detail of the resource.Christian Mollekopf2015-07-30
| | | | | This removes one dependency from the Listener and will allow us to test the Listener better.
* Forward revision updates through resourceChristian Mollekopf2015-07-28
|