diff --git a/xo-object2/include/xo/object2/SetupObject2.hpp b/xo-object2/include/xo/object2/SetupObject2.hpp new file mode 100644 index 00000000..7e6e3453 --- /dev/null +++ b/xo-object2/include/xo/object2/SetupObject2.hpp @@ -0,0 +1,23 @@ +/** @file SetupObject2.hpp + * + * @author Roland Conybeare, Jan 2026 + **/ + +#pragma once + +#include + +namespace xo { + namespace scm { + struct SetupObject2 { + public: + using ACollector = xo::mm::ACollector; + + public: + static bool register_facets(); + static bool register_types(obj gc); + }; + } +} + +/* end object2_register_facets.hpp */ diff --git a/xo-object2/include/xo/object2/object2_register_facets.hpp b/xo-object2/include/xo/object2/object2_register_facets.hpp deleted file mode 100644 index 7fb75cc7..00000000 --- a/xo-object2/include/xo/object2/object2_register_facets.hpp +++ /dev/null @@ -1,15 +0,0 @@ -/** @file object2_register_facets.hpp - * - * @author Roland Conybeare, Jan 2026 - **/ - -#pragma once - -namespace xo { - namespace scm { - /** Register object2 (facet,impl) combinations with FacetRegistry **/ - bool object2_register_facets(); - } -} - -/* end object2_register_facets.hpp */ diff --git a/xo-object2/include/xo/object2/object2_register_types.hpp b/xo-object2/include/xo/object2/object2_register_types.hpp deleted file mode 100644 index 5663b086..00000000 --- a/xo-object2/include/xo/object2/object2_register_types.hpp +++ /dev/null @@ -1,17 +0,0 @@ -/** @file object2_register_types.hpp - * - * @author Roland Conybeare, Dec 2025 - **/ - -#pragma once - -#include - -namespace xo { - namespace scm { - /** Register object2 (facet,impl) combinations with FacetRegistry **/ - bool object2_register_types(obj gc); - } -} - -/* end object2_register_types.hpp */ diff --git a/xo-object2/src/object2/CMakeLists.txt b/xo-object2/src/object2/CMakeLists.txt index b2370cf4..77816186 100644 --- a/xo-object2/src/object2/CMakeLists.txt +++ b/xo-object2/src/object2/CMakeLists.txt @@ -3,8 +3,7 @@ set(SELF_LIB xo_object2) set(SELF_SRCS init_object2.cpp - object2_register_types.cpp - object2_register_facets.cpp + SetupObject2.cpp GCObjectConversion_DFloat.cpp GCObjectConversion_DInteger.cpp diff --git a/xo-object2/src/object2/object2_register_facets.cpp b/xo-object2/src/object2/SetupObject2.cpp similarity index 79% rename from xo-object2/src/object2/object2_register_facets.cpp rename to xo-object2/src/object2/SetupObject2.cpp index 3710b1d7..e2d8c2ee 100644 --- a/xo-object2/src/object2/object2_register_facets.cpp +++ b/xo-object2/src/object2/SetupObject2.cpp @@ -1,9 +1,9 @@ -/** @file object2_register_facets.cpp +/** @file SetupObject2.cpp * * @author Roland Conybeare, Jan 2026 **/ -#include "object2_register_facets.hpp" +#include "SetupObject2.hpp" #include "RuntimeError.hpp" #include @@ -21,6 +21,7 @@ namespace xo { using xo::print::APrintable; + using xo::mm::ACollector; using xo::mm::AAllocator; using xo::mm::AGCObject; using xo::scm::DList; @@ -30,11 +31,12 @@ namespace xo { using xo::scm::DArray; using xo::facet::DVariantPlaceholder; using xo::facet::FacetRegistry; + using xo::facet::impl_for; using xo::facet::typeseq; namespace scm { bool - object2_register_facets() + SetupObject2::register_facets() { scope log(XO_DEBUG(true)); @@ -81,7 +83,24 @@ namespace xo { return true; } + + bool + SetupObject2::register_types(obj gc) + { + scope log(XO_DEBUG(true)); + + bool ok = true; + + ok &= gc.install_type(impl_for()); + ok &= gc.install_type(impl_for()); + ok &= gc.install_type(impl_for()); + ok &= gc.install_type(impl_for()); + ok &= gc.install_type(impl_for()); + ok &= gc.install_type(impl_for()); + + return ok; + } } /*namespace scm*/ } /*namespace xo*/ -/* end object2_register_facets.cpp */ +/* end SetupObject2.cpp */ diff --git a/xo-object2/src/object2/init_object2.cpp b/xo-object2/src/object2/init_object2.cpp index 7e4f6e4d..1a2ed770 100644 --- a/xo-object2/src/object2/init_object2.cpp +++ b/xo-object2/src/object2/init_object2.cpp @@ -4,23 +4,21 @@ **/ #include "init_object2.hpp" -#include "object2_register_facets.hpp" -#include "object2_register_types.hpp" +#include "SetupObject2.hpp" #include #include #include namespace xo { - using xo::scm::object2_register_facets; - using xo::scm::object2_register_types; + using xo::scm::SetupObject2; using xo::mm::CollectorTypeRegistry; void InitSubsys::init() { - object2_register_facets(); + SetupObject2::register_facets(); - CollectorTypeRegistry::instance().register_types(&object2_register_types); + CollectorTypeRegistry::instance().register_types(&SetupObject2::register_types); } InitEvidence diff --git a/xo-object2/src/object2/object2_register_types.cpp b/xo-object2/src/object2/object2_register_types.cpp deleted file mode 100644 index 20ae3b8e..00000000 --- a/xo-object2/src/object2/object2_register_types.cpp +++ /dev/null @@ -1,50 +0,0 @@ -/** @file object2_register_types.cpp - * - * @author Roland Conybeare, Dec 2025 - **/ - -#include "object2_register_types.hpp" - -#include "boolean/IGCObject_DBoolean.hpp" -#include "number/IGCObject_DFloat.hpp" -#include "number/IGCObject_DInteger.hpp" -#include "string/IGCObject_DString.hpp" -#include "list/IGCObject_DList.hpp" -#include "array/IGCObject_DArray.hpp" -#include "dictionary/IGCObject_DDictionary.hpp" - -#include -#include - -namespace xo { - using xo::mm::ACollector; - using xo::mm::AGCObject; - using xo::facet::impl_for; - using xo::scope; - - namespace scm { - bool - object2_register_types(obj gc) - { - scope log(XO_DEBUG(true)); - - bool ok = true; - - ok &= gc.install_type(impl_for()); - - ok &= gc.install_type(impl_for()); - - ok &= gc.install_type(impl_for()); - - ok &= gc.install_type(impl_for()); - - ok &= gc.install_type(impl_for()); - - ok &= gc.install_type(impl_for()); - - return ok; - } - } -} /*namespace xo*/ - -/* end object2_register_types.cpp */ diff --git a/xo-object2/utest/Printable.test.cpp b/xo-object2/utest/Printable.test.cpp index edf230a4..d31f8456 100644 --- a/xo-object2/utest/Printable.test.cpp +++ b/xo-object2/utest/Printable.test.cpp @@ -5,16 +5,13 @@ #include "ListOps.hpp" #include "DList.hpp" -#include "object2_register_types.hpp" -#include "object2_register_facets.hpp" +#include "SetupObject2.hpp" #include #include #include #include -//#include -//#include #include #include @@ -35,8 +32,7 @@ #include namespace ut { - using xo::scm::object2_register_types; - using xo::scm::object2_register_facets; + using xo::scm::SetupObject2; using xo::scm::ListOps; using xo::scm::DList; using xo::scm::DInteger; @@ -89,7 +85,7 @@ namespace ut { constexpr bool c_debug_flag = true; scope log(XO_DEBUG(c_debug_flag)); - bool ok = object2_register_facets(); + bool ok = SetupObject2::register_facets(); REQUIRE(ok); FacetRegistry::instance().dump(&std::cerr); @@ -114,7 +110,7 @@ namespace ut { auto gc_o = with_facet::mkobj(&gc); auto c_o = with_facet::mkobj(&gc); - bool ok = object2_register_types(c_o); + bool ok = SetupObject2::register_types(c_o); REQUIRE(ok); auto l0_o = ListOps::nil(); diff --git a/xo-object2/utest/X1Collector.test.cpp b/xo-object2/utest/X1Collector.test.cpp index 55e0107c..882bb758 100644 --- a/xo-object2/utest/X1Collector.test.cpp +++ b/xo-object2/utest/X1Collector.test.cpp @@ -9,7 +9,6 @@ #include "DInteger.hpp" #include "DList.hpp" #include "DArray.hpp" -#include "object2_register_types.hpp" #include "number/IGCObject_DFloat.hpp" #include "number/IGCObject_DInteger.hpp" @@ -34,7 +33,6 @@ namespace ut { using xo::S_object2_tag; - using xo::scm::object2_register_types; using xo::scm::ListOps; using xo::scm::DList; using xo::scm::DArray;