diff options
author | Felipe Magno de Almeida <felipe@expertisesolutions.com.br> | 2016-11-03 19:41:59 -0200 |
---|---|---|
committer | Felipe Magno de Almeida <felipe@expertisesolutions.com.br> | 2016-11-03 19:41:59 -0200 |
commit | b14d69983f0a4e1741582765294623c850547bd5 (patch) | |
tree | ac0dfe74919824ee249021fefde0d9f98ff5a4e0 | |
parent | 446ec7ffb21de5da3ef35ed62856228e314b6030 (diff) | |
download | efl-b14d69983f0a4e1741582765294623c850547bd5.tar.gz |
mono: Add out parameters
-rw-r--r-- | src/bin/eolian_mono/eolian_mono/parameter.hh | 7 | ||||
-rw-r--r-- | src/bin/eolian_mono/eolian_mono/type_impl.hh | 5 |
2 files changed, 7 insertions, 5 deletions
diff --git a/src/bin/eolian_mono/eolian_mono/parameter.hh b/src/bin/eolian_mono/eolian_mono/parameter.hh index 97a1987b19..f68a914930 100644 --- a/src/bin/eolian_mono/eolian_mono/parameter.hh +++ b/src/bin/eolian_mono/eolian_mono/parameter.hh @@ -17,7 +17,7 @@ struct parameter_generator template <typename OutputIterator, typename Context> bool generate(OutputIterator sink, attributes::parameter_def const& param, Context const& context) const { - return as_generator(type << " " << string).generate(sink, std::make_tuple(param.type, param.param_name), context); + return as_generator(type << " " << string).generate(sink, std::make_tuple(param, param.param_name), context); } } const parameter {}; @@ -26,7 +26,7 @@ struct marshall_parameter_generator template <typename OutputIterator, typename Context> bool generate(OutputIterator sink, attributes::parameter_def const& param, Context const& context) const { - return as_generator(marshall_type << " " << string).generate(sink, std::make_tuple(param.type, param.param_name), context); + return as_generator(marshall_type << " " << string).generate(sink, std::make_tuple(param, param.param_name), context); } } const marshall_parameter {}; @@ -35,7 +35,8 @@ struct argument_generator template <typename OutputIterator, typename Context> bool generate(OutputIterator sink, attributes::parameter_def const& param, Context const& context) const { - return as_generator(param.param_name).generate(sink, attributes::unused, context); + return as_generator((param.direction != attributes::parameter_direction::in ? " out " : "") + << param.param_name).generate(sink, attributes::unused, context); } } const argument {}; diff --git a/src/bin/eolian_mono/eolian_mono/type_impl.hh b/src/bin/eolian_mono/eolian_mono/type_impl.hh index c8c466c77a..5b76d77539 100644 --- a/src/bin/eolian_mono/eolian_mono/type_impl.hh +++ b/src/bin/eolian_mono/eolian_mono/type_impl.hh @@ -218,7 +218,8 @@ struct visitor_generate // .generate(std::ostream_iterator<char>(std::cerr), std::make_tuple(eolian_mono::escape_namespace(regular.namespaces), regular.base_type), *context); if(as_generator ( - *(lower_case[string] << ".") + (is_out ? " out " : "") + << *(lower_case[string] << ".") << string // << (regular.base_qualifier & qualifier_info::is_const // || (regular.base_qualifier & qualifier_info::is_ref @@ -243,7 +244,7 @@ struct visitor_generate // as_generator(" System.IntPtr") // .generate(sink, attributes::unused, *context); return - as_generator(" " << *(lower_case[string] << ".") << string) + as_generator((is_out ? " out " : " ") << *(lower_case[string] << ".") << string) .generate(sink, std::make_tuple(eolian_mono::escape_namespace(klass.namespaces), klass.eolian_name), *context) // && (!(klass.base_qualifier & qualifier_info::is_ref) // || as_generator("&").generate(sink, attributes::unused, *context)) |