OLD | NEW |
1 {%- import "interface_macros.tmpl" as interface_macros %} | 1 {%- import "interface_macros.tmpl" as interface_macros %} |
2 {%- set class_name = interface.name %} | 2 {%- set class_name = interface.name %} |
3 {%- set proxy_name = interface.name ~ "Proxy" %} | 3 {%- set proxy_name = interface.name ~ "Proxy" %} |
4 | 4 |
5 {%- macro alloc_params(parameters) %} | 5 {%- macro alloc_params(parameters) %} |
6 {%- for param in parameters %} | 6 {%- for param in parameters %} |
7 {%- if param.kind|is_object_kind %} | 7 {%- if param.kind|is_object_kind %} |
8 {{param.kind|cpp_result_type}} p{{loop.index}}; | 8 {{param.kind|cpp_result_type}} p{{loop.index}}; |
9 Deserialize_(params->{{param.name}}.ptr, &p{{loop.index}}); | 9 Deserialize_(params->{{param.name}}.ptr, &p{{loop.index}}); |
10 {% endif -%} | 10 {% endif -%} |
11 {%- endfor %} | 11 {%- endfor %} |
12 {%- endmacro %} | 12 {%- endmacro %} |
13 | 13 |
14 {%- macro pass_params(parameters) %} | 14 {%- macro pass_params(parameters) %} |
15 {%- for param in parameters %} | 15 {%- for param in parameters %} |
16 {%- if param.kind|is_string_kind -%} | 16 {%- if param.kind|is_string_kind -%} |
17 p{{loop.index}} | 17 p{{loop.index}} |
18 {%- elif param.kind|is_object_kind -%} | 18 {%- elif param.kind|is_object_kind -%} |
19 p{{loop.index}}.Pass() | 19 p{{loop.index}}.Pass() |
20 {%- elif param.kind|is_interface_kind -%} | 20 {%- elif param.kind|is_interface_kind -%} |
21 mojo::MakeProxy<{{param.kind.name}}>(mojo::MakeScopedHandle(mojo::internal::Fetc
hAndReset(¶ms->{{param.name}}))) | 21 mojo::MakeProxy<{{param.kind.name}}>(mojo::MakeScopedHandle(mojo::internal::Fetc
hAndReset(¶ms->{{param.name}}))) |
| 22 {%- elif param.kind|is_interface_request_kind -%} |
| 23 mojo::MakeRequest<{{param.kind.kind.name}}>(mojo::MakeScopedHandle(mojo::interna
l::FetchAndReset(¶ms->{{param.name}}))) |
22 {%- elif param.kind|is_handle_kind -%} | 24 {%- elif param.kind|is_handle_kind -%} |
23 mojo::MakeScopedHandle(mojo::internal::FetchAndReset(¶ms->{{param.name}})) | 25 mojo::MakeScopedHandle(mojo::internal::FetchAndReset(¶ms->{{param.name}})) |
24 {%- elif param.kind|is_enum_kind -%} | 26 {%- elif param.kind|is_enum_kind -%} |
25 static_cast<{{param.kind|cpp_wrapper_type}}>(params->{{param.name}}) | 27 static_cast<{{param.kind|cpp_wrapper_type}}>(params->{{param.name}}) |
26 {%- else -%} | 28 {%- else -%} |
27 params->{{param.name}} | 29 params->{{param.name}} |
28 {%- endif -%} | 30 {%- endif -%} |
29 {%- if not loop.last %}, {% endif %} | 31 {%- if not loop.last %}, {% endif %} |
30 {%- endfor %} | 32 {%- endfor %} |
31 {%- endmacro %} | 33 {%- endmacro %} |
(...skipping 14 matching lines...) Expand all Loading... |
46 {{params_name}}::New(builder.buffer()); | 48 {{params_name}}::New(builder.buffer()); |
47 {#--- Sets #} | 49 {#--- Sets #} |
48 {% for param in parameters %} | 50 {% for param in parameters %} |
49 {%- if param.kind|is_object_kind %} | 51 {%- if param.kind|is_object_kind %} |
50 Serialize_(mojo::internal::Forward(in_{{param.name}}), builder.buffer(), ¶
ms->{{param.name}}.ptr); | 52 Serialize_(mojo::internal::Forward(in_{{param.name}}), builder.buffer(), ¶
ms->{{param.name}}.ptr); |
51 {%- elif param.kind|is_interface_kind %} | 53 {%- elif param.kind|is_interface_kind %} |
52 if (!in_{{param.name}}.get()) { | 54 if (!in_{{param.name}}.get()) { |
53 params->{{param.name}} = mojo::MessagePipeHandle(); | 55 params->{{param.name}} = mojo::MessagePipeHandle(); |
54 } else { | 56 } else { |
55 // Delegate handle. | 57 // Delegate handle. |
56 params->{{param.name}} = | 58 params->{{param.name}} = in_{{param.name}}.PassMessagePipe().release(); |
57 in_{{param.name}}.ResetAndReturnMessagePipe().release(); | |
58 } | 59 } |
| 60 {%- elif param.kind|is_interface_request_kind %} |
| 61 // Delegate handle. |
| 62 params->{{param.name}} = in_{{param.name}}.PassMessagePipe().release(); |
59 {%- elif param.kind|is_handle_kind %} | 63 {%- elif param.kind|is_handle_kind %} |
60 params->{{param.name}} = in_{{param.name}}.release(); | 64 params->{{param.name}} = in_{{param.name}}.release(); |
61 {%- else %} | 65 {%- else %} |
62 params->{{param.name}} = in_{{param.name}}; | 66 params->{{param.name}} = in_{{param.name}}; |
63 {%- endif %} | 67 {%- endif %} |
64 {%- endfor %} | 68 {%- endfor %} |
65 mojo::Message message; | 69 mojo::Message message; |
66 params->EncodePointersAndHandles(message.mutable_handles()); | 70 params->EncodePointersAndHandles(message.mutable_handles()); |
67 builder.Finish(&message); | 71 builder.Finish(&message); |
68 {%- endmacro %} | 72 {%- endmacro %} |
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
261 {% if interface|has_callbacks %} | 265 {% if interface|has_callbacks %} |
262 {{class_name}}ResponseValidator::{{class_name}}ResponseValidator( | 266 {{class_name}}ResponseValidator::{{class_name}}ResponseValidator( |
263 mojo::MessageReceiver* sink) : MessageFilter(sink) { | 267 mojo::MessageReceiver* sink) : MessageFilter(sink) { |
264 } | 268 } |
265 | 269 |
266 bool {{class_name}}ResponseValidator::Accept(mojo::Message* message) { | 270 bool {{class_name}}ResponseValidator::Accept(mojo::Message* message) { |
267 // TODO(yzshen): implement validation logic. | 271 // TODO(yzshen): implement validation logic. |
268 return sink_->Accept(message); | 272 return sink_->Accept(message); |
269 } | 273 } |
270 {%- endif -%} | 274 {%- endif -%} |
OLD | NEW |