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

Unified Diff: third_party/mojo/src/mojo/public/tools/bindings/generators/go_templates/interface.tmpl

Issue 1101303002: Update mojo sdk to rev e7270700d671fa8e458b4d8c9e47f7bcfb65da0b (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Actualy provide a default TaskTracker impl Created 5 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: third_party/mojo/src/mojo/public/tools/bindings/generators/go_templates/interface.tmpl
diff --git a/third_party/mojo/src/mojo/public/tools/bindings/generators/go_templates/interface.tmpl b/third_party/mojo/src/mojo/public/tools/bindings/generators/go_templates/interface.tmpl
index 4d4ea394f8935516399206a13d260a1df60c84c9..9c378735b32cb802e1b9a1b1d0efb6511998de7c 100644
--- a/third_party/mojo/src/mojo/public/tools/bindings/generators/go_templates/interface.tmpl
+++ b/third_party/mojo/src/mojo/public/tools/bindings/generators/go_templates/interface.tmpl
@@ -81,7 +81,7 @@ func CreateMessagePipeFor{{interface|name}}() ({{interface|name}}Request, {{inte
}
{% for method in interface.methods %}
-const {{interface|name(False)}}_{{method|name}}_Name = {{method.ordinal}}
+const {{interface|name(False)}}_{{method|name}}_Name uint32 = {{method.ordinal}}
{% endfor %}
type {{interface|name}}Proxy struct {
@@ -130,9 +130,20 @@ func (p *{{interface|name}}Proxy) {{method|name}}{{declare_request_params(method
p.Close_proxy()
return
}
+ if readResult.Message.Header.Flags != bindings.MessageIsResponseFlag {
+ err = &bindings.ValidationError{bindings.MessageHeaderInvalidFlags,
+ fmt.Sprintf("invalid message header flag: %v", readResult.Message.Header.Flags),
+ }
+ return
+ }
+ if got, want := readResult.Message.Header.Type, {{interface|name(False)}}_{{method|name}}_Name; got != want {
+ err = &bindings.ValidationError{bindings.MessageHeaderUnknownMethod,
+ fmt.Sprintf("invalid method in response: expected %v, got %v", want, got),
+ }
+ return
+ }
var response {{method.response_param_struct|name(False)}}
if err = readResult.Message.DecodePayload(&response); err != nil {
- err = fmt.Errorf("can't decode response: %v", err.Error())
p.Close_proxy()
return
}
@@ -163,9 +174,18 @@ func (s *{{interface|name(False)}}Stub) Accept(message *bindings.Message) (err e
switch message.Header.Type {
{% for method in interface.methods %}
case {{interface|name(False)}}_{{method|name}}_Name:
+{% if method.response_parameters %}
+ if message.Header.Flags != bindings.MessageExpectsResponseFlag {
+{% else %}
+ if message.Header.Flags != bindings.MessageNoFlag {
+{% endif %}
+ return &bindings.ValidationError{bindings.MessageHeaderInvalidFlags,
+ fmt.Sprintf("invalid message header flag: %v", message.Header.Flags),
+ }
+ }
var request {{method.param_struct|name(False)}}
if err := message.DecodePayload(&request); err != nil {
- return fmt.Errorf("can't decode request: %v", err.Error())
+ return err
}
{% if method.response_parameters %}
var response {{method.response_param_struct|name(False)}}
@@ -192,13 +212,16 @@ func (s *{{interface|name(False)}}Stub) Accept(message *bindings.Message) (err e
}
message, err = bindings.EncodeMessage(header, &response)
if err != nil {
- return fmt.Errorf("can't encode response: %v", err.Error())
+ return err
}
return s.connector.WriteMessage(message)
{% endif %}
{% endfor %}
default:
- return fmt.Errorf("unsupported request type %v", message.Header.Type);
+ return &bindings.ValidationError{
+ bindings.MessageHeaderUnknownMethod,
+ fmt.Sprintf("unknown method %v", message.Header.Type),
+ }
}
return
}

Powered by Google App Engine
This is Rietveld 408576698