Hello,
My idea is to compare the avro's serialization/deserialization features with
the soap realization which we currently have, and for that purpose I use
your C++ version, where I will take one of our "heavy" objects and I will
try to measure the size of the received binary file (put together with the
current xml which I have) and the speed.
So I have a veery complex hierarchy of (let's say java)classes and because
it would have been a work to create my schema manually, I used your
InduceSchemaTool.java, and it produced a file for me (around 2700 lines),
which as I supposed, is not fully applicable for the C++ version.
For example when a record is already defined (i.e. a schema for it),
normally when after that I have an array of a type that record, it is not
defined again. The java code gave me this :
...},
{
"name" : "durableName",
"type" : {
"type" : "record",
"name" : "DurableName",
"namespace" : "test.miv.host.ScsiL$",
"fields" : [ {
"name" : "namespace",
"type" : "string"
}, {
"name" : "namespaceId",
"type" : "int"
}, {
"name" : "data",
"type" : "bytes"
} ]
}
},
{
"name" : "alternateName",
"type" :
{
"type" : "array",
"items" : "test.miv.host.ScsiL$.DurableName"
}
},
{ ...
which, of course, "test.miv.host.ScsiL$.DurableName" could not be understood
from the flex/bison in the C++ version.
My question is is there a way to attune AvroLex.ll and in general the parser
and the compiler in the C++ version to accurately recognize and create the
inner classes (this '$' which the java code use), and to distinguish that
this "test.miv.host.ScsiL$.DurableName" is smthg like
test::miv::host::ScsiL::DurableName in C++ and to to correctly create my
array ?
Thank you
Yuliya