|
|
-
C impl, getting a schema back as json C string
Jeff Hodges 2010-03-14, 07:39
I can't figure out the API for turning an avro_schema_t back into an in-memory string of json data.
It seems I'm supposed to get it out of an avro_writer_t that I've created with avro_writer_memory() but I'm a little lost once we start having to use avro_writer_to_memory() to get back the original avro_memory_writer_t.
Sample code? -- Jeff
-
Re: C impl, getting a schema back as json C string
Jeff Hodges 2010-03-15, 05:14
(Note, that I've passed this in memory avro_writer_t to avro_schema_to_json and I'm just trying to get the string inside of it out.) -- Jeff
On Sun, Mar 14, 2010 at 12:39 AM, Jeff Hodges <[EMAIL PROTECTED]> wrote: > I can't figure out the API for turning an avro_schema_t back into an > in-memory string of json data. > > It seems I'm supposed to get it out of an avro_writer_t that I've > created with avro_writer_memory() but I'm a little lost once we start > having to use avro_writer_to_memory() to get back the original > avro_memory_writer_t. > > Sample code? > -- > Jeff >
-
Re: C impl, getting a schema back as json C string
Jeff Hodges 2010-03-16, 18:24
Since there doesn't seem to be a way, I'm just holding on to a reference to the buffer I pass into create the memory writer. -- Jeff
On Sun, Mar 14, 2010 at 10:14 PM, Jeff Hodges <[EMAIL PROTECTED]> wrote: > (Note, that I've passed this in memory avro_writer_t to > avro_schema_to_json and I'm just trying to get the string inside of it > out.) > -- > Jeff > > On Sun, Mar 14, 2010 at 12:39 AM, Jeff Hodges <[EMAIL PROTECTED]> wrote: >> I can't figure out the API for turning an avro_schema_t back into an >> in-memory string of json data. >> >> It seems I'm supposed to get it out of an avro_writer_t that I've >> created with avro_writer_memory() but I'm a little lost once we start >> having to use avro_writer_to_memory() to get back the original >> avro_memory_writer_t. >> >> Sample code? >> -- >> Jeff >> >
-
Re: C impl, getting a schema back as json C string
Matt Massie 2010-03-16, 21:35
Jeff-
If you look in avro.h, you'll see the following function...
int avro_schema_to_json(avro_schema_t schema, avro_writer_t out);
.... which write a schema to an avro_writer_t. This allows you to write the schema to memory or a file... create the writer using...
avro_writer_t avro_writer_file(FILE * fp); avro_writer_t avro_writer_memory(const char *buf, int64_t len);
I just realized that
int64_t avro_writer_tell(avro_writer_t writer)
is not in avro.h and it should be. It will tell you the size of the data written to the writer.
Hope this help. Keep the questions coming.
-Matt
On Sun, Mar 14, 2010 at 10:14 PM, Jeff Hodges <[EMAIL PROTECTED]> wrote: > (Note, that I've passed this in memory avro_writer_t to > avro_schema_to_json and I'm just trying to get the string inside of it > out.) > -- > Jeff > > On Sun, Mar 14, 2010 at 12:39 AM, Jeff Hodges <[EMAIL PROTECTED]> wrote: >> I can't figure out the API for turning an avro_schema_t back into an >> in-memory string of json data. >> >> It seems I'm supposed to get it out of an avro_writer_t that I've >> created with avro_writer_memory() but I'm a little lost once we start >> having to use avro_writer_to_memory() to get back the original >> avro_memory_writer_t. >> >> Sample code? >> -- >> Jeff >> >
-
Re: C impl, getting a schema back as json C string
Jeff Hodges 2010-03-16, 22:02
Yeah, I got that part. The problem I'm having is getting the data back out of the writer. _tell just gives you the size of buffer sure, and I would still have to hold on to buffer myself. -- Jeff
On Tue, Mar 16, 2010 at 2:35 PM, Matt Massie <[EMAIL PROTECTED]> wrote: > Jeff- > > If you look in avro.h, you'll see the following function... > > int avro_schema_to_json(avro_schema_t schema, avro_writer_t out); > > .... which write a schema to an avro_writer_t. This allows you to write the > schema to memory or a file... create the writer using... > > avro_writer_t avro_writer_file(FILE * fp); > avro_writer_t avro_writer_memory(const char *buf, int64_t len); > > I just realized that > > int64_t avro_writer_tell(avro_writer_t writer) > > is not in avro.h and it should be. It will tell you the size of the data > written to the writer. > > Hope this help. Keep the questions coming. > > -Matt > > > > > > > > On Sun, Mar 14, 2010 at 10:14 PM, Jeff Hodges <[EMAIL PROTECTED]> wrote: >> (Note, that I've passed this in memory avro_writer_t to >> avro_schema_to_json and I'm just trying to get the string inside of it >> out.) >> -- >> Jeff >> >> On Sun, Mar 14, 2010 at 12:39 AM, Jeff Hodges <[EMAIL PROTECTED]> wrote: >>> I can't figure out the API for turning an avro_schema_t back into an >>> in-memory string of json data. >>> >>> It seems I'm supposed to get it out of an avro_writer_t that I've >>> created with avro_writer_memory() but I'm a little lost once we start >>> having to use avro_writer_to_memory() to get back the original >>> avro_memory_writer_t. >>> >>> Sample code? >>> -- >>> Jeff >>> >>
-
Re: C impl, getting a schema back as json C string
Matt Massie 2010-03-16, 22:50
That's true that you'll have to hold on to the buffer yourself. Currently the memory writer wraps a fixed buffer. Alternatively, we could have a second type of memory writer that dynamically grows in size as needed (to say some maximum size).
Implementation details aside, what would be the ideal API/process to do this?
-Matt On Tue, Mar 16, 2010 at 3:02 PM, Jeff Hodges <[EMAIL PROTECTED]> wrote:
> Yeah, I got that part. The problem I'm having is getting the data back > out of the writer. _tell just gives you the size of buffer sure, and I > would still have to hold on to buffer myself. > -- > Jeff > > On Tue, Mar 16, 2010 at 2:35 PM, Matt Massie <[EMAIL PROTECTED]> wrote: > > Jeff- > > > > If you look in avro.h, you'll see the following function... > > > > int avro_schema_to_json(avro_schema_t schema, avro_writer_t out); > > > > .... which write a schema to an avro_writer_t. This allows you to write > the > > schema to memory or a file... create the writer using... > > > > avro_writer_t avro_writer_file(FILE * fp); > > avro_writer_t avro_writer_memory(const char *buf, int64_t len); > > > > I just realized that > > > > int64_t avro_writer_tell(avro_writer_t writer) > > > > is not in avro.h and it should be. It will tell you the size of the data > > written to the writer. > > > > Hope this help. Keep the questions coming. > > > > -Matt > > > > > > > > > > > > > > > > On Sun, Mar 14, 2010 at 10:14 PM, Jeff Hodges <[EMAIL PROTECTED]> > wrote: > >> (Note, that I've passed this in memory avro_writer_t to > >> avro_schema_to_json and I'm just trying to get the string inside of it > >> out.) > >> -- > >> Jeff > >> > >> On Sun, Mar 14, 2010 at 12:39 AM, Jeff Hodges <[EMAIL PROTECTED]> > wrote: > >>> I can't figure out the API for turning an avro_schema_t back into an > >>> in-memory string of json data. > >>> > >>> It seems I'm supposed to get it out of an avro_writer_t that I've > >>> created with avro_writer_memory() but I'm a little lost once we start > >>> having to use avro_writer_to_memory() to get back the original > >>> avro_memory_writer_t. > >>> > >>> Sample code? > >>> -- > >>> Jeff > >>> > >> >
|
|