Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "mojo/public/cpp/system/buffer.h" | |
| 6 | |
| 7 namespace mojo { | |
| 8 | |
| 9 ScopedSharedBufferHandle SharedBufferHandle::Clone(bool read_only) const { | |
|
Ken Rockot(use gerrit already)
2016/06/03 20:14:35
optional nit: Maybe add an enum in SharedBufferHan
Sam McNally
2016/06/05 23:49:20
Done.
| |
| 10 ScopedSharedBufferHandle result; | |
| 11 if (!is_valid()) | |
| 12 return result; | |
| 13 | |
| 14 MojoDuplicateBufferHandleOptions options = { | |
| 15 sizeof(options), MOJO_DUPLICATE_BUFFER_HANDLE_OPTIONS_FLAG_NONE}; | |
| 16 if (read_only) | |
| 17 options.flags |= MOJO_DUPLICATE_BUFFER_HANDLE_OPTIONS_FLAG_READ_ONLY; | |
| 18 SharedBufferHandle result_handle; | |
| 19 MojoDuplicateBufferHandle(value(), &options, result_handle.mutable_value()); | |
| 20 result.reset(result_handle); | |
| 21 return result; | |
| 22 } | |
| 23 | |
| 24 ScopedSharedBufferMapping SharedBufferHandle::Map(uint64_t size) const { | |
| 25 return MapAtOffset(size, 0); | |
| 26 } | |
| 27 | |
| 28 ScopedSharedBufferMapping SharedBufferHandle::MapAtOffset( | |
| 29 uint64_t size, | |
| 30 uint64_t offset) const { | |
| 31 void* buffer = nullptr; | |
| 32 MojoMapBuffer(value(), offset, size, &buffer, MOJO_MAP_BUFFER_FLAG_NONE); | |
| 33 return ScopedSharedBufferMapping(buffer); | |
| 34 } | |
| 35 | |
| 36 } // namespace mojo | |
| OLD | NEW |