diff options
Diffstat (limited to 'mojo/public/cpp/system/buffer.h')
-rw-r--r-- | mojo/public/cpp/system/buffer.h | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/mojo/public/cpp/system/buffer.h b/mojo/public/cpp/system/buffer.h deleted file mode 100644 index 1ae923c..0000000 --- a/mojo/public/cpp/system/buffer.h +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// This file provides a C++ wrapping around the Mojo C API for shared buffers, -// replacing the prefix of "Mojo" with a "mojo" namespace, and using more -// strongly-typed representations of |MojoHandle|s. -// -// Please see "mojo/public/c/system/buffer.h" for complete documentation of the -// API. - -#ifndef MOJO_PUBLIC_CPP_SYSTEM_BUFFER_H_ -#define MOJO_PUBLIC_CPP_SYSTEM_BUFFER_H_ - -#include <stdint.h> - -#include <memory> - -#include "base/compiler_specific.h" -#include "base/logging.h" -#include "mojo/public/c/system/buffer.h" -#include "mojo/public/cpp/system/handle.h" -#include "mojo/public/cpp/system/system_export.h" - -namespace mojo { -namespace internal { - -struct Unmapper { - void operator()(void* buffer) { - MojoResult result = MojoUnmapBuffer(buffer); - DCHECK_EQ(MOJO_RESULT_OK, result); - } -}; - -} // namespace internal - -using ScopedSharedBufferMapping = std::unique_ptr<void, internal::Unmapper>; - -class SharedBufferHandle; - -typedef ScopedHandleBase<SharedBufferHandle> ScopedSharedBufferHandle; - -// A strongly-typed representation of a |MojoHandle| referring to a shared -// buffer. -class MOJO_CPP_SYSTEM_EXPORT SharedBufferHandle - : NON_EXPORTED_BASE(public Handle) { - public: - enum class AccessMode { - READ_WRITE, - READ_ONLY, - }; - - SharedBufferHandle() {} - explicit SharedBufferHandle(MojoHandle value) : Handle(value) {} - - // Copying and assignment allowed. - - // Creates a new SharedBufferHandle. Returns an invalid handle on failure. - static ScopedSharedBufferHandle Create(uint64_t num_bytes); - - // Clones this shared buffer handle. If |access_mode| is READ_ONLY or this is - // a read-only handle, the new handle will be read-only. On failure, this will - // return an empty result. - ScopedSharedBufferHandle Clone(AccessMode = AccessMode::READ_WRITE) const; - - // Maps |size| bytes of this shared buffer. On failure, this will return a - // null mapping. - ScopedSharedBufferMapping Map(uint64_t size) const; - - // Maps |size| bytes of this shared buffer, starting |offset| bytes into the - // buffer. On failure, this will return a null mapping. - ScopedSharedBufferMapping MapAtOffset(uint64_t size, uint64_t offset) const; -}; - -static_assert(sizeof(SharedBufferHandle) == sizeof(Handle), - "Bad size for C++ SharedBufferHandle"); -static_assert(sizeof(ScopedSharedBufferHandle) == sizeof(SharedBufferHandle), - "Bad size for C++ ScopedSharedBufferHandle"); - -} // namespace mojo - -#endif // MOJO_PUBLIC_CPP_SYSTEM_BUFFER_H_ |