[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-pim
Subject: [Kde-pim] RFC:KitchenSync Are you ready for syncing?
From: Holger Freyther <freyther () gmx ! net>
Date: 2002-01-23 11:27:09
[Download RAW message or body]
Hi all,
a while ago I wanted to create a syncing tool. After a lot of discussing with
Cornelius we ended up with some design goals for the new syncing tools.
Adrian said we should name it KtchenSync.
Ok here it comes. The pic attached is just a rough and sloppy draft. The
design is made up and I started to create the framework it's currently in
kdenonbeta/kitchensync.
We will have KSharedFile. It's a KDED module with a lib that uses it for
Sharing and locking files even over network. If the lib cannot connect to the
KDED module it uses it's own method to lock files. We use hardlinks instead
of any syncing library cause it's the only way I'm aware of to lock over the
network.
KSyncEntry is a base class for all SyncingOperations.
It have a QString type() and a uuic method QString uuid() not more at the
moment.
Then there will be libkunit which expose functions, slot, signals for
propagating syncs, writing, getting KSyncEntries. There's also a way to
configure a unit. On startup KitchenSync will query(const QString &category).
Where category is the wished category of the device (PDA, file,
Cell-Phone...). Then KitchenSync will ask the user which ones to use and then
kindly ask libkunit to load the plugin which then returns a unique id which
lasts only for the runtime. KicthenSync needs to remember this id cause it
will be used for all operations.
KitchenSyncApp will then one time get a wantsToSync( int id ). The signals
comes from the libkunit plugin and will get emitted by libkunit.
KitchenSyncApp will then get the QValueList<KSyncEntry> and checks the type
if a manipulator plugin is installed libksync will be called to load a sync
plugin. Then after a while or by user it'll pass the KSyncEntries to libksync
and sets the modus to interactive or something like this. It's a non-blocking
function besides the blocking one which emits
processed(QValueList<KSyncEntry> ) and then emmit done().
After done KitchenSyncApp will unload libksyncs plugins and write the
KSyncEntries back to the device.
What gis proposed firsrt and I'm propsoing now is to make libkunit plugins a
IO-Slave with additional features inside the libkunit.
regards Holger
["kitchensync.png" (image/png)]
_______________________________________________
kde-pim mailing list
kde-pim@mail.kde.org
http://mail.kde.org/mailman/listinfo/kde-pim
kde-pim home page at http://pim.kde.org/
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic