summaryrefslogtreecommitdiff
path: root/build-aux/qmi-codegen/Field.py
diff options
context:
space:
mode:
Diffstat (limited to 'build-aux/qmi-codegen/Field.py')
-rw-r--r--build-aux/qmi-codegen/Field.py68
1 files changed, 35 insertions, 33 deletions
diff --git a/build-aux/qmi-codegen/Field.py b/build-aux/qmi-codegen/Field.py
index 8640f60..4f670dd 100644
--- a/build-aux/qmi-codegen/Field.py
+++ b/build-aux/qmi-codegen/Field.py
@@ -91,22 +91,25 @@ class Field:
container
"""
def emit_getter(self, hfile, cfile):
- translations = { 'name' : self.name,
- 'variable_name' : self.variable_name,
- 'public_field_type' : self.variable.public_format,
- 'public_field_out' : self.variable.public_format if self.variable.public_format.endswith('*') else self.variable.public_format + ' ',
- 'dispose_warn' : ' Do not free the returned @value, it is owned by @self.' if self.variable.needs_dispose is True else '',
- 'underscore' : utils.build_underscore_name(self.name),
- 'prefix_camelcase' : utils.build_camelcase_name(self.prefix),
- 'prefix_underscore' : utils.build_underscore_name(self.prefix),
- 'const' : 'const ' if self.variable.pass_constant else '' }
+ input_variable_name = utils.build_underscore_name(self.name)
+ variable_getter_dec = self.variable.build_getter_declaration(' ', input_variable_name)
+ variable_getter_doc = self.variable.build_getter_documentation(' * ', input_variable_name)
+ variable_getter_imp = self.variable.build_getter_implementation(' ', 'self->' + self.variable_name, input_variable_name, True)
+ translations = { 'name' : self.name,
+ 'variable_name' : self.variable_name,
+ 'variable_getter_dec' : variable_getter_dec,
+ 'variable_getter_doc' : variable_getter_doc,
+ 'variable_getter_imp' : variable_getter_imp,
+ 'underscore' : utils.build_underscore_name(self.name),
+ 'prefix_camelcase' : utils.build_camelcase_name(self.prefix),
+ 'prefix_underscore' : utils.build_underscore_name(self.prefix) }
# Emit the getter header
template = (
'\n'
'gboolean ${prefix_underscore}_get_${underscore} (\n'
' ${prefix_camelcase} *self,\n'
- ' ${const}${public_field_out}*value,\n'
+ '${variable_getter_dec}'
' GError **error);\n')
hfile.write(string.Template(template).substitute(translations))
@@ -116,17 +119,17 @@ class Field:
'/**\n'
' * ${prefix_underscore}_get_${underscore}:\n'
' * @self: a ${prefix_camelcase}.\n'
- ' * @value: a placeholder for the output value, or #NULL.\n'
+ '${variable_getter_doc}'
' * @error: a #GError.\n'
' *\n'
' * Get the \'${name}\' field from @self.\n'
' *\n'
- ' * Returns: #TRUE if the field is found and @value is set, #FALSE otherwise.${dispose_warn}\n'
+ ' * Returns: #TRUE if the field is found, #FALSE otherwise.\n'
' */\n'
'gboolean\n'
'${prefix_underscore}_get_${underscore} (\n'
' ${prefix_camelcase} *self,\n'
- ' ${const}${public_field_out}*value,\n'
+ '${variable_getter_dec}'
' GError **error)\n'
'{\n'
' g_return_val_if_fail (self != NULL, FALSE);\n'
@@ -139,9 +142,7 @@ class Field:
' return FALSE;\n'
' }\n'
'\n'
- ' /* Just for now, transfer-none always */\n'
- ' if (value)\n'
- ' *value = (${public_field_out})(self->${variable_name});\n'
+ '${variable_getter_imp}'
'\n'
' return TRUE;\n'
'}\n')
@@ -153,20 +154,25 @@ class Field:
container
"""
def emit_setter(self, hfile, cfile):
- translations = { 'name' : self.name,
- 'variable_name' : self.variable_name,
- 'field_type' : self.variable.public_format,
- 'underscore' : utils.build_underscore_name(self.name),
- 'prefix_camelcase' : utils.build_camelcase_name(self.prefix),
- 'prefix_underscore' : utils.build_underscore_name(self.prefix),
- 'const' : 'const ' if self.variable.pass_constant else '' }
+ input_variable_name = utils.build_underscore_name(self.name)
+ variable_setter_dec = self.variable.build_setter_declaration(' ', input_variable_name)
+ variable_setter_doc = self.variable.build_setter_documentation(' * ', input_variable_name)
+ variable_setter_imp = self.variable.build_setter_implementation(' ', input_variable_name, 'self->' + self.variable_name)
+ translations = { 'name' : self.name,
+ 'variable_name' : self.variable_name,
+ 'variable_setter_dec' : variable_setter_dec,
+ 'variable_setter_doc' : variable_setter_doc,
+ 'variable_setter_imp' : variable_setter_imp,
+ 'underscore' : utils.build_underscore_name(self.name),
+ 'prefix_camelcase' : utils.build_camelcase_name(self.prefix),
+ 'prefix_underscore' : utils.build_underscore_name(self.prefix) }
# Emit the setter header
template = (
'\n'
'gboolean ${prefix_underscore}_set_${underscore} (\n'
' ${prefix_camelcase} *self,\n'
- ' ${const}${field_type} value,\n'
+ '${variable_setter_dec}'
' GError **error);\n')
hfile.write(string.Template(template).substitute(translations))
@@ -176,7 +182,7 @@ class Field:
'/**\n'
' * ${prefix_underscore}_set_${underscore}:\n'
' * @self: a ${prefix_camelcase}.\n'
- ' * @value: the value to set.\n'
+ '${variable_setter_doc}'
' * @error: a #GError.\n'
' *\n'
' * Set the \'${name}\' field in the message.\n'
@@ -186,21 +192,17 @@ class Field:
'gboolean\n'
'${prefix_underscore}_set_${underscore} (\n'
' ${prefix_camelcase} *self,\n'
- ' ${const}${field_type} value,\n'
+ '${variable_setter_dec}'
' GError **error)\n'
'{\n'
' g_return_val_if_fail (self != NULL, FALSE);\n'
'\n'
- ' self->${variable_name}_set = TRUE;\n')
- cfile.write(string.Template(template).substitute(translations))
-
- self.variable.emit_dispose(cfile, ' ', 'self->' + self.variable_name)
- self.variable.emit_copy(cfile, ' ', 'value', 'self->' + self.variable_name)
-
- cfile.write(
+ ' self->${variable_name}_set = TRUE;\n'
+ '${variable_setter_imp}'
'\n'
' return TRUE;\n'
'}\n')
+ cfile.write(string.Template(template).substitute(translations))
"""