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 | |
16 {%- endif -%} | |
17 ) { | |
18 var params = new {{interface.name}}_{{method.name}}_Params(); | 14 var params = new {{interface.name}}_{{method.name}}_Params(); |
19 {%- for parameter in method.parameters %} | 15 {%- for parameter in method.parameters %} |
20 params.{{parameter.name}} = {{parameter.name}}; | 16 params.{{parameter.name}} = {{parameter.name}}; |
21 {%- endfor %} | 17 {%- endfor %} |
22 | 18 |
23 {%- if method.response_parameters == None %} | |
24 var builder = new codec.MessageBuilder( | 19 var builder = new codec.MessageBuilder( |
25 k{{interface.name}}_{{method.name}}_Name, | 20 k{{interface.name}}_{{method.name}}_Name, |
26 codec.align({{interface.name}}_{{method.name}}_Params.encodedSize)); | 21 codec.align({{interface.name}}_{{method.name}}_Params.encodedSize)); |
27 builder.encodeStruct({{interface.name}}_{{method.name}}_Params, params); | 22 builder.encodeStruct({{interface.name}}_{{method.name}}_Params, params); |
28 var message = builder.finish(); | 23 var message = builder.finish(); |
29 this.receiver_.accept(message); | 24 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 responseParams = | |
40 reader.decodeStruct({{interface.name}}_{{method.name}}_ResponseParams)
; | |
41 closure( | |
42 {%- for parameter in method.response_parameters -%} | |
43 responseParams.{{parameter.name}}{% if not loop.last %}, {% endif %} | |
44 {%- endfor -%}); | |
45 }}); | |
46 {%- endif %} | |
47 }; | 25 }; |
48 {%- endfor %} | 26 {%- endfor %} |
49 | 27 |
50 function {{interface.name}}Stub() { | 28 function {{interface.name}}Stub() { |
51 } | 29 } |
52 | 30 |
53 {{interface.name}}Stub.prototype.accept = function(message) { | 31 {{interface.name}}Stub.prototype.accept = function(message) { |
54 var reader = new codec.MessageReader(message); | 32 var reader = new codec.MessageReader(message); |
55 switch (reader.messageName) { | 33 switch (reader.messageName) { |
56 {%- for method in interface.methods %} | 34 {%- for method in interface.methods %} |
57 {%- if method.response_parameters == None %} | |
58 case k{{interface.name}}_{{method.name}}_Name: | 35 case k{{interface.name}}_{{method.name}}_Name: |
59 var params = reader.decodeStruct({{interface.name}}_{{method.name}}_Params
); | 36 var params = reader.decodeStruct({{interface.name}}_{{method.name}}_Params
); |
60 this.{{method.name|stylize_method}}( | 37 this.{{method.name|stylize_method}}( |
61 {%- for parameter in method.parameters -%} | 38 {%- for parameter in method.parameters -%} |
62 params.{{parameter.name}}{% if not loop.last %}, {% endif %} | 39 params.{{parameter.name}}{% if not loop.last %}, {% endif %} |
63 {%- endfor %}); | 40 {%- endfor %}); |
64 return true; | 41 return true; |
65 {%- endif %} | |
66 {%- endfor %} | 42 {%- endfor %} |
67 default: | 43 default: |
68 return false; | 44 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 responseParams = | |
88 new {{interface.name}}_{{method.name}}_ResponseParams(); | |
89 {%- for parameter in method.response_parameters %} | |
90 responseParams.{{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 responseParams); | |
98 var message = builder.finish(); | |
99 responder.accept(message); | |
100 }); | |
101 return true; | |
102 {%- endif %} | |
103 {%- endfor %} | |
104 default: | |
105 return false; | |
106 } | 45 } |
107 }; | 46 }; |
108 | 47 |
109 {#--- Enums #} | 48 {#--- Enums #} |
110 {% from "enum_definition.tmpl" import enum_def -%} | 49 {% from "enum_definition.tmpl" import enum_def -%} |
111 {% for enum in interface.enums %} | 50 {% for enum in interface.enums %} |
112 {{enum_def("%sProxy.%s"|format(interface.name, enum.name), enum, module)}} | 51 {{enum_def("%sProxy.%s"|format(interface.name, enum.name), enum, module)}} |
113 {{interface.name}}Stub.{{enum.name}} = {{interface.name}}Proxy.{{enum.name}}; | 52 {{interface.name}}Stub.{{enum.name}} = {{interface.name}}Proxy.{{enum.name}}; |
114 {%- endfor %} | 53 {%- endfor %} |
OLD | NEW |