{ mode: "facet", output_cpp_dir: "src/alloc2", output_hpp_dir: "include/xo/alloc2", output_impl_subdir: "gc", includes: [ "", "", "", "", "", ], // extra includes in GCObject.hpp, if any user_hpp_includes: [ "\"gc/RCollector_aux.hpp\"", ], namespace1: "xo", namespace2: "mm", pretext: [ "namespace xo { namespace mm { class ACollector; }}", ], facet: "GCObject", detail_subdir: "gc", brief: "gc-aware object, providing collector hooks", using_doxygen: true, doc: [ "GC hooks for collector-aware data" ], types: [ // using size_type = std::size_t { name: "size_type", doc: ["type for an amount of memory"], definition: "std::size_t", }, { name: "AAllocator", doc: ["fomo allocator type"], definition: "xo::mm::AAllocator", }, { name: "ACollector", doc: ["fomo collector type"], definition: "xo::mm::ACollector", }, { name: "AGCObjectVisitor", doc: ["fomo collector type"], definition: "xo::mm::AGCObjectVisitor", }, ], const_methods: [ // size_type shallow_size() const noexcept // { // name: "shallow_size", // doc: ["memory consumption for this instance"], // return_type: "size_type", // args: [], // const: true, // noexcept: true, // attributes: [], // }, ], nonconst_methods: [ // Opaque shallow_move(obj) noexcept { name: "gco_shallow_move", doc: [ "move instance using object visitor.", "Arguably abusing the word 'visitor' here", ], return_type: "Opaque", args:[ {type: "obj", name: "gc"}, ], const: true, noexcept: true, attributes: [], }, // size_type visit_gco_children(obj) noexcept { name: "visit_gco_children", doc: [ "Invoke fn.visit_child(iface,data) for each child GCObject pointer.", "Context: provides address of data pointer so it can be updated in place", "when @p fn invokes garbage collector reentry point" ], return_type: "void", args: [ {type: "obj", name: "fn"}, ], const: true, noexcept: true, attributes: [], }, ], router_facet_explicit_content: [] }