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

Side by Side Diff: mojo/public/tools/bindings/generators/go_templates/interface.tmpl

Issue 974153003: Go bindings: Generate a CreateMessagePipeFor{{interface}} helper (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 {% import "struct.tmpl" as struct_macros %} 5 {% import "struct.tmpl" as struct_macros %}
6 6
7 {%- macro declare_params(struct) %} 7 {%- macro declare_params(struct) %}
8 {%- for field in struct.fields -%} 8 {%- for field in struct.fields -%}
9 {{field|name(False)}} {{field.kind|go_type}}{% if not loop.last %}, {% e ndif %} 9 {{field|name(False)}} {{field.kind|go_type}}{% if not loop.last %}, {% e ndif %}
10 {%- endfor %} 10 {%- endfor %}
(...skipping 27 matching lines...) Expand all
38 {% macro define(interface) %} 38 {% macro define(interface) %}
39 type {{interface|name}} interface { 39 type {{interface|name}} interface {
40 {% for method in interface.methods %} 40 {% for method in interface.methods %}
41 {{method|name}}{{declare_request_params(method)}} 41 {{method|name}}{{declare_request_params(method)}}
42 {% endfor %} 42 {% endfor %}
43 } 43 }
44 44
45 type {{interface|name}}Request bindings.InterfaceRequest 45 type {{interface|name}}Request bindings.InterfaceRequest
46 type {{interface|name}}Pointer bindings.InterfacePointer 46 type {{interface|name}}Pointer bindings.InterfacePointer
47 47
48 // CreateMessagePipeFor{{interface|name}} creates a message pipe for use with th e
49 // {{interface|name}} interface with a {{interface|name}}Request on one end and a {{interface|name}}Pointer on the other.
50 func CreateMessagePipeFor{{interface|name}}() ({{interface|name}}Request, {{inte rface|name}}Pointer) {
51 r, p := bindings.CreateMessagePipeForMojoInterface()
52 return {{interface|name}}Request(r), {{interface|name}}Pointer(p)
53 }
54
48 {% for method in interface.methods %} 55 {% for method in interface.methods %}
49 const {{interface|name(False)}}_{{method|name}}_Name = {{method.ordinal}} 56 const {{interface|name(False)}}_{{method|name}}_Name = {{method.ordinal}}
50 {% endfor %} 57 {% endfor %}
51 58
52 type {{interface|name}}Proxy struct { 59 type {{interface|name}}Proxy struct {
53 router *bindings.Router 60 router *bindings.Router
54 ids *bindings.Counter 61 ids *bindings.Counter
55 } 62 }
56 63
57 func New{{interface|name}}Proxy(p {{interface|name}}Pointer, waiter bindings.Asy ncWaiter) *{{interface|name}}Proxy { 64 func New{{interface|name}}Proxy(p {{interface|name}}Pointer, waiter bindings.Asy ncWaiter) *{{interface|name}}Proxy {
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 return s.connector.WriteMessage(message) 163 return s.connector.WriteMessage(message)
157 {% endif %} 164 {% endif %}
158 {% endfor %} 165 {% endfor %}
159 default: 166 default:
160 return fmt.Errorf("unsupported request type %v", message.Header. Type); 167 return fmt.Errorf("unsupported request type %v", message.Header. Type);
161 } 168 }
162 return 169 return
163 } 170 }
164 171
165 {% endmacro %} 172 {% endmacro %}
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698