| Index: third_party/mojo/src/mojo/public/cpp/system/buffer.h
|
| diff --git a/third_party/mojo/src/mojo/public/cpp/system/buffer.h b/third_party/mojo/src/mojo/public/cpp/system/buffer.h
|
| index 68172973ca93a2c1355001d835c8cb3a7b3ec668..9458c0aec7bd804f7027a5c1c897f206b0a2daa4 100644
|
| --- a/third_party/mojo/src/mojo/public/cpp/system/buffer.h
|
| +++ b/third_party/mojo/src/mojo/public/cpp/system/buffer.h
|
| @@ -2,6 +2,13 @@
|
| // 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_
|
|
|
| @@ -13,8 +20,8 @@
|
|
|
| namespace mojo {
|
|
|
| -// SharedBufferHandle ----------------------------------------------------------
|
| -
|
| +// A strongly-typed representation of a |MojoHandle| referring to a shared
|
| +// buffer.
|
| class SharedBufferHandle : public Handle {
|
| public:
|
| SharedBufferHandle() {}
|
| @@ -30,6 +37,8 @@ typedef ScopedHandleBase<SharedBufferHandle> ScopedSharedBufferHandle;
|
| static_assert(sizeof(ScopedSharedBufferHandle) == sizeof(SharedBufferHandle),
|
| "Bad size for C++ ScopedSharedBufferHandle");
|
|
|
| +// Creates a shared buffer. See |MojoCreateSharedBuffer()| for complete
|
| +// documentation.
|
| inline MojoResult CreateSharedBuffer(
|
| const MojoCreateSharedBufferOptions* options,
|
| uint64_t num_bytes,
|
| @@ -44,10 +53,17 @@ inline MojoResult CreateSharedBuffer(
|
| return rv;
|
| }
|
|
|
| +// Duplicates a handle to a buffer, most commonly so that the buffer can be
|
| +// shared with other applications. See |MojoDuplicateBufferHandle()| for
|
| +// complete documentation.
|
| +//
|
| +// TODO(ggowan): Rename this to DuplicateBufferHandle since it is making another
|
| +// handle to the same buffer, not duplicating the buffer itself.
|
| +//
|
| // TODO(vtl): This (and also the functions below) are templatized to allow for
|
| // future/other buffer types. A bit "safer" would be to overload this function
|
| -// manually. (The template enforces that the in and out handles to be of the
|
| -// same type.)
|
| +// manually. (The template enforces that the in and out handles be of the same
|
| +// type.)
|
| template <class BufferHandleType>
|
| inline MojoResult DuplicateBuffer(
|
| BufferHandleType buffer,
|
| @@ -63,6 +79,8 @@ inline MojoResult DuplicateBuffer(
|
| return rv;
|
| }
|
|
|
| +// Maps a part of a buffer (specified by |buffer|, |offset|, and |num_bytes|)
|
| +// into memory. See |MojoMapBuffer()| for complete documentation.
|
| template <class BufferHandleType>
|
| inline MojoResult MapBuffer(BufferHandleType buffer,
|
| uint64_t offset,
|
| @@ -73,6 +91,8 @@ inline MojoResult MapBuffer(BufferHandleType buffer,
|
| return MojoMapBuffer(buffer.value(), offset, num_bytes, pointer, flags);
|
| }
|
|
|
| +// Unmaps a part of a buffer that was previously mapped with |MapBuffer()|.
|
| +// See |MojoUnmapBuffer()| for complete documentation.
|
| inline MojoResult UnmapBuffer(void* pointer) {
|
| assert(pointer);
|
| return MojoUnmapBuffer(pointer);
|
|
|