OLD | NEW |
---|---|
1 {#--- Begin #} | 1 {#--- Begin #} |
2 function {{struct.name}}() { | 2 function {{struct.name}}() { |
3 this.initDefaults_(); | 3 this.initDefaults_(); |
4 } | 4 } |
5 | 5 |
6 {#--- Enums #} | 6 {#--- Enums #} |
7 {%- from "enum_definition.tmpl" import enum_def %} | 7 {%- from "enum_definition.tmpl" import enum_def %} |
8 {% for enum in struct.enums %} | 8 {% for enum in struct.enums %} |
9 {{enum_def("%s.%s"|format(struct.name, enum.name), enum, module)}} | 9 {{enum_def("%s.%s"|format(struct.name, enum.name), enum, module)}} |
10 {% endfor %} | 10 {% endfor %} |
11 | 11 |
12 {#--- Constants #} | 12 {#--- Constants #} |
13 {% for constant in struct.constants %} | 13 {% for constant in struct.constants %} |
14 {{struct.name}}.{{constant.name}} = {{constant.value|expression_to_text}}; | 14 {{struct.name}}.{{constant.name}} = {{constant.value|expression_to_text}}; |
15 {% endfor %} | 15 {% endfor %} |
16 | 16 |
17 {#--- Set up defaults #} | 17 {#--- Set up defaults #} |
18 {{struct.name}}.prototype.initDefaults_ = function() { | 18 {{struct.name}}.prototype.initDefaults_ = function() { |
19 {%- for packed_field in struct.packed.packed_fields %} | 19 {%- for packed_field in struct.packed.packed_fields %} |
20 this.{{packed_field.field.name}} = {{packed_field.field|default_value}}; | 20 this.{{packed_field.field.name}} = {{packed_field.field|default_value}}; |
21 {%- endfor %} | 21 {%- endfor %} |
22 }; | 22 }; |
23 | 23 |
24 {#--- Validation #} | |
25 | |
26 {{struct.name}}.validate = function(messageValidator, offset) { | |
27 var err; | |
28 | |
29 err = messageValidator.validateStructHeader(offset, {{struct.name}}.encodedS ize, {{struct.packed.packed_fields|length}}); | |
yzshen1
2014/08/14 18:02:22
80 chars, please. (here and elsewhere)
hansmuller
2014/08/14 23:51:46
See earlier comments
| |
30 if (err !== validator.validationError.NONE) | |
31 return err; | |
32 {%- for packed_field in struct.packed.packed_fields %} | |
33 {%- set fieldName = packed_field.field.name %} | |
yzshen1
2014/08/14 18:02:22
nit: I think the naming convention is field_name (
hansmuller
2014/08/14 23:51:46
Done.
| |
34 {%- if packed_field.field|is_string_pointer_field %} | |
35 // validate {{struct.name}}.{{fieldName}} | |
36 err = messageValidator.validateStringPointer({{packed_field|field_offset}}) | |
37 if (err !== validator.validationError.NONE) | |
yzshen1
2014/08/14 18:02:22
I think line 37-38 can be moved outside of the {%i
hansmuller
2014/08/14 23:51:46
Yes! That makes this template much easier to read.
| |
38 return err; | |
39 {%- elif packed_field.field|is_array_pointer_field %} | |
40 // validate {{struct.name}}.{{fieldName}} | |
41 err = messageValidator.validateArrayPointer({{packed_field|validate_array_pa rams}}); | |
42 if (err !== validator.validationError.NONE) | |
43 return err; | |
44 {%- elif packed_field.field|is_struct_pointer_field %} | |
45 // validate {{struct.name}}.{{fieldName}} | |
46 err = messageValidator.validateStructPointer({{packed_field|validate_struct_ params}}); | |
47 if (err !== validator.validationError.NONE) | |
48 return err; | |
49 {%- elif packed_field.field|is_handle_field %} | |
50 // validate {{struct.name}}.{{fieldName}} | |
51 err = messageValidator.validateHandle({{packed_field|field_offset}}) | |
52 if (err !== validator.validationError.NONE) | |
53 return err; | |
54 {%- endif %} | |
55 {%- endfor %} | |
56 | |
57 return validator.validationError.NONE; | |
58 }; | |
59 | |
24 {#--- Encoding and decoding #} | 60 {#--- Encoding and decoding #} |
25 | 61 |
26 {{struct.name}}.encodedSize = codec.kStructHeaderSize + {{struct.packed|payloa d_size}}; | 62 {{struct.name}}.encodedSize = codec.kStructHeaderSize + {{struct.packed|payloa d_size}}; |
27 | 63 |
28 {{struct.name}}.decode = function(decoder) { | 64 {{struct.name}}.decode = function(decoder) { |
29 var packed; | 65 var packed; |
30 var val = new {{struct.name}}(); | 66 var val = new {{struct.name}}(); |
31 var numberOfBytes = decoder.readUint32(); | 67 var numberOfBytes = decoder.readUint32(); |
32 var numberOfFields = decoder.readUint32(); | 68 var numberOfFields = decoder.readUint32(); |
33 {%- for byte in struct.bytes %} | 69 {%- for byte in struct.bytes %} |
(...skipping 29 matching lines...) Expand all Loading... | |
63 {%- else %} | 99 {%- else %} |
64 {%- for packed_field in byte.packed_fields %} | 100 {%- for packed_field in byte.packed_fields %} |
65 encoder.{{packed_field.field.kind|encode_snippet}}val.{{packed_field.field.n ame}}); | 101 encoder.{{packed_field.field.kind|encode_snippet}}val.{{packed_field.field.n ame}}); |
66 {%- endfor %} | 102 {%- endfor %} |
67 {%- endif %} | 103 {%- endif %} |
68 {%- if byte.is_padding %} | 104 {%- if byte.is_padding %} |
69 encoder.skip(1); | 105 encoder.skip(1); |
70 {%- endif %} | 106 {%- endif %} |
71 {%- endfor %} | 107 {%- endfor %} |
72 }; | 108 }; |
OLD | NEW |