You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Hudson (JIRA)" <ji...@apache.org> on 2014/11/05 05:48:57 UTC

[jira] [Commented] (THRIFT-2709) c_glib: Support server implementation

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

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

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