| 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_util_macros.tmpl" as util %} |
| 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 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 94 bindings.NewRouter(p.PassMessagePipe(), waiter), | 95 bindings.NewRouter(p.PassMessagePipe(), waiter), |
| 95 bindings.NewCounter(), | 96 bindings.NewCounter(), |
| 96 } | 97 } |
| 97 } | 98 } |
| 98 | 99 |
| 99 func (p *{{interface|name}}_Proxy) Close_Proxy() { | 100 func (p *{{interface|name}}_Proxy) Close_Proxy() { |
| 100 p.router.Close() | 101 p.router.Close() |
| 101 } | 102 } |
| 102 | 103 |
| 103 {% for method in interface.methods %} | 104 {% for method in interface.methods %} |
| 104 {{struct_macros.define(method.param_struct, False)}} | 105 {{struct_macros.define(method.param_struct, typepkg, pkg, False)}} |
| 105 {%- if method|has_response %} | 106 {%- if method|has_response %} |
| 106 {{struct_macros.define(method.response_param_struct, False)}} | 107 {{struct_macros.define(method.response_param_struct, typepkg, pkg, False)}} |
| 107 {%- endif %} | 108 {%- endif %} |
| 108 func (p *{{interface|name}}_Proxy) {{method|name}}{{declare_request_params(metho
d)}} { | 109 func (p *{{interface|name}}_Proxy) {{method|name}}{{declare_request_params(metho
d)}} { |
| 109 payload := &{{method.param_struct|name(False)}}{ | 110 payload := &{{method.param_struct|name(False)}}{ |
| 110 {% for field in (method.param_struct).fields %} | 111 {% for field in (method.param_struct).fields %} |
| 111 {{field|name(False)}}, | 112 {{field|name(False)}}, |
| 112 {% endfor %} | 113 {% endfor %} |
| 113 } | 114 } |
| 114 header := bindings.MessageHeader{ | 115 header := bindings.MessageHeader{ |
| 115 Type: {{interface|name(False)}}_{{method|name}}_Name, | 116 Type: {{interface|name(False)}}_{{method|name}}_Name, |
| 116 Flags: {{flags(method, False)}}, | 117 Flags: {{flags(method, False)}}, |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 163 type {{interface|name(False)}}_Stub struct { | 164 type {{interface|name(False)}}_Stub struct { |
| 164 connector *bindings.Connector | 165 connector *bindings.Connector |
| 165 impl {{interface|name}} | 166 impl {{interface|name}} |
| 166 } | 167 } |
| 167 | 168 |
| 168 func New{{interface|name}}Stub(r {{interface|name}}_Request, impl {{interface|na
me}}, waiter bindings.AsyncWaiter) *bindings.Stub { | 169 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) | 170 connector := bindings.NewConnector(r.PassMessagePipe(), waiter) |
| 170 return bindings.NewStub(connector, &{{interface|name(False)}}_Stub{conne
ctor, impl}) | 171 return bindings.NewStub(connector, &{{interface|name(False)}}_Stub{conne
ctor, impl}) |
| 171 } | 172 } |
| 172 | 173 |
| 174 var ( |
| 175 interfaceName_{{interface|name}} = "{{interface|name}}" |
| 176 {% for method in interface.methods %} |
| 177 interfaceMethodName_{{interface|name}}_{{method|name}} = "{{method|name}
}" |
| 178 {% endfor %} |
| 179 ) |
| 180 |
| 181 func {{util.typeName(interface, typepkg, pkg)}}() {{typepkg}}MojomInterface { |
| 182 responseParamsMap := make(map[string]*{{typepkg}}MojomStruct) |
| 183 _ = responseParamsMap // To avoid the declared but unused compiler error |
| 184 {% for method in interface.methods %} |
| 185 {% if method|has_response %} |
| 186 mstruct_{{method|name}} := {{util.typeName(method.response_param_struct,
typepkg, pkg)}}() |
| 187 responseParamsMap[interfaceMethodName_{{interface|name}}_{{method|name}}
] = &mstruct_{{method|name}} |
| 188 {% endif %} |
| 189 {% endfor %} |
| 190 return {{typepkg}}MojomInterface{ |
| 191 DeclData: &{{typepkg}}DeclarationData{ |
| 192 ShortName: &interfaceName_{{interface|name}}, |
| 193 }, |
| 194 Methods: map[uint32]{{typepkg}}MojomMethod{ |
| 195 {%- for method in interface.methods -%} |
| 196 {{interface|name(False)}}_{{method|name}}_Name: {{typepk
g}}MojomMethod{ |
| 197 DeclData: &{{typepkg}}DeclarationData{ |
| 198 ShortName: &interfaceMethodName_{{interf
ace|name}}_{{method|name}}, |
| 199 }, |
| 200 Parameters: {{util.typeName(method.param_struct,
typepkg, pkg)}}(), |
| 201 ResponseParams: responseParamsMap[interfaceMetho
dName_{{interface|name}}_{{method|name}}], |
| 202 }, |
| 203 {%- endfor -%} |
| 204 }, |
| 205 } |
| 206 } |
| 207 func (r *{{interface|name}}_Request) Type() {{typepkg}}MojomInterface { |
| 208 return {{util.typeName(interface, typepkg, pkg)}}() |
| 209 } |
| 210 |
| 211 func (r *{{interface|name}}_Request) Desc() map[string]{{typepkg}}UserDefinedTyp
e { |
| 212 return Descriptor() |
| 213 } |
| 214 |
| 215 |
| 216 |
| 217 type {{interface|name}}_ServiceDescription struct{} |
| 218 |
| 219 func (sd *{{interface|name}}_ServiceDescription) GetTopLevelInterface() (outMojo
mInterface {{typepkg}}MojomInterface, err error) { |
| 220 return {{util.typeName(interface, typepkg, pkg)}}(), nil |
| 221 } |
| 222 |
| 223 func (sd *{{interface|name}}_ServiceDescription) GetTypeDefinition(inTypeKey str
ing) (outType mojom_types.UserDefinedType, err error) { |
| 224 if udt, ok := Descriptor()[inTypeKey]; ok { |
| 225 return udt, nil |
| 226 } |
| 227 return nil, fmt.Errorf("%s_ServiceDescription does not recognize %s", "{
{interface|name}}", inTypeKey) |
| 228 } |
| 229 |
| 230 func (sd *{{interface|name}}_ServiceDescription) GetAllTypeDefinitions() (outDef
initions *map[string]mojom_types.UserDefinedType, err error) { |
| 231 o := Descriptor() |
| 232 return &o, nil |
| 233 } |
| 234 |
| 235 var _ {{descpkg}}ServiceDescription = (*{{interface|name}}_ServiceDescription)(n
il) |
| 236 |
| 237 |
| 173 func (s *{{interface|name(False)}}_Stub) Accept(message *bindings.Message) (err
error) { | 238 func (s *{{interface|name(False)}}_Stub) Accept(message *bindings.Message) (err
error) { |
| 174 switch message.Header.Type { | 239 switch message.Header.Type { |
| 175 {% for method in interface.methods %} | 240 {% for method in interface.methods %} |
| 176 case {{interface|name(False)}}_{{method|name}}_Name: | 241 case {{interface|name(False)}}_{{method|name}}_Name: |
| 177 {% if method|has_response %} | 242 {% if method|has_response %} |
| 178 if message.Header.Flags != bindings.MessageExpectsResponseFlag { | 243 if message.Header.Flags != bindings.MessageExpectsResponseFlag { |
| 179 {% else %} | 244 {% else %} |
| 180 if message.Header.Flags != bindings.MessageNoFlag { | 245 if message.Header.Flags != bindings.MessageNoFlag { |
| 181 {% endif %} | 246 {% endif %} |
| 182 return &bindings.ValidationError{bindings.MessageHeaderI
nvalidFlags, | 247 return &bindings.ValidationError{bindings.MessageHeaderI
nvalidFlags, |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 220 default: | 285 default: |
| 221 return &bindings.ValidationError{ | 286 return &bindings.ValidationError{ |
| 222 bindings.MessageHeaderUnknownMethod, | 287 bindings.MessageHeaderUnknownMethod, |
| 223 fmt.Sprintf("unknown method %v", message.Header.Type), | 288 fmt.Sprintf("unknown method %v", message.Header.Type), |
| 224 } | 289 } |
| 225 } | 290 } |
| 226 return | 291 return |
| 227 } | 292 } |
| 228 | 293 |
| 229 {% endmacro %} | 294 {% endmacro %} |
| OLD | NEW |