[ 
https://issues.apache.org/jira/browse/AVRO-777?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13007503#comment-13007503
 ] 

Douglas Creager commented on AVRO-777:
--------------------------------------

I've looked through this a bit, but I'll need a single patch file before I can 
start testing things.  Also, there's not much in the way of comments; can you 
walk us through how all of the pieces fit together?

A couple of things that stand out:

* Can you verify that this patch works on the latest 1.5.0 release?  We made 
some changes to the avro_datum_t API (AVRO-751), but it looks like you're using 
the old 1.4.x API.

* You include memory.h, but I think that with the modern C standards that 
header is deprecated in favor of string.h.  string.h gives you all of the mem* 
functions that you're using.

* You also have to be careful about which Avro headers you're using in your 
generated code.  The only headers that are installed are avro.h, and the header 
files in src/avro.  The others are only available while compiling the Avro 
library itself.

* What platform are you testing on?  I think your semaphore implementation 
(sem_t) [won't 
work|http://stackoverflow.com/questions/1413785/sem-init-on-os-x] on Mac OS X.  
But that's nicely segregated, so hopefully we can drop something else in pretty 
easily.

* An aesthetic point — I'm not sure how picky we're being about formatting 
guidelines, but the rest of the Avro C library uses the Linux formatting 
conventions: indent with actual tab characters, tab width is 8 spaces.  (It's 
not my favorite, but I've been aiming for consistency when writing my own 
patches...)

* The fact that you're using pthreads might make this not work on Windows 
machines.  Bruce has more experience on the Win32 side of things, so he can 
hopefully fill us in on that.

I hope that list doesn't seem too pessimistic — I'm glad to see this 
contribution, too!

My last concern is with the code generation.  Can you describe what's being 
produced by the velocity templates?  Can you walk through which parts are 
generated code, and which parts are provided by the Avro library itself?

I have a set of patches I've been working on for generating custom C types for 
Avro schemas (AVRO-778), so I'd like to make sure that there isn't too much 
overlap.  My schema compiler doesn't use Velocity, though; it's written in C.  
I did this b/c I don't want to require users of the C library to install the 
Java library as well, just to be able to do code generation.

> Avro-C: support for RPC
> -----------------------
>
>                 Key: AVRO-777
>                 URL: https://issues.apache.org/jira/browse/AVRO-777
>             Project: Avro
>          Issue Type: Improvement
>          Components: c
>    Affects Versions: 1.4.1
>            Reporter: Gilles Gaillard
>             Fix For: 1.5.1
>
>         Attachments: AVRO-777-rpc-c.zip
>
>
> Provide support for RPC with Avro-C

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to