xo-object2 xo-gc xo-facet: codegen updates + IGCObject_DString

This commit is contained in:
Roland Conybeare 2026-01-14 14:37:44 -05:00
commit 3fa4fbf722
3 changed files with 13 additions and 3 deletions

View file

@ -43,6 +43,8 @@ public:
// types
/** integer identifying a type **/
using typeseq = xo::facet::typeseq;
using Copaque = const void *;
using Opaque = void *;
{% for ty in types %}
/** {{ty.doc}} **/
using {{ty.name}} = {{ty.definition}};

View file

@ -265,8 +265,8 @@ def gen_facet_impl(env,
# doc section for facet
facet_doc = '\n'.join(idl['doc'])
types = facet_idl['types']
for ty in types:
facet_types = facet_idl['types']
for ty in facet_types:
ty['doc'] = '\n'.join(ty['doc'])
const_methods = facet_idl['const_methods']
@ -328,6 +328,8 @@ def gen_facet_impl(env,
# repr_ns2: nested namespace for repr [e.g. scm].
repr_ns2 = idl['namespace2']
# local_types: addition type defs (e.g. repr_ns2 != facet_ns2)
local_types = idl['local_types']
# iface_facet_repr: IFoo_DRepr
iface_facet_repr = f'{iface_facet}_{data_repr}'
@ -379,7 +381,8 @@ def gen_facet_impl(env,
'router_facet_hpp_j2': 'router_facet.hpp.j2',
'router_facet_hpp_fname': router_facet_hpp_fname,
#
'types': types,
'types': facet_types,
'local_types': local_types,
#
'const_methods': const_methods,
#

View file

@ -46,6 +46,11 @@ namespace {{repr_ns1}} {
{% for ty in types %}
using {{ty.name}} = {{facet_ns1}}::{{facet_ns2}}::{{abstract_facet}}::{{ty.name}};
{% endfor %}
using Copaque = {{facet_ns1}}::{{facet_ns2}}::{{abstract_facet}}::Copaque;
using Opaque = {{facet_ns1}}::{{facet_ns2}}::{{abstract_facet}}::Opaque;
{% for ty in local_types %}
using {{ty.name}} = {{ty.definition}};
{% endfor %}
{% if using_dox %}
///@}
/** @defgroup {{repr_ns2}}-{{facet_name_lc}}-{{data_repr_lc}}-methods **/