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