OLD | NEW |
---|---|
1 {%- for method in interface.methods %} | 1 {%- for method in interface.methods %} |
2 var k{{interface.name}}_{{method.name}}_Name = {{method.ordinal}}; | 2 var k{{interface.name}}_{{method.name}}_Name = {{method.ordinal}}; |
3 {%- endfor %} | 3 {%- endfor %} |
4 | 4 |
5 function {{interface.name}}Proxy(receiver) { | 5 function {{interface.name}}Proxy(receiver) { |
6 this.receiver_ = receiver; | 6 this.receiver_ = receiver; |
7 } | 7 } |
8 | 8 |
9 {%- for method in interface.methods %} | 9 {%- for method in interface.methods %} |
10 {{interface.name}}Proxy.prototype.{{method.name|stylize_method}} = function( | 10 {{interface.name}}Proxy.prototype.{{method.name|stylize_method}} = function( |
11 {%- for parameter in method.parameters -%} | 11 {%- for parameter in method.parameters -%} |
12 {{parameter.name}}{% if not loop.last %}, {% endif %} | 12 {{parameter.name}}{% if not loop.last %}, {% endif %} |
13 {%- endfor %}) { | 13 {%- endfor -%} |
14 {%- if method.response_parameters != None -%} | |
15 , closure | |
abarth-chromium
2014/03/26 18:26:32
Why not use promises instead of callbacks? This J
| |
16 {%- endif -%} | |
17 ) { | |
14 var params = new {{interface.name}}_{{method.name}}_Params(); | 18 var params = new {{interface.name}}_{{method.name}}_Params(); |
15 {%- for parameter in method.parameters %} | 19 {%- for parameter in method.parameters %} |
16 params.{{parameter.name}} = {{parameter.name}}; | 20 params.{{parameter.name}} = {{parameter.name}}; |
17 {%- endfor %} | 21 {%- endfor %} |
18 | 22 |
23 {%- if method.response_parameters == None %} | |
19 var builder = new codec.MessageBuilder( | 24 var builder = new codec.MessageBuilder( |
20 k{{interface.name}}_{{method.name}}_Name, | 25 k{{interface.name}}_{{method.name}}_Name, |
21 codec.align({{interface.name}}_{{method.name}}_Params.encodedSize)); | 26 codec.align({{interface.name}}_{{method.name}}_Params.encodedSize)); |
22 builder.encodeStruct({{interface.name}}_{{method.name}}_Params, params); | 27 builder.encodeStruct({{interface.name}}_{{method.name}}_Params, params); |
23 var message = builder.finish(); | 28 var message = builder.finish(); |
24 this.receiver_.accept(message); | 29 this.receiver_.accept(message); |
30 {%- else %} | |
31 var builder = new codec.MessageWithRequestIDBuilder( | |
32 k{{interface.name}}_{{method.name}}_Name, | |
33 codec.align({{interface.name}}_{{method.name}}_Params.encodedSize), | |
34 codec.kMessageExpectsResponse, 0); | |
35 builder.encodeStruct({{interface.name}}_{{method.name}}_Params, params); | |
36 var message = builder.finish(); | |
37 this.receiver_.acceptWithResponder(message, { accept: function(message) { | |
38 var reader = new codec.MessageReader(message); | |
39 var response_params = | |
abarth-chromium
2014/03/26 18:26:32
responseParams
| |
40 reader.decodeStruct({{interface.name}}_{{method.name}}_ResponseParams) ; | |
41 closure( | |
42 {%- for parameter in method.response_parameters -%} | |
43 response_params.{{parameter.name}}{% if not loop.last %}, {% endif %} | |
44 {%- endfor -%}); | |
45 }}); | |
46 {%- endif %} | |
25 }; | 47 }; |
26 {%- endfor %} | 48 {%- endfor %} |
27 | 49 |
28 function {{interface.name}}Stub() { | 50 function {{interface.name}}Stub() { |
29 } | 51 } |
30 | 52 |
31 {{interface.name}}Stub.prototype.accept = function(message) { | 53 {{interface.name}}Stub.prototype.accept = function(message) { |
32 var reader = new codec.MessageReader(message); | 54 var reader = new codec.MessageReader(message); |
33 switch (reader.messageName) { | 55 switch (reader.messageName) { |
34 {%- for method in interface.methods %} | 56 {%- for method in interface.methods %} |
57 {%- if method.response_parameters == None %} | |
Matt Perry
2014/03/26 18:19:43
is the idea that if the method has response_parame
| |
35 case k{{interface.name}}_{{method.name}}_Name: | 58 case k{{interface.name}}_{{method.name}}_Name: |
36 var params = reader.decodeStruct({{interface.name}}_{{method.name}}_Params ); | 59 var params = reader.decodeStruct({{interface.name}}_{{method.name}}_Params ); |
37 this.{{method.name|stylize_method}}( | 60 this.{{method.name|stylize_method}}( |
38 {%- for parameter in method.parameters -%} | 61 {%- for parameter in method.parameters -%} |
39 params.{{parameter.name}}{% if not loop.last %}, {% endif %} | 62 params.{{parameter.name}}{% if not loop.last %}, {% endif %} |
40 {%- endfor %}); | 63 {%- endfor %}); |
41 return true; | 64 return true; |
65 {%- endif %} | |
42 {%- endfor %} | 66 {%- endfor %} |
43 default: | 67 default: |
44 return false; | 68 return false; |
69 } | |
70 }; | |
71 | |
72 {{interface.name}}Stub.prototype.acceptWithResponder = | |
73 function(message, responder) { | |
74 var reader = new codec.MessageReader(message); | |
75 switch (reader.messageName) { | |
76 {%- for method in interface.methods %} | |
77 {%- if method.response_parameters != None %} | |
78 case k{{interface.name}}_{{method.name}}_Name: | |
79 var params = reader.decodeStruct({{interface.name}}_{{method.name}}_Params ); | |
80 this.{{method.name|stylize_method}}( | |
81 {%- for parameter in method.parameters -%} | |
82 params.{{parameter.name}}, | |
83 {%- endfor %} function ( | |
84 {%- for parameter in method.response_parameters -%} | |
85 {{parameter.name}}{% if not loop.last %}, {% endif -%} | |
86 {%- endfor -%}) { | |
87 var response_params = | |
abarth-chromium
2014/03/26 18:26:32
responseParams
| |
88 new {{interface.name}}_{{method.name}}_ResponseParams(); | |
89 {%- for parameter in method.response_parameters %} | |
90 response_params.{{parameter.name}} = {{parameter.name}}; | |
91 {%- endfor %} | |
92 var builder = new codec.MessageWithRequestIDBuilder( | |
93 k{{interface.name}}_{{method.name}}_Name, | |
94 codec.align({{interface.name}}_{{method.name}}_ResponseParams.encode dSize), | |
95 codec.kMessageIsResponse, reader.requestID); | |
96 builder.encodeStruct({{interface.name}}_{{method.name}}_ResponseParams, | |
97 response_params); | |
98 var message = builder.finish(); | |
99 responder.accept(message); | |
100 }); | |
101 return true; | |
102 {%- endif %} | |
103 {%- endfor %} | |
104 default: | |
105 return false; | |
45 } | 106 } |
46 }; | 107 }; |
47 | 108 |
48 {#--- Enums #} | 109 {#--- Enums #} |
49 {% from "enum_definition.tmpl" import enum_def -%} | 110 {% from "enum_definition.tmpl" import enum_def -%} |
50 {% for enum in interface.enums %} | 111 {% for enum in interface.enums %} |
51 {{enum_def("%sProxy.%s"|format(interface.name, enum.name), enum, module)}} | 112 {{enum_def("%sProxy.%s"|format(interface.name, enum.name), enum, module)}} |
52 {{interface.name}}Stub.{{enum.name}} = {{interface.name}}Proxy.{{enum.name}}; | 113 {{interface.name}}Stub.{{enum.name}} = {{interface.name}}Proxy.{{enum.name}}; |
53 {%- endfor %} | 114 {%- endfor %} |
OLD | NEW |