#ifndef BASE_MEMORY_SHARED_MEMORY_HOOKS_H_
#define BASE_MEMORY_SHARED_MEMORY_HOOKS_H_
#include "base/memory/read_only_shared_memory_region.h"
#include "base/memory/unsafe_shared_memory_region.h"
#include "base/memory/writable_shared_memory_region.h"
namespace mojo {
class SharedMemoryUtils;
namespace core::ipcz_driver {
class BaseSharedMemoryService;
}
}
namespace base {
class SharedMemoryHooks {
public:
SharedMemoryHooks() = delete;
private:
friend class SharedMemoryHooksTest;
friend mojo::SharedMemoryUtils;
friend class mojo::core::ipcz_driver::BaseSharedMemoryService;
static void SetCreateHooks(
ReadOnlySharedMemoryRegion::CreateFunction* read_only_hook,
UnsafeSharedMemoryRegion::CreateFunction* unsafe_hook,
WritableSharedMemoryRegion::CreateFunction* writable_hook) {
ReadOnlySharedMemoryRegion::set_create_hook(read_only_hook);
UnsafeSharedMemoryRegion::set_create_hook(unsafe_hook);
WritableSharedMemoryRegion::set_create_hook(writable_hook);
}
};
}
#endif