xo-facet xo-object2: facet fixes + IPrintable_DString

This commit is contained in:
Roland Conybeare 2026-01-14 16:32:58 -05:00
commit 58ea29170d
3 changed files with 12 additions and 1 deletions

View file

@ -18,4 +18,8 @@
#include "{{impl_hpp_subdir}}/{{iface_facet_xfer_hpp_fname}}"
#include "{{impl_hpp_subdir}}/{{router_facet_hpp_fname}}"
{% for include_fname in user_hpp_includes %}
#include {{include_fname}}
{% endfor %}
/* end {{facet_hpp_fname}} */

View file

@ -93,6 +93,8 @@ def gen_facet(env,
# extra include files (or perhaps other definitions)
facet_includes = idl['includes']
# extra (post) includes for user .hpp e.g. Sequence.hpp
user_hpp_includes = idl['user_hpp_includes']
# arbitrary text after includes, before opening namespaces
facet_pretext = idl['pretext']
# detail
@ -163,6 +165,8 @@ def gen_facet(env,
'facet_ns2': facet_ns2,
'facet_name_lc': facet_name_lc,
'facet_hpp_fname': facet_hpp_fname,
#
'user_hpp_includes': user_hpp_includes,
#'name': facet_name,
'idl_fname': idl_fname,
#

View file

@ -46,6 +46,9 @@ public:
{% endif %}
{{router_facet}}() {}
{{router_facet}}(Object::DataPtr data) : Object{std::move(data)} {}
{{router_facet}}(const {{abstract_facet}} * iface, void * data)
requires std::is_same_v<typename Object::DataType, xo::facet::DVariantPlaceholder>
: Object(iface, data) {}
{% if using_dox %}
///@}
@ -61,7 +64,7 @@ public:
}
{% endfor %}
// non-const methods
// non-const methods (still const in router!)
{% for md in nonconst_methods %}
{{md.return_type}} {{md.name}}({{md.args | argsnodata}}) {{md | staticqual}} {
return O::iface()->{{md.name}}({{md.args | argrouting}});