trepidity/tomboy-library — pull request #6 by Dynalon (2012-11-10 16:16:31+00:00)
Title: Added basic syncing logic

I've added some syncing logic, by creating a SyncManager and the ISyncServer and ISyncClient interfaces. I've gone through the tomboy sources and modeled after those, however without any Gui stuff but lots of documentation comments and long, but expressive method and variable names.

I created a TestSyncServer and a TestSyncClient that currently only server as "documentation as code" about how synchronization takes place. With the test implementations I've created a bunch of unit tests, that can serve as simulation of the syncing process.

However, I think I could easily put together a FileSystem sync server (the TestSyncServer is basically a filesystem sync server) that would allow notes to be synced on the filesystem.

There are currently no hooks for any GUI stuff or note resolving, those are on the TODO list.
also on TODO is changing the current SyncManifest handling, which should be a private part of Disk/IStorage.

I've made two important API changes to DiskStorage, which is replacing some static method with instance counterparts, and getting a note Guid field into the Note class. See the commit messages for motivation, but I'm open for discussion on that changes.