Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(481)

Side by Side Diff: mojo/public/cpp/bindings/lib/control_message_proxy.cc

Issue 2259283003: Mojo C++ bindings: share DataView class between chromium and blink variants. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@92_change_traits_param
Patch Set: . Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "mojo/public/cpp/bindings/lib/control_message_proxy.h" 5 #include "mojo/public/cpp/bindings/lib/control_message_proxy.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 21 matching lines...) Expand all
32 RunCallback callback_; 32 RunCallback callback_;
33 DISALLOW_COPY_AND_ASSIGN(RunResponseForwardToCallback); 33 DISALLOW_COPY_AND_ASSIGN(RunResponseForwardToCallback);
34 }; 34 };
35 35
36 bool RunResponseForwardToCallback::Accept(Message* message) { 36 bool RunResponseForwardToCallback::Accept(Message* message) {
37 RunResponseMessageParams_Data* params = 37 RunResponseMessageParams_Data* params =
38 reinterpret_cast<RunResponseMessageParams_Data*>( 38 reinterpret_cast<RunResponseMessageParams_Data*>(
39 message->mutable_payload()); 39 message->mutable_payload());
40 RunResponseMessageParamsPtr params_ptr; 40 RunResponseMessageParamsPtr params_ptr;
41 SerializationContext context; 41 SerializationContext context;
42 Deserialize<RunResponseMessageParamsPtr>(params, &params_ptr, &context); 42 Deserialize<RunResponseMessageParamsDataView>(params, &params_ptr, &context);
43 43
44 callback_.Run(std::move(params_ptr->query_version_result)); 44 callback_.Run(std::move(params_ptr->query_version_result));
45 return true; 45 return true;
46 } 46 }
47 47
48 void SendRunMessage(MessageReceiverWithResponder* receiver, 48 void SendRunMessage(MessageReceiverWithResponder* receiver,
49 QueryVersionPtr query_version, 49 QueryVersionPtr query_version,
50 const RunCallback& callback, 50 const RunCallback& callback,
51 SerializationContext* context) { 51 SerializationContext* context) {
52 RunMessageParamsPtr params_ptr(RunMessageParams::New()); 52 RunMessageParamsPtr params_ptr(RunMessageParams::New());
53 params_ptr->reserved0 = 16u; 53 params_ptr->reserved0 = 16u;
54 params_ptr->reserved1 = 0u; 54 params_ptr->reserved1 = 0u;
55 params_ptr->query_version = std::move(query_version); 55 params_ptr->query_version = std::move(query_version);
56 56
57 size_t size = PrepareToSerialize<RunMessageParamsPtr>(params_ptr, context); 57 size_t size =
58 PrepareToSerialize<RunMessageParamsDataView>(params_ptr, context);
58 RequestMessageBuilder builder(kRunMessageId, size); 59 RequestMessageBuilder builder(kRunMessageId, size);
59 60
60 RunMessageParams_Data* params = nullptr; 61 RunMessageParams_Data* params = nullptr;
61 Serialize<RunMessageParamsPtr>(params_ptr, builder.buffer(), &params, 62 Serialize<RunMessageParamsDataView>(params_ptr, builder.buffer(), &params,
62 context); 63 context);
63 MessageReceiver* responder = new RunResponseForwardToCallback(callback); 64 MessageReceiver* responder = new RunResponseForwardToCallback(callback);
64 if (!receiver->AcceptWithResponder(builder.message(), responder)) 65 if (!receiver->AcceptWithResponder(builder.message(), responder))
65 delete responder; 66 delete responder;
66 } 67 }
67 68
68 void SendRunOrClosePipeMessage(MessageReceiverWithResponder* receiver, 69 void SendRunOrClosePipeMessage(MessageReceiverWithResponder* receiver,
69 RequireVersionPtr require_version, 70 RequireVersionPtr require_version,
70 SerializationContext* context) { 71 SerializationContext* context) {
71 RunOrClosePipeMessageParamsPtr params_ptr(RunOrClosePipeMessageParams::New()); 72 RunOrClosePipeMessageParamsPtr params_ptr(RunOrClosePipeMessageParams::New());
72 params_ptr->reserved0 = 16u; 73 params_ptr->reserved0 = 16u;
73 params_ptr->reserved1 = 0u; 74 params_ptr->reserved1 = 0u;
74 params_ptr->require_version = std::move(require_version); 75 params_ptr->require_version = std::move(require_version);
75 76
76 size_t size = 77 size_t size = PrepareToSerialize<RunOrClosePipeMessageParamsDataView>(
77 PrepareToSerialize<RunOrClosePipeMessageParamsPtr>(params_ptr, context); 78 params_ptr, context);
78 MessageBuilder builder(kRunOrClosePipeMessageId, size); 79 MessageBuilder builder(kRunOrClosePipeMessageId, size);
79 80
80 RunOrClosePipeMessageParams_Data* params = nullptr; 81 RunOrClosePipeMessageParams_Data* params = nullptr;
81 Serialize<RunOrClosePipeMessageParamsPtr>(params_ptr, builder.buffer(), 82 Serialize<RunOrClosePipeMessageParamsDataView>(params_ptr, builder.buffer(),
82 &params, context); 83 &params, context);
83 bool ok = receiver->Accept(builder.message()); 84 bool ok = receiver->Accept(builder.message());
84 ALLOW_UNUSED_LOCAL(ok); 85 ALLOW_UNUSED_LOCAL(ok);
85 } 86 }
86 87
87 void RunVersionCallback(const base::Callback<void(uint32_t)>& callback, 88 void RunVersionCallback(const base::Callback<void(uint32_t)>& callback,
88 QueryVersionResultPtr query_version_result) { 89 QueryVersionResultPtr query_version_result) {
89 callback.Run(query_version_result->version); 90 callback.Run(query_version_result->version);
90 } 91 }
91 92
92 } // namespace 93 } // namespace
93 94
94 ControlMessageProxy::ControlMessageProxy(MessageReceiverWithResponder* receiver) 95 ControlMessageProxy::ControlMessageProxy(MessageReceiverWithResponder* receiver)
95 : receiver_(receiver) { 96 : receiver_(receiver) {
96 } 97 }
97 98
98 void ControlMessageProxy::QueryVersion( 99 void ControlMessageProxy::QueryVersion(
99 const base::Callback<void(uint32_t)>& callback) { 100 const base::Callback<void(uint32_t)>& callback) {
100 SendRunMessage(receiver_, QueryVersion::New(), 101 SendRunMessage(receiver_, QueryVersion::New(),
101 base::Bind(&RunVersionCallback, callback), &context_); 102 base::Bind(&RunVersionCallback, callback), &context_);
102 } 103 }
103 104
104 void ControlMessageProxy::RequireVersion(uint32_t version) { 105 void ControlMessageProxy::RequireVersion(uint32_t version) {
105 RequireVersionPtr require_version(RequireVersion::New()); 106 RequireVersionPtr require_version(RequireVersion::New());
106 require_version->version = version; 107 require_version->version = version;
107 SendRunOrClosePipeMessage(receiver_, std::move(require_version), &context_); 108 SendRunOrClosePipeMessage(receiver_, std::move(require_version), &context_);
108 } 109 }
109 110
110 } // namespace internal 111 } // namespace internal
111 } // namespace mojo 112 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/public/cpp/bindings/lib/control_message_handler.cc ('k') | mojo/public/cpp/bindings/lib/handle_interface_serialization.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698