12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- #include "vptr_manager.h"
- #include "shm_manager.h"
- #include <stdarg.h>
- extern bg::detail::ShmContext g_shm_ctx;
- bg::detail::TypeName::TypeName(const char* type, size_t size /*= 0*/)
- {
- if(size)
- {
- snprintf(m_type, MAX_TYPE_NAME_LENGTH, "%s[%#zux]", type, size);
- }
- else
- {
- snprintf(m_type, MAX_TYPE_NAME_LENGTH, "%s", type);
- }
- }
- void bg::detail::ShmLog(ShmLogLevel level, const char* file, size_t line, const char* func, const char* fmt, ...)
- {
- va_list args; // [rsp+8h] [rbp-E8h] BYREF
- static char buf[0x2000uLL];
- va_start(args, fmt);
- vsnprintf(buf, 0x2000uLL, fmt, args);
- va_end(args);
- g_shm_ctx.logger(level, file, line, func, buf);
- }
- void bg::detail::ShmStdoutLog(ShmLogLevel level, const char* file, size_t line, const char* func, const char* msg)
- {
- static const char* levels[] = {"TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL"};
- printf(
- "[%s:%zu(%s)][%s] %s\n",
- file,
- line,
- func,
- levels[level],
- msg);
- }
- void* bg::detail::ShmAllocate(size_t bytes, const void* ptr)
- {
- return (void*)bg::ShmMalloc(bytes);
- }
- void bg::detail::ShmDeallocate(void* ptr, size_t size)
- {
- bg::ShmFree(ptr);
- }
- uint64_t bg::detail::ShmCurrentVersion()
- {
- return 0ll;
- }
- void* bg::detail::ShmAllocateRawMemory(size_t* bytes, size_t alignment)
- {
- if(g_shm_ctx.mgr)
- {
- return g_shm_ctx.mgr->AllocateRawMemory(bytes, alignment);
- }
- return nullptr;
- }
- bool bg::detail::ShmHasSingleton(const TypeName& type)
- {
- if(g_shm_ctx.mgr)
- {
- return g_shm_ctx.mgr->HasSingleton(type);
- }
- return false;
- }
- void* bg::detail::ShmGetSingleton(const TypeName& type, size_t bytes, bool* first_call)
- {
- if(g_shm_ctx.mgr)
- {
- return g_shm_ctx.mgr->GetSingleton(type, bytes, first_call);
- }
- return nullptr;
- }
- void bg::detail::ShmFreeSingleton(const TypeName& type)
- {
- if(g_shm_ctx.mgr)
- {
- return g_shm_ctx.mgr->FreeSingleton(type);
- }
- return;
- }
|