Log Message: |
AVRO-837. C: Avro value interface
This patch adds a new interface for Avro values. Eventually, each part
of the library that operates on Avro data will work with any C type that
implements this interface, rather than only working on avro_datum_t
instances.
As of right now, we have a definition of the interface itself (along
with a bunch of macros that make it easier to call the interface methods
on a particular instance). We also have a “generic” implementation of
the interface, which will serve as a replacement for avro_datum_t.
There is also an avro_value_t implementation that wraps avro_datum_t
instances. This will let us migrate code slowly to the new interface,
where necessary.
As part of all of this, I've broken out the monolithic avro.h header
file into separate modular headers. You can still include <avro.h> on
its own to pick up all of the parts.
Lastly, there's now a test program that compares the performance of the
old and new APIs.
|