// Copyright 2018 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef BASE_MEMORY_UNSAFE_SHARED_MEMORY_REGION_H_ #define BASE_MEMORY_UNSAFE_SHARED_MEMORY_REGION_H_ #include "base/base_export.h" #include "base/check.h" #include "base/memory/platform_shared_memory_region.h" #include "base/memory/shared_memory_mapping.h" #include <stdint.h> namespace base { // Scoped move-only handle to a region of platform shared memory. The instance // owns the platform handle it wraps. Mappings created by this region are // writable. These mappings remain valid even after the region handle is moved // or destroyed. // // NOTE: UnsafeSharedMemoryRegion cannot be converted to a read-only region. Use // with caution as the region will be writable to any process with a handle to // the region. // // Use this if and only if the following is true: // - You do not need to share the region as read-only, and, // - You need to have several instances of the region simultaneously, possibly // in different processes, that can produce writable mappings. class BASE_EXPORT UnsafeSharedMemoryRegion { … }; } // namespace base #endif // BASE_MEMORY_UNSAFE_SHARED_MEMORY_REGION_H_