#pragma once #include #include struct PlatformMutex { virtual ~PlatformMutex() {} }; struct PlatformScopedMutexLock { virtual ~PlatformScopedMutexLock() {} }; struct PlatformSharedMemory { virtual ~PlatformSharedMemory() {} void* data; size_t capacity; std::string name; }; std::unique_ptr CreatePlatformMutex(const std::string& name); std::unique_ptr CreatePlatformScopedMutexLock(PlatformMutex* mutex); std::unique_ptr CreatePlatformSharedMemory(const std::string& name, size_t size); std::string GetWorkingDirectory();