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