On Sat, Dec 14, 2002 at 10:18:32AM -0800, Robert Ramey wrote:

[snip]

> topic. It seems that there is a strong belief that there can be created a
> generic system which will map an arbitrary set of C++ objects in a meaningful
> way to another other format.  Such a system will necessarily have to start
> with a system of reflection that describes all aspects of data structures
> that the system aspires to support. For example, if XML is to be supported,
> items will have to have external names.  Once this system of reflection (or 
>meta-data)
> were specified, then importers/exporters to from/to each file format would be
> created.  There is at least one commercial product that does this (Data Junction)
> This is a hugely ambitious undertaking that is only tenously related to 
>serialization.

Yes, I agree.  We should begin discussion of a reflection library.  I
will give the following suggestings regarding such a system:

I think such a system should be based on providing an interface for
accessing and assigning the value of any exposed field.  I believe the
following types are sufficient for representing anything that could be
serialized:

- built-in numeric types

- fixed-length containers of a single type

- variable length containers of a single type

- container with a single value of variable type

- character strings (note: these are included separate from variable
length containers of a single type only because it is extremely common
to handle them separately)

- pointer or reference to a type

- aggregate of zero or more of the above types

In order to facilitate serialization/persistence, a name for each
field as well as version history (i.e. the version in which it was
added, and possibly a version in which it is removed).  The same could
be specified for base classes.

I realize this is not much to go on, but please provide comments.

- Jeremy Maitin-Shepard
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to