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 ) { |
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 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 %} |
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 %} |
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 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; |
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 |