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