xo-numeric/xo-gc/idl/GCObject.json5

80 lines
2.1 KiB
Text

{
mode: "facet",
includes: [
"<xo/alloc2/Allocator.hpp>",
"<xo/gc/Collector.hpp>",
"<cstdint>",
"<cstddef>",
],
// extra includes in GCObject.hpp, if any
user_hpp_includes: [],
namespace1: "xo",
namespace2: "mm",
pretext: [
"namespace xo { namespace mm { struct ACollector; }}",
],
facet: "GCObject",
detail_subdir: "detail",
brief: "xxx",
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",
},
],
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: [],
},
// Opaque shallow_copy(obj<AAllocator>>) const noexcept
{
name: "shallow_copy",
doc: ["copy instance using allocator"],
return_type: "Opaque",
args:[
{type: "obj<AAllocator>", name: "mm"},
],
const: true,
noexcept: true,
attributes: [],
},
],
nonconst_methods: [
// size_type forward_children(obj<ACollector>) const noexcept
{
name: "forward_children",
doc: ["during GC: forward immdiate children"],
return_type: "size_type",
args: [
{type: "obj<ACollector>", name: "gc"},
],
const: true,
noexcept: true,
attributes: [],
},
],
router_facet_explicit_content: []
}