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
Barry-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/barry-devel

Reply via email to