OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "core/mojo/Mojo.h" | 5 #include "core/mojo/Mojo.h" |
6 | 6 |
7 #include "core/mojo/MojoCreateMessagePipeResult.h" | 7 #include "core/mojo/MojoCreateMessagePipeResult.h" |
| 8 #include "core/mojo/MojoCreateSharedBufferResult.h" |
8 #include "core/mojo/MojoHandle.h" | 9 #include "core/mojo/MojoHandle.h" |
9 | 10 |
10 namespace blink { | 11 namespace blink { |
11 | 12 |
12 // static | 13 // static |
13 void Mojo::createMessagePipe(MojoCreateMessagePipeResult& resultDict) { | 14 void Mojo::createMessagePipe(MojoCreateMessagePipeResult& resultDict) { |
14 MojoCreateMessagePipeOptions options = {0}; | 15 MojoCreateMessagePipeOptions options = {0}; |
15 options.struct_size = sizeof(::MojoCreateMessagePipeOptions); | 16 options.struct_size = sizeof(::MojoCreateMessagePipeOptions); |
16 options.flags = MOJO_CREATE_MESSAGE_PIPE_OPTIONS_FLAG_NONE; | 17 options.flags = MOJO_CREATE_MESSAGE_PIPE_OPTIONS_FLAG_NONE; |
17 | 18 |
18 mojo::ScopedMessagePipeHandle handle0, handle1; | 19 mojo::ScopedMessagePipeHandle handle0, handle1; |
19 MojoResult result = mojo::CreateMessagePipe(&options, &handle0, &handle1); | 20 MojoResult result = mojo::CreateMessagePipe(&options, &handle0, &handle1); |
20 | 21 |
21 resultDict.setResult(result); | 22 resultDict.setResult(result); |
22 if (result == MOJO_RESULT_OK) { | 23 if (result == MOJO_RESULT_OK) { |
23 resultDict.setHandle0( | 24 resultDict.setHandle0( |
24 MojoHandle::create(mojo::ScopedHandle::From(std::move(handle0)))); | 25 MojoHandle::create(mojo::ScopedHandle::From(std::move(handle0)))); |
25 resultDict.setHandle1( | 26 resultDict.setHandle1( |
26 MojoHandle::create(mojo::ScopedHandle::From(std::move(handle1)))); | 27 MojoHandle::create(mojo::ScopedHandle::From(std::move(handle1)))); |
27 } | 28 } |
28 } | 29 } |
29 | 30 |
| 31 // static |
| 32 void Mojo::createSharedBuffer(unsigned numBytes, |
| 33 MojoCreateSharedBufferResult& resultDict) { |
| 34 MojoCreateSharedBufferOptions* options = nullptr; |
| 35 mojo::Handle handle; |
| 36 MojoResult result = |
| 37 MojoCreateSharedBuffer(options, numBytes, handle.mutable_value()); |
| 38 |
| 39 resultDict.setResult(result); |
| 40 if (result == MOJO_RESULT_OK) { |
| 41 resultDict.setHandle(MojoHandle::create(mojo::MakeScopedHandle(handle))); |
| 42 } |
| 43 } |
| 44 |
30 } // namespace blink | 45 } // namespace blink |
OLD | NEW |