From 00c0d78199fcfbbb20828be5e06fd2d271fa4c1e Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Sun, 24 Mar 2024 23:49:26 +0100 Subject: Initial commit --- deimos/core/api_registry.cpp | 47 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 deimos/core/api_registry.cpp (limited to 'deimos/core/api_registry.cpp') diff --git a/deimos/core/api_registry.cpp b/deimos/core/api_registry.cpp new file mode 100644 index 0000000..aa993e0 --- /dev/null +++ b/deimos/core/api_registry.cpp @@ -0,0 +1,47 @@ +#include "deimos/core/api_registry.h" +#include "deimos/core/allocator.h" +#include "deimos/core/hash.h" + +namespace deimos +{ + +AllocatorApi* BootstrapAllocatorApi(); + +struct ApiEntry +{ + const ApiEntry* next{}; + IdName name; + void* impl; + + ApiEntry(const IdName& name, void* impl) : + name{name}, impl{impl} + {} +}; + +class ApiRegistryImpl: public ApiRegistry +{ + IAllocator* m_allocator; + +public: + explicit ApiRegistryImpl(IAllocator* allocator) : + m_allocator{allocator} + {} + + void Set(const IdName& name, void* impl) final + { + } +}; + +ApiRegistry* InitializeGlobalApiRegistry() +{ + AllocatorApi* allocator_api = BootstrapAllocatorApi(); + IAllocator* allocator = allocator_api->system; + ApiRegistry* api_registry = allocator->New(); + + api_registry->Set(allocator_api); + + return api_registry; +} + +} // namespace deimos + -- cgit