| OLD | NEW |
| 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 {% import "mojom_type_macros.tmpl" as mojom_type_macros %} |
| 6 | 7 |
| 7 {%- macro declare_params(struct) %} | 8 {%- macro declare_params(struct) %} |
| 8 {%- for field in struct.fields -%} | 9 {%- for field in struct.fields -%} |
| 9 {{field|name(False)}} {{field.kind|go_type}}{% if not loop.last %}, {% e
ndif %} | 10 {{field|name(False)}} {{field.kind|go_type}}{% if not loop.last %}, {% e
ndif %} |
| 10 {%- endfor %} | 11 {%- endfor %} |
| 11 {%- endmacro %} | 12 {%- endmacro %} |
| 12 | 13 |
| 13 | 14 |
| 14 | 15 |
| 15 {% macro declare_request_params(method) %} | 16 {% macro declare_request_params(method) %} |
| (...skipping 12 matching lines...) Expand all Loading... |
| 28 bindings.MessageNoFlag | 29 bindings.MessageNoFlag |
| 29 {%- elif is_response: -%} | 30 {%- elif is_response: -%} |
| 30 bindings.MessageIsResponseFlag | 31 bindings.MessageIsResponseFlag |
| 31 {%- else -%} | 32 {%- else -%} |
| 32 bindings.MessageExpectsResponseFlag | 33 bindings.MessageExpectsResponseFlag |
| 33 {%- endif -%} | 34 {%- endif -%} |
| 34 {%- endmacro -%} | 35 {%- endmacro -%} |
| 35 | 36 |
| 36 | 37 |
| 37 | 38 |
| 38 {% macro define(interface) %} | 39 {% macro define(interface, descpkg, typepkg, pkg) %} |
| 39 type {{interface|name}} interface { | 40 type {{interface|name}} interface { |
| 40 {% for method in interface.methods %} | 41 {% for method in interface.methods %} |
| 41 {{method|name}}{{declare_request_params(method)}} | 42 {{method|name}}{{declare_request_params(method)}} |
| 42 {% endfor %} | 43 {% endfor %} |
| 43 } | 44 } |
| 44 | 45 |
| 45 var {{interface|name(False)}}_Name = "{{interface.module.namespace|replace(".","
::")}}::{{interface.name}}" | 46 var {{interface|name(False)}}_Name = "{{interface.module.namespace|replace(".","
::")}}::{{interface.name}}" |
| 46 | 47 |
| 47 type {{interface|name}}_Request bindings.InterfaceRequest | 48 type {{interface|name}}_Request bindings.InterfaceRequest |
| 48 | 49 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 61 } | 62 } |
| 62 | 63 |
| 63 type {{interface|name}}_Factory interface { | 64 type {{interface|name}}_Factory interface { |
| 64 Create(request {{interface|name}}_Request) | 65 Create(request {{interface|name}}_Request) |
| 65 } | 66 } |
| 66 | 67 |
| 67 func (f *{{interface|name}}_ServiceFactory) Name() string { | 68 func (f *{{interface|name}}_ServiceFactory) Name() string { |
| 68 return {{interface|name(False)}}_Name | 69 return {{interface|name(False)}}_Name |
| 69 } | 70 } |
| 70 | 71 |
| 72 func (f *{{interface|name}}_ServiceFactory) ServiceDescription() {{descpkg}}Serv
iceDescription { |
| 73 return &{{interface|name}}_ServiceDescription{} |
| 74 } |
| 75 |
| 71 func (f *{{interface|name}}_ServiceFactory) Create(messagePipe system.MessagePip
eHandle) { | 76 func (f *{{interface|name}}_ServiceFactory) Create(messagePipe system.MessagePip
eHandle) { |
| 72 request := {{interface|name}}_Request{bindings.NewMessagePipeHandleOwner
(messagePipe)} | 77 request := {{interface|name}}_Request{bindings.NewMessagePipeHandleOwner
(messagePipe)} |
| 73 f.Delegate.Create(request) | 78 f.Delegate.Create(request) |
| 74 } | 79 } |
| 75 | 80 |
| 76 // CreateMessagePipeFor{{interface|name}} creates a message pipe for use with th
e | 81 // CreateMessagePipeFor{{interface|name}} creates a message pipe for use with th
e |
| 77 // {{interface|name}} interface with a {{interface|name}}_Request on one end and
a {{interface|name}}_Pointer on the other. | 82 // {{interface|name}} interface with a {{interface|name}}_Request on one end and
a {{interface|name}}_Pointer on the other. |
| 78 func CreateMessagePipeFor{{interface|name}}() ({{interface|name}}_Request, {{int
erface|name}}_Pointer) { | 83 func CreateMessagePipeFor{{interface|name}}() ({{interface|name}}_Request, {{int
erface|name}}_Pointer) { |
| 79 r, p := bindings.CreateMessagePipeForMojoInterface() | 84 r, p := bindings.CreateMessagePipeForMojoInterface() |
| 80 return {{interface|name}}_Request(r), {{interface|name}}_Pointer(p) | 85 return {{interface|name}}_Request(r), {{interface|name}}_Pointer(p) |
| (...skipping 13 matching lines...) Expand all Loading... |
| 94 bindings.NewRouter(p.PassMessagePipe(), waiter), | 99 bindings.NewRouter(p.PassMessagePipe(), waiter), |
| 95 bindings.NewCounter(), | 100 bindings.NewCounter(), |
| 96 } | 101 } |
| 97 } | 102 } |
| 98 | 103 |
| 99 func (p *{{interface|name}}_Proxy) Close_Proxy() { | 104 func (p *{{interface|name}}_Proxy) Close_Proxy() { |
| 100 p.router.Close() | 105 p.router.Close() |
| 101 } | 106 } |
| 102 | 107 |
| 103 {% for method in interface.methods %} | 108 {% for method in interface.methods %} |
| 104 {{struct_macros.define(method.param_struct, False)}} | 109 {{struct_macros.define(method.param_struct, typepkg, pkg, False)}} |
| 105 {%- if method|has_response %} | 110 {%- if method|has_response %} |
| 106 {{struct_macros.define(method.response_param_struct, False)}} | 111 {{struct_macros.define(method.response_param_struct, typepkg, pkg, False)}} |
| 107 {%- endif %} | 112 {%- endif %} |
| 108 func (p *{{interface|name}}_Proxy) {{method|name}}{{declare_request_params(metho
d)}} { | 113 func (p *{{interface|name}}_Proxy) {{method|name}}{{declare_request_params(metho
d)}} { |
| 109 payload := &{{method.param_struct|name(False)}}{ | 114 payload := &{{method.param_struct|name(False)}}{ |
| 110 {% for field in (method.param_struct).fields %} | 115 {% for field in (method.param_struct).fields %} |
| 111 {{field|name(False)}}, | 116 {{field|name(False)}}, |
| 112 {% endfor %} | 117 {% endfor %} |
| 113 } | 118 } |
| 114 header := bindings.MessageHeader{ | 119 header := bindings.MessageHeader{ |
| 115 Type: {{interface|name(False)}}_{{method|name}}_Name, | 120 Type: {{interface|name(False)}}_{{method|name}}_Name, |
| 116 Flags: {{flags(method, False)}}, | 121 Flags: {{flags(method, False)}}, |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 163 type {{interface|name(False)}}_Stub struct { | 168 type {{interface|name(False)}}_Stub struct { |
| 164 connector *bindings.Connector | 169 connector *bindings.Connector |
| 165 impl {{interface|name}} | 170 impl {{interface|name}} |
| 166 } | 171 } |
| 167 | 172 |
| 168 func New{{interface|name}}Stub(r {{interface|name}}_Request, impl {{interface|na
me}}, waiter bindings.AsyncWaiter) *bindings.Stub { | 173 func New{{interface|name}}Stub(r {{interface|name}}_Request, impl {{interface|na
me}}, waiter bindings.AsyncWaiter) *bindings.Stub { |
| 169 connector := bindings.NewConnector(r.PassMessagePipe(), waiter) | 174 connector := bindings.NewConnector(r.PassMessagePipe(), waiter) |
| 170 return bindings.NewStub(connector, &{{interface|name(False)}}_Stub{conne
ctor, impl}) | 175 return bindings.NewStub(connector, &{{interface|name(False)}}_Stub{conne
ctor, impl}) |
| 171 } | 176 } |
| 172 | 177 |
| 178 {{ mojom_type_macros.writeMojomTypeDef(typepkg, interface, pkg, exported) }} |
| 179 |
| 180 func (f *{{interface|name}}_Request) ServiceDescription() {{descpkg}}ServiceDesc
ription { |
| 181 return &{{interface|name}}_ServiceDescription{} |
| 182 } |
| 183 |
| 184 |
| 185 type {{interface|name}}_ServiceDescription struct{} |
| 186 |
| 187 func (sd *{{interface|name}}_ServiceDescription) GetTopLevelInterface() (outMojo
mInterface {{typepkg}}MojomInterface, err error) { |
| 188 return {{interface|mojom_type_identifier}}(), nil |
| 189 } |
| 190 |
| 191 func (sd *{{interface|name}}_ServiceDescription) GetTypeDefinition(inTypeKey str
ing) (outType mojom_types.UserDefinedType, err error) { |
| 192 if udt, ok := Descriptor()[inTypeKey]; ok { |
| 193 return udt, nil |
| 194 } |
| 195 return nil, fmt.Errorf("%s_ServiceDescription does not recognize %s", "{
{interface|name}}", inTypeKey) |
| 196 } |
| 197 |
| 198 func (sd *{{interface|name}}_ServiceDescription) GetAllTypeDefinitions() (outDef
initions *map[string]mojom_types.UserDefinedType, err error) { |
| 199 o := Descriptor() |
| 200 return &o, nil |
| 201 } |
| 202 |
| 203 var _ {{descpkg}}ServiceDescription = (*{{interface|name}}_ServiceDescription)(n
il) |
| 204 |
| 205 |
| 173 func (s *{{interface|name(False)}}_Stub) Accept(message *bindings.Message) (err
error) { | 206 func (s *{{interface|name(False)}}_Stub) Accept(message *bindings.Message) (err
error) { |
| 174 switch message.Header.Type { | 207 switch message.Header.Type { |
| 175 {% for method in interface.methods %} | 208 {% for method in interface.methods %} |
| 176 case {{interface|name(False)}}_{{method|name}}_Name: | 209 case {{interface|name(False)}}_{{method|name}}_Name: |
| 177 {% if method|has_response %} | 210 {% if method|has_response %} |
| 178 if message.Header.Flags != bindings.MessageExpectsResponseFlag { | 211 if message.Header.Flags != bindings.MessageExpectsResponseFlag { |
| 179 {% else %} | 212 {% else %} |
| 180 if message.Header.Flags != bindings.MessageNoFlag { | 213 if message.Header.Flags != bindings.MessageNoFlag { |
| 181 {% endif %} | 214 {% endif %} |
| 182 return &bindings.ValidationError{bindings.MessageHeaderI
nvalidFlags, | 215 return &bindings.ValidationError{bindings.MessageHeaderI
nvalidFlags, |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 220 default: | 253 default: |
| 221 return &bindings.ValidationError{ | 254 return &bindings.ValidationError{ |
| 222 bindings.MessageHeaderUnknownMethod, | 255 bindings.MessageHeaderUnknownMethod, |
| 223 fmt.Sprintf("unknown method %v", message.Header.Type), | 256 fmt.Sprintf("unknown method %v", message.Header.Type), |
| 224 } | 257 } |
| 225 } | 258 } |
| 226 return | 259 return |
| 227 } | 260 } |
| 228 | 261 |
| 229 {% endmacro %} | 262 {% endmacro %} |
| OLD | NEW |