You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Jens Geyer (JIRA)" <ji...@apache.org> on 2014/08/03 10:12:12 UTC
[jira] [Comment Edited] (THRIFT-2639) c_glib: Expose as properties
members of generated structs
[ https://issues.apache.org/jira/browse/THRIFT-2639?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14083910#comment-14083910 ]
Jens Geyer edited comment on THRIFT-2639 at 8/3/14 8:10 AM:
------------------------------------------------------------
Mmmh. The bootstrap and config scripts went through w/o complaining. I'll try to upgrade my gcc and see if that works for me.
Generally speaking, I'm not sure if we can drop non-C++11 support at this time. I leave that decision to the C++ experts. Maybe [~roger.meier] or [~ben.craig] or anyone else from the C++ fraction has an (more well-founded) opinion on this?
was (Author: jensg):
Mmmh. The bootstrap and config scripts went through w/o complaining. I'll try to upgrade my gcc and see it that works for me.
Generally speaking, I'm not sure if we can drop non-C++11 support at this time. I leave that decision to the C++ experts. Maybe [~roger.meier] or [~ben.craig] or anyone else from the C++ fraction has an (more well-founded) opinion on this?
> c_glib: Expose as properties members of generated structs
> ---------------------------------------------------------
>
> Key: THRIFT-2639
> URL: https://issues.apache.org/jira/browse/THRIFT-2639
> Project: Thrift
> Issue Type: Improvement
> Components: C glib - Compiler
> Affects Versions: 0.9.1
> Environment: Fedora 20 64-bit on x86_64
> Reporter: Simon South
> Assignee: Roger Meier
> Priority: Minor
> Labels: c_glib, compiler
> Attachments: thrift-2639-1-c_glib-initialize-struct-list-members.patch, thrift-2639-2-t_enum_add_min_value_max_value.patch, thrift-2639-3-c_glib-expose-struct-members-as-properties.patch, thrift-2639-4-c_glib-reformat-testdebugproto-c-to-match.patch
>
>
> Currently the c_glib compiler generates a GObject class for each Thrift struct, with a corresponding field for each of the struct's members. However it doesn't register the members as properties of the object, expecting client code to instead access the object's fields directly—an unconventional and bad practice.
> This set of patches changes the compiler so it exposes struct members as object properties, allowing them to be accessed and modified in the conventional manner. (This doesn't _prevent_ objects' fields from being accessed directly, though, so existing code will continue to work.)
> The changes are, in order:
> # Initialize list members with their default values, if specified, in the constructor of generated struct classes. (Not strictly tied to this issue, but used in the test cases I'm submitting.)
> # Add {{get_min_value}} and {{get_max_value}} methods to {{t_enum}}, allowing the compiler to determine the valid range for properties representing an enumerated type.
> # Output a property enumeration, property setter and property getter for each generated class representing a struct, and register the class' properties in its class initializer.
> # Gently reformat {{testdebugproto.c}} (as I have now completely rewritten it) so my previous work matches the structure of this current work.
--
This message was sent by Atlassian JIRA
(v6.2#6252)