Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(429)

Side by Side Diff: mojo/public/tools/bindings/generators/js_templates/struct_definition.tmpl

Issue 814543006: Move //mojo/{public, edk} underneath //third_party (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 {#--- Begin #}
2 function {{struct.name}}(values) {
3 this.initDefaults_();
4 this.initFields_(values);
5 }
6
7 {#--- Enums #}
8 {%- from "enum_definition.tmpl" import enum_def %}
9 {% for enum in struct.enums %}
10 {{enum_def("%s.%s"|format(struct.name, enum.name), enum)}}
11 {%- endfor %}
12
13 {#--- Constants #}
14 {% for constant in struct.constants %}
15 {{struct.name}}.{{constant.name}} = {{constant.value|expression_to_text}};
16 {%- endfor %}
17
18 {#--- initDefaults() #}
19 {{struct.name}}.prototype.initDefaults_ = function() {
20 {%- for packed_field in struct.packed.packed_fields %}
21 this.{{packed_field.field.name}} = {{packed_field.field|default_value}};
22 {%- endfor %}
23 };
24
25 {#--- initFields() #}
26 {{struct.name}}.prototype.initFields_ = function(fields) {
27 for(var field in fields) {
28 if (this.hasOwnProperty(field))
29 this[field] = fields[field];
30 }
31 };
32
33 {#--- Validation #}
34
35 {{struct.name}}.validate = function(messageValidator, offset) {
36 var err;
37 {% macro check_err() -%}
38 if (err !== validator.validationError.NONE)
39 return err;
40 {%- endmacro %}
41 err = messageValidator.validateStructHeader(offset, {{struct.name}}.encodedS ize, {{struct.packed.packed_fields|length}});
42 {{check_err()}}
43
44 {%- for packed_field in struct.packed.packed_fields %}
45 {%- set field_name = packed_field.field.name %}
46 {%- if packed_field.field|is_string_pointer_field %}
47 // validate {{struct.name}}.{{field_name}}
48 err = messageValidator.validateStringPointer({{packed_field|validate_string_ params}})
49 {{check_err()}}
50 {%- elif packed_field.field|is_array_pointer_field %}
51 // validate {{struct.name}}.{{field_name}}
52 err = messageValidator.validateArrayPointer({{packed_field|validate_array_pa rams}});
53 {{check_err()}}
54 {%- elif packed_field.field|is_struct_pointer_field %}
55 // validate {{struct.name}}.{{field_name}}
56 err = messageValidator.validateStructPointer({{packed_field|validate_struct_ params}});
57 {{check_err()}}
58 {%- elif packed_field.field|is_map_pointer_field %}
59 // validate {{struct.name}}.{{field_name}}
60 err = messageValidator.validateMapPointer({{packed_field|validate_map_params }});
61 {{check_err()}}
62 {%- elif packed_field.field|is_handle_field %}
63 // validate {{struct.name}}.{{field_name}}
64 err = messageValidator.validateHandle({{packed_field|validate_handle_params} })
65 {{check_err()}}
66 {%- endif %}
67 {%- endfor %}
68
69 return validator.validationError.NONE;
70 };
71
72 {#--- Encoding and decoding #}
73
74 {{struct.name}}.encodedSize = codec.kStructHeaderSize + {{struct.packed|payloa d_size}};
75
76 {{struct.name}}.decode = function(decoder) {
77 var packed;
78 var val = new {{struct.name}}();
79 var numberOfBytes = decoder.readUint32();
80 var numberOfFields = decoder.readUint32();
81 {%- for byte in struct.bytes %}
82 {%- if byte.packed_fields|length > 1 %}
83 packed = decoder.readUint8();
84 {%- for packed_field in byte.packed_fields %}
85 val.{{packed_field.field.name}} = (packed >> {{packed_field.bit}}) & 1 ? tru e : false;
86 {%- endfor %}
87 {%- else %}
88 {%- for packed_field in byte.packed_fields %}
89 val.{{packed_field.field.name}} = decoder.{{packed_field.field.kind|decode_s nippet}};
90 {%- endfor %}
91 {%- endif %}
92 {%- if byte.is_padding %}
93 decoder.skip(1);
94 {%- endif %}
95 {%- endfor %}
96 return val;
97 };
98
99 {{struct.name}}.encode = function(encoder, val) {
100 var packed;
101 encoder.writeUint32({{struct.name}}.encodedSize);
102 encoder.writeUint32({{struct.packed.packed_fields|length}});
103
104 {%- for byte in struct.bytes %}
105 {%- if byte.packed_fields|length > 1 %}
106 packed = 0;
107 {%- for packed_field in byte.packed_fields %}
108 packed |= (val.{{packed_field.field.name}} & 1) << {{packed_field.bit}}
109 {%- endfor %}
110 encoder.writeUint8(packed);
111 {%- else %}
112 {%- for packed_field in byte.packed_fields %}
113 encoder.{{packed_field.field.kind|encode_snippet}}val.{{packed_field.field.n ame}});
114 {%- endfor %}
115 {%- endif %}
116 {%- if byte.is_padding %}
117 encoder.skip(1);
118 {%- endif %}
119 {%- endfor %}
120 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698