On Wed, Apr 30, 2008 at 06:53:28AM -0700, Paul Eden wrote:
> I would like to offer assistance by adding todo support to the opensync
> plugin. I would like to sync my bb todos with other opensync plugins so I
> am personally motivated.
Excellent!
> I'm already looking at the code, and have an idea where to begin, but if
> anyone give me a high level overview of the things that need to be
> added/changed (so I don't spend too long going in the wrong direction) I
> would appreciate it.
There are 3 parts to implementing this:
1) The Tasks database
The Tasks database is supported for parsing, but not for building.
Parsing is the process of taking a raw Blackberry record and putting
each field into an appropriate Record class. Building is the
reverse.
Since Tasks parsing is mostly done, implementing the build routines
should just be a matter of doing the reverse of the parse code.
See the src/r_task.h and src/r_task.cc files for where this needs
to be implemented. See the src/r_calendar.{h,cc} files for
a guide on how the Build*() functions should work. You may be
able to copy some of the code over. (The record classes are
in need of a restructuring, to get rid of some code duplication,
but I'll likely be doing that in due time.)
Also, get familiar with the btool program, and make sure that all
the data that you want to eventually show up in the sync is shown
when you do "btool -d Tasks"
Once you've implemented the builder code, make sure the following
btool commands download and upload the Tasks database with no
errors and no data corruption. You wil need to build Barry with
Boost support for this to work.
btool -d Tasks -f tasks.dat
btool -s Tasks -f tasks.dat
This will save all the tasks records to tasks.dat, then erase
the Tasks database on your Blackberry and upload that data, using
your new builder code.
This is where a barrybackup of the Tasks database will come in
handy. Barrybackup can handle this, since it does no parsing or
building of data.. it only stores the raw records. But for syncing,
you will need parse and build support.
Once this is done, send me the patch.
2) The vformat for todo items.
If you look in opensync-plugin/src/vevent.{h,cc}, you'll see code
for converting src/r_calendar.h records to RFC 2445 iCalendar format,
and back.
Something like this will be needed for todo items. The first job
is to find out what format opensync needs for this, and then
secondly to implement it. I don't have any great tips here. :-)
3) The sync.
Once you have a todo format converter, just plug it into the
code in opensync-plugin/src/barry_sync.cc. Step 2 and 3 might
happen at the same time, in reality. :-)
You'll notice that barry_sync uses function pointers to various
format classes to do the actual work of conversion of the data.
It can get a little hairy, so ask questions if you need help.
Hope this helps, and thank you for your interest. Be sure to ask questions
on the mailing list when you have them. And whenever you have patch that
implements something useful, please send it right away, whether it is a
small correction or large piece. It's better to send many small patches
than one large one.
- Chris
-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Barry-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/barry-devel