Revision 586785

Go back to digest for 24th September 2006

Features in KDE-PIM

Volker Krause committed changes in /trunk/KDE/kdepim/akonadi:

Transaction support and a more or less complete rewrite of the notification handling:

- Add methods to begin, abort and commit a transaction to DataStore.
- Add a QMutexLocker-like class for convenient transaction handling which aborts the current transaction when going out of scope.
- Use transactions for most commands that change the database, they are atomic now, ie. either succeed completely or don't change anything at all.
- Collect notifications during a transaction and emit them only if the transaction has been successfully committed.
- Add notifications for item and collection changes.
- Remove server-side notification filtering, it's not really needed since every item will be monitored at least twice anyway (by its resource and a search provider).
- Include resource and mimetype in the notification signals, allowing filtering by resource and by mimetype on the client side. This will be needed by resources and search providers.

File Changes

Added 4 files
  • /trunk/KDE/kdepim/akonadi/server/src/storage
  •   /notificationcollector.cpp
  •   /notificationcollector.h
  •   /transaction.cpp
  •   /transaction.h
Modified 15 files
  • /trunk/KDE/kdepim/akonadi
  •   /libakonadi/monitor.cpp
  •   /libakonadi/monitor.h
  •   /server/CMakeLists.txt
  •   /libakonadi/tests/monitortest.cpp
  •   /server/interfaces/org.kde.Akonadi.NotificationManager.xml
  •   /server/src/notificationmanager.cpp
  •   /server/src/notificationmanager.h
  •   /server/src/handler/append.cpp
  •   /server/src/handler/create.cpp
  •   /server/src/handler/delete.cpp
  •   /server/src/handler/modify.cpp
  •   /server/src/handler/rename.cpp
  •   /server/src/handler/store.cpp
  •   /server/src/storage/datastore.cpp
  •   /server/src/storage/datastore.h
19 files changed in total