From 263aa16cfb8af2cb26d99a7cfa7cca720389031e Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Mon, 16 Mar 2026 19:02:00 -0500 Subject: [PATCH] x-stringtable2: streamline setup --- include/xo/stringtable2/SetupStringtable2.hpp | 25 +++++++++ .../stringtable2_register_facets.hpp | 2 - .../stringtable2_register_types.hpp | 2 - src/stringtable2/CMakeLists.txt | 3 +- src/stringtable2/SetupStringtable2.cpp | 55 +++++++++++++++++++ src/stringtable2/init_stringtable2.cpp | 11 ++-- .../stringtable2_register_facets.cpp | 2 + .../stringtable2_register_types.cpp | 12 ---- 8 files changed, 88 insertions(+), 24 deletions(-) create mode 100644 include/xo/stringtable2/SetupStringtable2.hpp create mode 100644 src/stringtable2/SetupStringtable2.cpp diff --git a/include/xo/stringtable2/SetupStringtable2.hpp b/include/xo/stringtable2/SetupStringtable2.hpp new file mode 100644 index 0000000..b310bb8 --- /dev/null +++ b/include/xo/stringtable2/SetupStringtable2.hpp @@ -0,0 +1,25 @@ +/** @file SetupStringtable2.hpp + * + * @author Roland Conybeare, Mar 2026 + **/ + +#pragma once + +#include + +namespace xo { + namespace scm { + struct SetupStringtable2 { + public: + using ACollector = xo::mm::ACollector; + + public: + /** Register object2 (facet,impl) combinations with FacetRegistry **/ + static bool register_facets(); + /** Register types with garbage collector **/ + static bool register_types(obj gc); + }; + } +} + +/* end SetupStringtable2.hpp */ diff --git a/include/xo/stringtable2/stringtable2_register_facets.hpp b/include/xo/stringtable2/stringtable2_register_facets.hpp index 36f6610..73b40ba 100644 --- a/include/xo/stringtable2/stringtable2_register_facets.hpp +++ b/include/xo/stringtable2/stringtable2_register_facets.hpp @@ -7,8 +7,6 @@ namespace xo { namespace scm { - /** Register object2 (facet,impl) combinations with FacetRegistry **/ - bool stringtable2_register_facets(); } } diff --git a/include/xo/stringtable2/stringtable2_register_types.hpp b/include/xo/stringtable2/stringtable2_register_types.hpp index 724d247..bfebba8 100644 --- a/include/xo/stringtable2/stringtable2_register_types.hpp +++ b/include/xo/stringtable2/stringtable2_register_types.hpp @@ -9,8 +9,6 @@ namespace xo { namespace scm { - /** Register stringtable2 (facet,impl) combinations with FacetRegistry **/ - bool stringtable2_register_types(obj gc); } } diff --git a/src/stringtable2/CMakeLists.txt b/src/stringtable2/CMakeLists.txt index cdf1f22..4504874 100644 --- a/src/stringtable2/CMakeLists.txt +++ b/src/stringtable2/CMakeLists.txt @@ -3,7 +3,8 @@ set(SELF_LIB xo_stringtable2) set(SELF_SRCS init_stringtable2.cpp - stringtable2_register_facets.cpp + SetupStringtable2.cpp + #stringtable2_register_facets.cpp stringtable2_register_types.cpp StringTable.cpp diff --git a/src/stringtable2/SetupStringtable2.cpp b/src/stringtable2/SetupStringtable2.cpp new file mode 100644 index 0000000..2c43a16 --- /dev/null +++ b/src/stringtable2/SetupStringtable2.cpp @@ -0,0 +1,55 @@ +/** @file SetupStringtable2.cpp + * + * @author Roland Conybeare, Mar 2026 + **/ + +#include "SetupStringtable2.hpp" + +#include +#include + +#include +#include + +namespace xo { + using xo::print::APrintable; + using xo::mm::ACollector; + using xo::mm::AGCObject; + using xo::scm::DString; + using xo::facet::FacetRegistry; + using xo::facet::typeseq; + using xo::facet::impl_for; + + namespace scm { + bool + SetupStringtable2::register_facets() + { + scope log(XO_DEBUG(true)); + + FacetRegistry::register_impl(); + FacetRegistry::register_impl(); + + FacetRegistry::register_impl(); + FacetRegistry::register_impl(); + + log && log(xtag("DString.tseq", typeseq::id())); + + return true; + } + + bool + SetupStringtable2::register_types(obj gc) + { + scope log(XO_DEBUG(true)); + + bool ok = true; + + ok &= gc.install_type(impl_for()); + ok &= gc.install_type(impl_for()); + + return ok; + } + } /*namespace scm*/ +} /*namespace xo*/ + +/* end SetupStringtable2.cpp */ diff --git a/src/stringtable2/init_stringtable2.cpp b/src/stringtable2/init_stringtable2.cpp index 26d84ab..2b09c58 100644 --- a/src/stringtable2/init_stringtable2.cpp +++ b/src/stringtable2/init_stringtable2.cpp @@ -4,24 +4,21 @@ **/ #include "init_stringtable2.hpp" -#include "stringtable2_register_facets.hpp" -#include "stringtable2_register_types.hpp" +#include "SetupStringtable2.hpp" #include -//n#include #include #include namespace xo { - using xo::scm::stringtable2_register_facets; - using xo::scm::stringtable2_register_types; + using xo::scm::SetupStringtable2; using xo::mm::CollectorTypeRegistry; void InitSubsys::init() { - stringtable2_register_facets(); + SetupStringtable2::register_facets(); - CollectorTypeRegistry::instance().register_types(&stringtable2_register_types); + CollectorTypeRegistry::instance().register_types(&SetupStringtable2::register_types); } InitEvidence diff --git a/src/stringtable2/stringtable2_register_facets.cpp b/src/stringtable2/stringtable2_register_facets.cpp index e6a97df..b2d59ce 100644 --- a/src/stringtable2/stringtable2_register_facets.cpp +++ b/src/stringtable2/stringtable2_register_facets.cpp @@ -3,6 +3,7 @@ * @author Roland Conybeare, Mar 2026 **/ +#ifdef NOPE #include "stringtable2_register_facets.hpp" #include @@ -36,5 +37,6 @@ namespace xo { } } /*namespace scm*/ } /*namespace xo*/ +#endif /* end stringtable2_register_facets.cpp */ diff --git a/src/stringtable2/stringtable2_register_types.cpp b/src/stringtable2/stringtable2_register_types.cpp index 94afd40..6eb9502 100644 --- a/src/stringtable2/stringtable2_register_types.cpp +++ b/src/stringtable2/stringtable2_register_types.cpp @@ -17,18 +17,6 @@ namespace xo { using xo::scope; namespace scm { - bool - stringtable2_register_types(obj gc) - { - scope log(XO_DEBUG(true)); - - bool ok = true; - - ok &= gc.install_type(impl_for()); - ok &= gc.install_type(impl_for()); - - return ok; - } } } /*namespace xo*/