[ https://issues.apache.org/jira/browse/THRIFT-2709?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14152406#comment-14152406 ]
Hudson commented on THRIFT-2709: -------------------------------- FAILURE: Integrated in Thrift-Test #31 (See [https://builds.apache.org/job/Thrift-Test/31/]) THRIFT-2709 c_glib: Support server implementation (roger: rev 63243c6a2923cfee1d7d7d3b74ba7ccfcd448dc0) * lib/c_glib/src/thrift/c_glib/server/thrift_simple_server.c * lib/c_glib/src/thrift/c_glib/transport/thrift_transport.c * lib/c_glib/src/thrift/c_glib/processor/thrift_dispatch_processor.c * lib/c_glib/src/thrift/c_glib/processor/thrift_dispatch_processor.h * lib/c_glib/src/thrift/c_glib/processor/thrift_processor.c * lib/c_glib/src/thrift/c_glib/transport/thrift_socket.c * lib/c_glib/src/thrift/c_glib/transport/thrift_buffered_transport_factory.h * lib/c_glib/test/Makefile.am * lib/c_glib/src/thrift/c_glib/server/thrift_server.c * lib/c_glib/src/thrift/c_glib/server/thrift_server.h * lib/c_glib/src/thrift/c_glib/transport/thrift_framed_transport_factory.c * lib/c_glib/src/thrift/c_glib/processor/thrift_processor.h * lib/c_glib/src/thrift/c_glib/transport/thrift_buffered_transport.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.c * lib/c_glib/Makefile.am * lib/c_glib/src/thrift/c_glib/transport/thrift_framed_transport_factory.h * compiler/cpp/src/generate/t_c_glib_generator.cc * lib/c_glib/test/testtransportsocket.c * lib/c_glib/test/testsimpleserver.c * lib/c_glib/src/thrift/c_glib/transport/thrift_transport.h > 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)