[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