Eolian: Handle property setter params
This commit is contained in:
parent
5795f762dc
commit
06088c23e0
|
@ -228,7 +228,7 @@ class Method(object):
|
|||
|
||||
return self
|
||||
|
||||
def pyx_generate(self, gen):
|
||||
def pyx_generate(self, gen, param_conv=None):
|
||||
gen.method_header_write(self.py_name, self.py_params)
|
||||
gen.indent()
|
||||
|
||||
|
@ -246,6 +246,10 @@ class Method(object):
|
|||
if self.cdefs:
|
||||
gen.cdefs_write(self.cdefs)
|
||||
|
||||
conv = getattr(self, "params_conv", None)
|
||||
if conv:
|
||||
gen.write(conv)
|
||||
|
||||
for t, n in self.py_params:
|
||||
t = t.replace("const ", "")
|
||||
if t in param_type_mapping:
|
||||
|
@ -341,13 +345,19 @@ class Property(object):
|
|||
m = self.setter = Method(eo_prefix)
|
||||
m.py_name = "__set__"
|
||||
m.c_name = "_".join((self.eo_prefix, func.name, "set"))
|
||||
py_params = []
|
||||
for p in func.property_values_list:
|
||||
pdir, ptype, name, desc = p.information
|
||||
assert pdir == eolian.ParameterDir.IN, "prop has other than IN"
|
||||
m.params.append((ptype, name))
|
||||
m.py_params.append((ptype, name))
|
||||
py_params.append(name)
|
||||
m.c_params.append((ptype, name))
|
||||
|
||||
py_params = ", ".join(py_params)
|
||||
m.params_conv = "%s = value" % (py_params)
|
||||
|
||||
m.py_params = (("", "value"),)
|
||||
|
||||
m.ret_type = func.return_type_get(eolian.FunctionType.PROP_SET)
|
||||
|
||||
if func.type == eolian.FunctionType.PROP_GET or \
|
||||
|
|
Loading…
Reference in New Issue