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); |