Here are my current plans for implementing the EIM API for the sharing parcel.

The first pieces to be implemented will be the layers relating to data types and type mapping:

* sharing.typedef()
* sharing.BytesType
* sharing.TextType
* sharing.IntType
* sharing.DateType
* sharing.LobType
* ...and various APIs for performing type registration, conversion and introspection

Second will be the record types, fields, and APIs relating thereto:

* sharing.Record
* sharing.typeinfo()
* sharing.field()
* sharing.NoChange
* predefined record types for exchanging record type information
* "diff" or "delta" records
* ...etc.

The third and hopefully final stage will implement sharing.Schema and all the matters associated therewith, including key lookups and inter-record dependency management. The idea is that by doing the above-listed things first, there will be a basis for doing development of the "wire format" for exchanging records between Chandler and Cosmo. That way, work on the format itself won't be blocked any more at that point, and can proceed in parallel with the development of the "mapping" layer.

The documentation will also be produced in stages. The initial doctests used to drive construction will probably assume some existing knowledge of EIM concepts. Later, the docs will likely split into a "Parcel Developer's Guide to Supporting Sharing and Backup/Restore" and a "Sharing Developer's Guide to the EIM API", for the two different audiences that will be using these APIs.

There is still a lot of detail-level design to do, as all of my proposals so far have been high-level structural sketches. My current target is to complete the first layer (and part of the second) in the next two weeks, after which I will be away for a week (17th-23rd).

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Open Source Applications Foundation "chandler-dev" mailing list
http://lists.osafoundation.org/mailman/listinfo/chandler-dev

Reply via email to