From e71954697cc049db2b2605e871341eaeb7cf958b Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Wed, 4 Feb 2026 16:25:37 -0500 Subject: [PATCH] xo-procedure2: streamline DSimpleRcx + regen facet *.pp --- xo-procedure2/CMakeLists.txt | 6 +++--- xo-procedure2/include/xo/procedure2/Procedure.hpp | 4 ++-- .../include/xo/procedure2/RuntimeContext.hpp | 4 ++-- xo-procedure2/include/xo/procedure2/SimpleRcx.hpp | 11 +++++++++++ .../include/xo/procedure2/detail/AProcedure.hpp | 6 ++++-- .../xo/procedure2/detail/ARuntimeContext.hpp | 6 ++++-- .../detail/IGCObject_DPrimitive_gco_2_gco_gco.hpp | 2 +- .../detail/IPrintable_DPrimitive_gco_2_gco_gco.hpp | 2 +- .../include/xo/procedure2/detail/IProcedure_Any.hpp | 9 ++++++--- .../detail/IProcedure_DPrimitive_gco_2_gco_gco.hpp | 2 +- .../xo/procedure2/detail/IProcedure_Xfer.hpp | 9 ++++++--- .../xo/procedure2/detail/IRuntimeContext_Any.hpp | 9 ++++++--- .../detail/IRuntimeContext_DSimpleRcx.hpp | 2 +- .../xo/procedure2/detail/IRuntimeContext_Xfer.hpp | 9 ++++++--- .../include/xo/procedure2/detail/RProcedure.hpp | 9 ++++++--- .../xo/procedure2/detail/RRuntimeContext.hpp | 9 ++++++--- .../IGCObject_DPrimitive_gco_2_gco_gco.cpp | 4 ++-- .../IPrintable_DPrimitive_gco_2_gco_gco.cpp | 4 ++-- xo-procedure2/src/procedure2/IProcedure_Any.cpp | 2 +- .../IProcedure_DPrimitive_gco_2_gco_gco.cpp | 4 ++-- .../src/procedure2/IRuntimeContext_Any.cpp | 2 +- .../src/procedure2/IRuntimeContext_DSimpleRcx.cpp | 4 ++-- .../src/procedure2/procedure2_register_facets.cpp | 13 +++++++------ 23 files changed, 83 insertions(+), 49 deletions(-) create mode 100644 xo-procedure2/include/xo/procedure2/SimpleRcx.hpp diff --git a/xo-procedure2/CMakeLists.txt b/xo-procedure2/CMakeLists.txt index ad8673d1..a6fd4d21 100644 --- a/xo-procedure2/CMakeLists.txt +++ b/xo-procedure2/CMakeLists.txt @@ -91,12 +91,12 @@ xo_add_genfacetimpl( OUTPUT_CPP_DIR src/procedure2 ) -add_subdirectory(src/procedure2) -add_subdirectory(utest) +xo_add_genfacet_all(xo-procedure2-genfacet-all) # ---------------------------------------------------------------- -xo_add_genfacet_all(xo-procedure2-genfacet-all) +add_subdirectory(src/procedure2) +add_subdirectory(utest) # ---------------------------------------------------------------- # cmake export diff --git a/xo-procedure2/include/xo/procedure2/Procedure.hpp b/xo-procedure2/include/xo/procedure2/Procedure.hpp index 784608ed..05d1b661 100644 --- a/xo-procedure2/include/xo/procedure2/Procedure.hpp +++ b/xo-procedure2/include/xo/procedure2/Procedure.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [xo-facet/codegen/genfacet] * arguments: * --input [idl/Procedure.json5] * 2. jinja2 template for facet .hpp file: @@ -19,4 +19,4 @@ #include "detail/RProcedure.hpp" -/* end Procedure.hpp */ \ No newline at end of file +/* end Procedure.hpp */ diff --git a/xo-procedure2/include/xo/procedure2/RuntimeContext.hpp b/xo-procedure2/include/xo/procedure2/RuntimeContext.hpp index 3241451b..48891944 100644 --- a/xo-procedure2/include/xo/procedure2/RuntimeContext.hpp +++ b/xo-procedure2/include/xo/procedure2/RuntimeContext.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [xo-facet/codegen/genfacet] * arguments: * --input [idl/RuntimeContext.json5] * 2. jinja2 template for facet .hpp file: @@ -19,4 +19,4 @@ #include "detail/RRuntimeContext.hpp" -/* end RuntimeContext.hpp */ \ No newline at end of file +/* end RuntimeContext.hpp */ diff --git a/xo-procedure2/include/xo/procedure2/SimpleRcx.hpp b/xo-procedure2/include/xo/procedure2/SimpleRcx.hpp new file mode 100644 index 00000000..2fdc4929 --- /dev/null +++ b/xo-procedure2/include/xo/procedure2/SimpleRcx.hpp @@ -0,0 +1,11 @@ +/** @file SimpleRcx.hpp + * + * @author Roland Conybeare, Feb 2026 + **/ + +#pragma once + +#include "DSimpleRcx.hpp" +#include "detail/IRuntimeContext_DSimpleRcx.hpp" + +/* end SimpleRcx.hpp */ diff --git a/xo-procedure2/include/xo/procedure2/detail/AProcedure.hpp b/xo-procedure2/include/xo/procedure2/detail/AProcedure.hpp index 63a4da9b..eb119fbd 100644 --- a/xo-procedure2/include/xo/procedure2/detail/AProcedure.hpp +++ b/xo-procedure2/include/xo/procedure2/detail/AProcedure.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [xo-facet/codegen/genfacet] * arguments: * --input [idl/Procedure.json5] * 2. jinja2 template for abstract facet .hpp file: @@ -49,6 +49,8 @@ public: // const methods /** RTTI: unique id# for actual runtime data representation **/ virtual typeseq _typeseq() const noexcept = 0; + /** destroy instance @p d; calls c++ dtor only for actual runtime type; does not recover memory **/ + virtual void _drop(Opaque d) const noexcept = 0; /** true iff procedure takes n arguments **/ virtual bool is_nary(Copaque data) const noexcept = 0; /** number of arguments. -1 for n-ary **/ @@ -76,4 +78,4 @@ using IProcedure_ImplType = xo::facet::FacetImplType; } /*namespace scm*/ } /*namespace xo*/ -/* AProcedure.hpp */ \ No newline at end of file +/* AProcedure.hpp */ diff --git a/xo-procedure2/include/xo/procedure2/detail/ARuntimeContext.hpp b/xo-procedure2/include/xo/procedure2/detail/ARuntimeContext.hpp index 4e96bc8f..09831870 100644 --- a/xo-procedure2/include/xo/procedure2/detail/ARuntimeContext.hpp +++ b/xo-procedure2/include/xo/procedure2/detail/ARuntimeContext.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [xo-facet/codegen/genfacet] * arguments: * --input [idl/RuntimeContext.json5] * 2. jinja2 template for abstract facet .hpp file: @@ -47,6 +47,8 @@ public: // const methods /** RTTI: unique id# for actual runtime data representation **/ virtual typeseq _typeseq() const noexcept = 0; + /** destroy instance @p d; calls c++ dtor only for actual runtime type; does not recover memory **/ + virtual void _drop(Opaque d) const noexcept = 0; /** default allocator to use for objects **/ virtual obj allocator(Copaque data) const noexcept = 0; @@ -70,4 +72,4 @@ using IRuntimeContext_ImplType = xo::facet::FacetImplType allocator(Copaque) const noexcept override { _fatal(); } // nonconst methods @@ -83,4 +86,4 @@ namespace scm { } /*namespace scm */ } /*namespace xo */ -/* IRuntimeContext_Any.hpp */ \ No newline at end of file +/* IRuntimeContext_Any.hpp */ diff --git a/xo-procedure2/include/xo/procedure2/detail/IRuntimeContext_DSimpleRcx.hpp b/xo-procedure2/include/xo/procedure2/detail/IRuntimeContext_DSimpleRcx.hpp index 06f14bc5..247b6762 100644 --- a/xo-procedure2/include/xo/procedure2/detail/IRuntimeContext_DSimpleRcx.hpp +++ b/xo-procedure2/include/xo/procedure2/detail/IRuntimeContext_DSimpleRcx.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [xo-facet/codegen/genfacet] * arguments: * --input [idl/IRuntimeContext_DSimpleRcx.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/xo-procedure2/include/xo/procedure2/detail/IRuntimeContext_Xfer.hpp b/xo-procedure2/include/xo/procedure2/detail/IRuntimeContext_Xfer.hpp index cd71b73e..a4545b8f 100644 --- a/xo-procedure2/include/xo/procedure2/detail/IRuntimeContext_Xfer.hpp +++ b/xo-procedure2/include/xo/procedure2/detail/IRuntimeContext_Xfer.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [xo-facet/codegen/genfacet] * arguments: * --input [idl/RuntimeContext.json5] * 2. jinja2 template for abstract facet .hpp file: @@ -39,8 +39,11 @@ namespace scm { // from ARuntimeContext - // const methods + // builtin methods typeseq _typeseq() const noexcept override { return s_typeseq; } + void _drop(Opaque d) const noexcept override { _dcast(d).~DRepr(); } + + // const methods obj allocator(Copaque data) const noexcept override { return I::allocator(_dcast(data)); } @@ -78,4 +81,4 @@ namespace scm { } /*namespace scm */ } /*namespace xo*/ -/* end IRuntimeContext_Xfer.hpp */ \ No newline at end of file +/* end IRuntimeContext_Xfer.hpp */ diff --git a/xo-procedure2/include/xo/procedure2/detail/RProcedure.hpp b/xo-procedure2/include/xo/procedure2/detail/RProcedure.hpp index 93599ae3..61bcb7f7 100644 --- a/xo-procedure2/include/xo/procedure2/detail/RProcedure.hpp +++ b/xo-procedure2/include/xo/procedure2/detail/RProcedure.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [xo-facet/codegen/genfacet] * arguments: * --input [idl/Procedure.json5] * 2. jinja2 template for abstract facet .hpp file: @@ -46,8 +46,11 @@ public: /** @defgroup scm-procedure-router-methods **/ ///@{ - // const methods + // builtin methods typeseq _typeseq() const noexcept { return O::iface()->_typeseq(); } + void _drop() const noexcept { O::iface()->_drop(O::data()); } + + // const methods bool is_nary() const noexcept { return O::iface()->is_nary(O::data()); } @@ -83,4 +86,4 @@ namespace xo { namespace facet { }; } } -/* end RProcedure.hpp */ \ No newline at end of file +/* end RProcedure.hpp */ diff --git a/xo-procedure2/include/xo/procedure2/detail/RRuntimeContext.hpp b/xo-procedure2/include/xo/procedure2/detail/RRuntimeContext.hpp index b06227c8..a6df812e 100644 --- a/xo-procedure2/include/xo/procedure2/detail/RRuntimeContext.hpp +++ b/xo-procedure2/include/xo/procedure2/detail/RRuntimeContext.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [xo-facet/codegen/genfacet] * arguments: * --input [idl/RuntimeContext.json5] * 2. jinja2 template for abstract facet .hpp file: @@ -46,8 +46,11 @@ public: /** @defgroup scm-runtimecontext-router-methods **/ ///@{ - // const methods + // builtin methods typeseq _typeseq() const noexcept { return O::iface()->_typeseq(); } + void _drop() const noexcept { O::iface()->_drop(O::data()); } + + // const methods obj allocator() const noexcept { return O::iface()->allocator(O::data()); } @@ -77,4 +80,4 @@ namespace xo { namespace facet { }; } } -/* end RRuntimeContext.hpp */ \ No newline at end of file +/* end RRuntimeContext.hpp */ diff --git a/xo-procedure2/src/procedure2/IGCObject_DPrimitive_gco_2_gco_gco.cpp b/xo-procedure2/src/procedure2/IGCObject_DPrimitive_gco_2_gco_gco.cpp index bd88e9ff..b889d0d0 100644 --- a/xo-procedure2/src/procedure2/IGCObject_DPrimitive_gco_2_gco_gco.cpp +++ b/xo-procedure2/src/procedure2/IGCObject_DPrimitive_gco_2_gco_gco.cpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [xo-facet/codegen/genfacet] * arguments: * --input [idl/IGCObject_DPrimitive_gco_2_gco_gco.json5] * 2. jinja2 template for abstract facet .hpp file: @@ -36,4 +36,4 @@ namespace xo { } /*namespace scm*/ } /*namespace xo*/ -/* end IGCObject_DPrimitive_gco_2_gco_gco.cpp */ \ No newline at end of file +/* end IGCObject_DPrimitive_gco_2_gco_gco.cpp */ diff --git a/xo-procedure2/src/procedure2/IPrintable_DPrimitive_gco_2_gco_gco.cpp b/xo-procedure2/src/procedure2/IPrintable_DPrimitive_gco_2_gco_gco.cpp index 2c791324..c8b7c2d8 100644 --- a/xo-procedure2/src/procedure2/IPrintable_DPrimitive_gco_2_gco_gco.cpp +++ b/xo-procedure2/src/procedure2/IPrintable_DPrimitive_gco_2_gco_gco.cpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [xo-facet/codegen/genfacet] * arguments: * --input [idl/IPrintable_DPrimitive_gco_2_gco_gco.json5] * 2. jinja2 template for abstract facet .hpp file: @@ -25,4 +25,4 @@ namespace xo { } /*namespace scm*/ } /*namespace xo*/ -/* end IPrintable_DPrimitive_gco_2_gco_gco.cpp */ \ No newline at end of file +/* end IPrintable_DPrimitive_gco_2_gco_gco.cpp */ diff --git a/xo-procedure2/src/procedure2/IProcedure_Any.cpp b/xo-procedure2/src/procedure2/IProcedure_Any.cpp index d28d98ee..dcdf9eeb 100644 --- a/xo-procedure2/src/procedure2/IProcedure_Any.cpp +++ b/xo-procedure2/src/procedure2/IProcedure_Any.cpp @@ -44,4 +44,4 @@ IProcedure_Any::apply_nocheck(Opaque, obj, const DArray *) -> } /*namespace scm*/ } /*namespace xo*/ -/* end IProcedure_Any.cpp */ \ No newline at end of file +/* end IProcedure_Any.cpp */ diff --git a/xo-procedure2/src/procedure2/IProcedure_DPrimitive_gco_2_gco_gco.cpp b/xo-procedure2/src/procedure2/IProcedure_DPrimitive_gco_2_gco_gco.cpp index 67e73c97..1207429f 100644 --- a/xo-procedure2/src/procedure2/IProcedure_DPrimitive_gco_2_gco_gco.cpp +++ b/xo-procedure2/src/procedure2/IProcedure_DPrimitive_gco_2_gco_gco.cpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [xo-facet/codegen/genfacet] * arguments: * --input [idl/IProcedure_DPrimitive_gco_2_gco_gco.json5] * 2. jinja2 template for abstract facet .hpp file: @@ -36,4 +36,4 @@ namespace xo { } /*namespace scm*/ } /*namespace xo*/ -/* end IProcedure_DPrimitive_gco_2_gco_gco.cpp */ \ No newline at end of file +/* end IProcedure_DPrimitive_gco_2_gco_gco.cpp */ diff --git a/xo-procedure2/src/procedure2/IRuntimeContext_Any.cpp b/xo-procedure2/src/procedure2/IRuntimeContext_Any.cpp index a9c5b55a..1ea5859a 100644 --- a/xo-procedure2/src/procedure2/IRuntimeContext_Any.cpp +++ b/xo-procedure2/src/procedure2/IRuntimeContext_Any.cpp @@ -38,4 +38,4 @@ IRuntimeContext_Any::_valid } /*namespace scm*/ } /*namespace xo*/ -/* end IRuntimeContext_Any.cpp */ \ No newline at end of file +/* end IRuntimeContext_Any.cpp */ diff --git a/xo-procedure2/src/procedure2/IRuntimeContext_DSimpleRcx.cpp b/xo-procedure2/src/procedure2/IRuntimeContext_DSimpleRcx.cpp index 4ec8378b..f057220d 100644 --- a/xo-procedure2/src/procedure2/IRuntimeContext_DSimpleRcx.cpp +++ b/xo-procedure2/src/procedure2/IRuntimeContext_DSimpleRcx.cpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [xo-facet/codegen/genfacet] * arguments: * --input [idl/IRuntimeContext_DSimpleRcx.json5] * 2. jinja2 template for abstract facet .hpp file: @@ -25,4 +25,4 @@ namespace xo { } /*namespace scm*/ } /*namespace xo*/ -/* end IRuntimeContext_DSimpleRcx.cpp */ \ No newline at end of file +/* end IRuntimeContext_DSimpleRcx.cpp */ diff --git a/xo-procedure2/src/procedure2/procedure2_register_facets.cpp b/xo-procedure2/src/procedure2/procedure2_register_facets.cpp index 5b84b4dd..6905e0ba 100644 --- a/xo-procedure2/src/procedure2/procedure2_register_facets.cpp +++ b/xo-procedure2/src/procedure2/procedure2_register_facets.cpp @@ -3,12 +3,9 @@ * @author Roland Conybeare, Jan 2026 **/ -#include "DSimpleRcx.hpp" -#include "detail/IRuntimeContext_DSimpleRcx.hpp" - -#include "DPrimitive_gco_2_gco_gco.hpp" -#include "detail/IGCObject_DPrimitive_gco_2_gco_gco.hpp" -#include "detail/IPrintable_DPrimitive_gco_2_gco_gco.hpp" +#include "Procedure.hpp" +#include "SimpleRcx.hpp" +#include "Primitive_gco_2_gco_gco.hpp" #include #include @@ -28,12 +25,16 @@ namespace xo { FacetRegistry::register_impl(); + FacetRegistry::register_impl(); FacetRegistry::register_impl(); FacetRegistry::register_impl(); log && log(xtag("DSimpleRcx.tseq", typeseq::id())); log && log(xtag("DPrimitive_gco_2_gco_gco.tseq", typeseq::id())); + log && log(xtag("ARuntimeContext.tseq", typeseq::id())); + log && log(xtag("AProcedure.tseq", typeseq::id())); + return true; }