OLD | NEW |
1 {% from "constant_definition.tmpl" import constant_def %} | 1 {% from "constant_definition.tmpl" import constant_def %} |
2 {% from "enum_definition.tmpl" import enum_def %} | 2 {% from "enum_definition.tmpl" import enum_def %} |
3 | 3 |
4 {% macro encode(variable, kind, offset, bit, level=0) %} | 4 {% macro encode(variable, kind, offset, bit, level=0) %} |
5 {% if kind|is_pointer_array_kind %} | 5 {% if kind|is_pointer_array_kind %} |
6 {% set sub_kind = kind.kind %} | 6 {% set sub_kind = kind.kind %} |
7 if ({{variable}} == null) { | 7 if ({{variable}} == null) { |
8 encoder{{level}}.encodeNullPointer({{offset}}); | 8 encoder{{level}}.encodeNullPointer({{offset}}); |
9 } else { | 9 } else { |
10 org.chromium.mojo.bindings.Encoder encoder{{level + 1}} = encoder{{level}}.e
ncodePointerArray({{variable}}.length, {{offset}}); | 10 org.chromium.mojo.bindings.Encoder encoder{{level + 1}} = encoder{{level}}.e
ncodePointerArray({{variable}}.length, {{offset}}); |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
71 | 71 |
72 public static {{struct|name}} deserialize(org.chromium.mojo.bindings.Message
message) { | 72 public static {{struct|name}} deserialize(org.chromium.mojo.bindings.Message
message) { |
73 return decode(new org.chromium.mojo.bindings.Decoder(message)); | 73 return decode(new org.chromium.mojo.bindings.Decoder(message)); |
74 } | 74 } |
75 | 75 |
76 public static {{struct|name}} decode(org.chromium.mojo.bindings.Decoder deco
der0) { | 76 public static {{struct|name}} decode(org.chromium.mojo.bindings.Decoder deco
der0) { |
77 if (decoder0 == null) { | 77 if (decoder0 == null) { |
78 return null; | 78 return null; |
79 } | 79 } |
80 {{struct|name}} result = new {{struct|name}}(); | 80 {{struct|name}} result = new {{struct|name}}(); |
| 81 {% if not struct.bytes %} |
| 82 decoder0.readDataHeader(); |
| 83 {% else %} |
81 DataHeader mainDataHeader = decoder0.readDataHeader(); | 84 DataHeader mainDataHeader = decoder0.readDataHeader(); |
| 85 {% endif %} |
82 {% for byte in struct.bytes %} | 86 {% for byte in struct.bytes %} |
83 {% for packed_field in byte.packed_fields %} | 87 {% for packed_field in byte.packed_fields %} |
84 if (mainDataHeader.numFields > {{packed_field.ordinal}}) { | 88 if (mainDataHeader.numFields > {{packed_field.ordinal}}) { |
85 {{decode('result.' ~ packed_field.field|name, packed_field.field.kin
d, 8+packed_field.offset, packed_field.bit)|indent(12)}} | 89 {{decode('result.' ~ packed_field.field|name, packed_field.field.kin
d, 8+packed_field.offset, packed_field.bit)|indent(12)}} |
86 } | 90 } |
87 {% endfor %} | 91 {% endfor %} |
88 {% endfor %} | 92 {% endfor %} |
89 return result; | 93 return result; |
90 } | 94 } |
91 | 95 |
92 @Override | 96 @Override |
93 protected final void encode(org.chromium.mojo.bindings.Encoder encoder) { | 97 protected final void encode(org.chromium.mojo.bindings.Encoder encoder) { |
| 98 {% if not struct.bytes %} |
| 99 encoder.getEncoderAtDataOffset(DEFAULT_STRUCT_INFO); |
| 100 {% else %} |
94 org.chromium.mojo.bindings.Encoder encoder0 = encoder.getEncoderAtDataOf
fset(DEFAULT_STRUCT_INFO); | 101 org.chromium.mojo.bindings.Encoder encoder0 = encoder.getEncoderAtDataOf
fset(DEFAULT_STRUCT_INFO); |
| 102 {% endif %} |
95 {% for byte in struct.bytes %} | 103 {% for byte in struct.bytes %} |
96 {% for packed_field in byte.packed_fields %} | 104 {% for packed_field in byte.packed_fields %} |
97 {{encode(packed_field.field|name, packed_field.field.kind, 8+packed_fiel
d.offset, packed_field.bit)|indent(8)}} | 105 {{encode(packed_field.field|name, packed_field.field.kind, 8+packed_fiel
d.offset, packed_field.bit)|indent(8)}} |
98 {% endfor %} | 106 {% endfor %} |
99 {% endfor %} | 107 {% endfor %} |
100 } | 108 } |
101 } | 109 } |
102 {% endmacro %} | 110 {% endmacro %} |
OLD | NEW |