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

Side by Side Diff: mojo/public/tools/bindings/generators/js_templates/interface_definition.tmpl

Issue 468713002: JavaScript bindings for Mojo message validation (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Skip unexpected null tests" Created 6 years, 4 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 | Annotate | Revision Log
OLDNEW
1 {%- set namespace_as_string = namespace|replace(".","::") %} 1 {%- set namespace_as_string = namespace|replace(".","::") %}
2 {%- for method in interface.methods %} 2 {%- for method in interface.methods %}
3 var k{{interface.name}}_{{method.name}}_Name = {{method.ordinal}}; 3 var k{{interface.name}}_{{method.name}}_Name = {{method.ordinal}};
4 {%- endfor %} 4 {%- endfor %}
5 5
6 function {{interface.name}}Proxy(receiver) { 6 function {{interface.name}}Proxy(receiver) {
7 this.receiver_ = receiver; 7 this.receiver_ = receiver;
8 } 8 }
9 9
10 {{interface.name}}Proxy.NAME_ = '{{namespace_as_string}}::{{interface.name}}'; 10 {{interface.name}}Proxy.NAME_ = '{{namespace_as_string}}::{{interface.name}}';
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 var message = builder.finish(); 101 var message = builder.finish();
102 responder.accept(message); 102 responder.accept(message);
103 }); 103 });
104 {%- endif %} 104 {%- endif %}
105 {%- endfor %} 105 {%- endfor %}
106 default: 106 default:
107 return Promise.reject(Error("Unhandled message: " + reader.messageName)); 107 return Promise.reject(Error("Unhandled message: " + reader.messageName));
108 } 108 }
109 }; 109 };
110 110
111 {#--- Validation #}
112
113 function validate{{interface.name}}Request(messageValidator) {
114 {%- if not(interface.methods) %}
115 return validator.validationError.NONE;
116 {%- else %}
117 var message = messageValidator.message;
118 var paramsClass = null;
119 switch (message.getName()) {
120 {%- for method in interface.methods %}
121 case k{{interface.name}}_{{method.name}}_Name:
122 {%- if method.response_parameters == None %}
123 if (!message.expectsResponse() && !message.isResponse())
124 paramsClass = {{interface.name}}_{{method.name}}_Params;
125 {%- else %}
126 if (message.expectsResponse())
127 paramsClass = {{interface.name}}_{{method.name}}_Params;
128 {%- endif %}
129 break;
130 {%- endfor %}
131 }
132 if (paramsClass === null)
133 return validator.validationError.NONE;
134 return paramsClass.validate(messageValidator, messageValidator.message.getHe aderNumBytes());
135 {%- endif %}
136 }
137
138 function validate{{interface.name}}Response(messageValidator) {
139 {%- if not(interface|has_callbacks) %}
140 return validator.validationError.NONE;
141 {%- else %}
142 var message = messageValidator.message;
143 var paramsClass = null;
144 switch (message.getName()) {
145 {%- for method in interface.methods %}
146 {%- if method.response_parameters != None %}
147 case k{{interface.name}}_{{method.name}}_Name:
148 if (message.isResponse())
149 paramsClass = {{interface.name}}_{{method.name}}_ResponseParams;
150 break;
151 {%- endif %}
152 {%- endfor %}
153 }
154 if (paramsClass === null)
155 return validator.validationError.NONE;
156 return paramsClass.validate(messageValidator, messageValidator.message.getHe aderNumBytes());
157 {%- endif %}
158 }
159
111 {#--- Enums #} 160 {#--- Enums #}
112 {% from "enum_definition.tmpl" import enum_def -%} 161 {% from "enum_definition.tmpl" import enum_def -%}
113 {% for enum in interface.enums %} 162 {% for enum in interface.enums %}
114 {{enum_def("%sProxy.%s"|format(interface.name, enum.name), enum, module)}} 163 {{enum_def("%sProxy.%s"|format(interface.name, enum.name), enum, module)}}
115 {{interface.name}}Stub.{{enum.name}} = {{interface.name}}Proxy.{{enum.name}}; 164 {{interface.name}}Stub.{{enum.name}} = {{interface.name}}Proxy.{{enum.name}};
116 {%- endfor %} 165 {%- endfor %}
117 166
118 {#--- Constants. #} 167 {#--- Constants. #}
119 {% for constant in interface.constants %} 168 {% for constant in interface.constants %}
120 {{interface.name}}Proxy.{{constant.name}} = {{constant.value|expression_to_tex t}}; 169 {{interface.name}}Proxy.{{constant.name}} = {{constant.value|expression_to_tex t}};
121 {{interface.name}}Stub.{{constant.name}} = {{interface.name}}Proxy.{{constant. name}}; 170 {{interface.name}}Stub.{{constant.name}} = {{interface.name}}Proxy.{{constant. name}};
122 {% endfor %} 171 {% endfor %}
OLDNEW
« no previous file with comments | « mojo/public/js/bindings/validator.js ('k') | mojo/public/tools/bindings/generators/js_templates/module.js.tmpl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698