xo-reader2 stack: + ARuntimeContext.collector()

access Collector API (if present) from runtime context
This commit is contained in:
Roland Conybeare 2026-03-24 21:59:59 -04:00
commit 3220cb1b59
4 changed files with 19 additions and 0 deletions

View file

@ -22,12 +22,14 @@ namespace xo {
public:
using StringTable = xo::scm::StringTable;
using AAllocator = xo::mm::AAllocator;
using ACollector = xo::mm::ACollector;
using MemorySizeVisitor = xo::mm::MemorySizeVisitor;
public:
DVsmRcx(VirtualSchematikaMachine * vsm);
obj<AAllocator> allocator() const noexcept;
obj<ACollector> collector() const noexcept;
StringTable * stringtable() const noexcept;
obj<AAllocator> error_allocator() const noexcept;
void visit_pools(const MemorySizeVisitor & visitor) const;

View file

@ -40,6 +40,7 @@ namespace xo {
/** @defgroup scm-runtimecontext-dvsmrcx-type-traits **/
///@{
using AAllocator = xo::scm::ARuntimeContext::AAllocator;
using ACollector = xo::scm::ARuntimeContext::ACollector;
using MemorySizeVisitor = xo::scm::ARuntimeContext::MemorySizeVisitor;
using Copaque = xo::scm::ARuntimeContext::Copaque;
using Opaque = xo::scm::ARuntimeContext::Opaque;
@ -49,6 +50,8 @@ namespace xo {
// const methods
/** default allocator to use for objects **/
static obj<AAllocator> allocator(const DVsmRcx & self) noexcept;
/** collector facet for allocator. If non-null, same data pointer as allocator **/
static obj<ACollector> collector(const DVsmRcx & self) noexcept;
/** stringtable for unique symbols **/
static StringTable * stringtable(const DVsmRcx & self) noexcept;
/** invoke visitor for each distinct memory pool **/