Revision 70a3bef...

Go back to digest for 27th April 2014

Features in KDE-PIM

Dan Vratil committed changes in [akonadi/item-merge] /:

Implement MERGE command handler

MERGE command allows merging new item into an existing one based on
GID and/or RID match. If no such item exists a new one is created.
If it exists, the new item is merged into the existing one, overwriting
conflicting flags, and parts.

Merging is restricted to parent collection and mime type, to minimize
potential RID/GID conflicts, since they are not guaranteed to be unique.

Syntax of MERGE command is equivalent to syntax of X-AKAPPEND command,
except for the command ("MERGE") is followed by parenthesized list of
attributes to merge by (currently supported values are "REMOTEID" and
"GID").

Implementation-wise, Merge handler is a subclass of AkAppend handler,
which allows reusing all the existing code for insertion of a new item
(in case no candidate for merging is found) and only implements merging.

File Changes

Added 2 files
  • /src/handler
  •   server/merge.cpp
  •   server/merge.h
Modified 8 files
  •   libs/protocol_p.h
  •   server/CMakeLists.txt
  •   server/src/connection.cpp
  •   server/src/handler.cpp
  •   server/src/handler/akappend.cpp
  •   server/src/handler/akappend.h
  •   server/src/storage/parttypehelper.cpp
  •   server/src/storage/parttypehelper.h
10 files changed in total