[Chandler-dev] EIM API development plan

Phillip J. Eby pje at telecommunity.com
Mon Oct 2 15:28:04 PDT 2006


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).



More information about the chandler-dev mailing list