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

Hudson commented on THRIFT-2709:
--------------------------------

SUCCESS: Integrated in Thrift #1285 (See 
[https://builds.apache.org/job/Thrift/1285/])
THRIFT-2709 c_glib: Support server implementation (roger: rev 
63243c6a2923cfee1d7d7d3b74ba7ccfcd448dc0)
* lib/c_glib/src/thrift/c_glib/server/thrift_server.c
* lib/c_glib/src/thrift/c_glib/transport/thrift_transport.h
* lib/c_glib/src/thrift/c_glib/transport/thrift_framed_transport_factory.h
* lib/c_glib/src/thrift/c_glib/processor/thrift_dispatch_processor.c
* lib/c_glib/src/thrift/c_glib/transport/thrift_framed_transport.c
* lib/c_glib/src/thrift/c_glib/transport/thrift_buffered_transport_factory.h
* lib/c_glib/src/thrift/c_glib/server/thrift_simple_server.c
* lib/c_glib/src/thrift/c_glib/processor/thrift_dispatch_processor.h
* compiler/cpp/src/generate/t_c_glib_generator.cc
* lib/c_glib/test/Makefile.am
* lib/c_glib/src/thrift/c_glib/transport/thrift_buffered_transport_factory.c
* lib/c_glib/test/testsimpleserver.c
* lib/c_glib/src/thrift/c_glib/server/thrift_server.h
* lib/c_glib/src/thrift/c_glib/transport/thrift_socket.c
* lib/c_glib/src/thrift/c_glib/processor/thrift_processor.c
* lib/c_glib/src/thrift/c_glib/processor/thrift_processor.h
* lib/c_glib/Makefile.am
* lib/c_glib/src/thrift/c_glib/transport/thrift_buffered_transport.c
* lib/c_glib/src/thrift/c_glib/transport/thrift_transport.c
* lib/c_glib/src/thrift/c_glib/transport/thrift_framed_transport_factory.c
* lib/c_glib/test/testtransportsocket.c


> c_glib: Support server implementation
> -------------------------------------
>
>                 Key: THRIFT-2709
>                 URL: https://issues.apache.org/jira/browse/THRIFT-2709
>             Project: Thrift
>          Issue Type: Improvement
>          Components: C glib - Compiler, C glib - Library
>    Affects Versions: 0.9.1
>         Environment: Fedora 20 64-bit on x86_64
>            Reporter: Simon South
>            Assignee: Simon South
>            Priority: Minor
>              Labels: c_glib, server
>         Attachments: thrift-2709-1-c_glib-library-add-server-support.patch, 
> thrift-2709-2-c_glib-compiler-generate-server-classes.patch, 
> thrift-2709-3-c_glib-remove-thrift_enum_types.h-reference.patch
>
>
> The attached patches modify the C (GLib) compiler and library to add support 
> for implementing servers.
> The changes to the compiler include
> * Adding server-generation methods
> ** {{generate_service_helpers}}, which generates a pair of {{ThriftStruct}} 
> subclasses for each service method, used to deserialize the method's 
> arguments and serialize its result
> ** {{generate_service_handler}}, which generates an abstract base class for a 
> service's handler implementations
> ** {{generate_service_processor}}, which generates a service's processor class
> * Adding helper methods {{underscores_to_initial_caps}} and 
> {{property_type_name}} which, respectively, convert an underscore-delimited 
> name back to camel case and return the GLib type needed to store a Thrift 
> type as a GObject property
> Changes to the library include
> * Changing the signature of {{ThriftProcessor.process}} so it returns I/O 
> errors to its caller
> * Adding the {{ThriftDispatchProcessor}} class, ported from the C++ 
> implementation, which subclasses {{ThriftProcessor}} and parses an incoming 
> method-call message for dispatch by subclasses
> * Adding a {{peek}} method to {{ThriftTransport}} and corresponding 
> implementations in {{ThriftSocket}}, {{ThriftBufferedTransport}} and 
> {{ThriftFramedTransport}}
> * Add {{ThriftBufferedTransportFactory}} and 
> {{ThriftFramedTransportFactory}}, used by the server to wrap a raw 
> {{ThriftTransport}} in the corresponding subtype
> * Changing the signature of {{ThriftServer.server}} so it returns an error 
> status to its caller, following [GLib's 
> conventions|https://developer.gnome.org/glib/2.26/glib-Error-Reporting.html#glib-Error-Reporting.description]
> * Changing {{ThriftSimpleServer.serve}} so it
> ** Detects and reports errors encountered during processing
> ** Uses transports returned by the transport factories instead of the (raw) 
> transport passed in by the caller
> ** Uses {{ThriftTransport.peek}} to detect the end of input
> ** Returns an error status to its caller



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to