Simon South created THRIFT-2639:
-----------------------------------

             Summary: 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
            Priority: Minor


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)

Reply via email to