| OLD | NEW |
| 1 class {{struct.name}} { | 1 class {{struct.name}} { |
| 2 public: | 2 public: |
| 3 typedef internal::{{struct.name}}_Data Data; | 3 typedef internal::{{struct.name}}_Data Data; |
| 4 | 4 |
| 5 {#--- Enums #} | 5 {#--- Enums #} |
| 6 {%- for enum in struct.enums -%} | 6 {%- for enum in struct.enums -%} |
| 7 {% macro enum_def() %}{% include "enum_declaration.tmpl" %}{% endmacro %} | 7 {% macro enum_def() %}{% include "enum_declaration.tmpl" %}{% endmacro %} |
| 8 {{enum_def()|indent(2)}} | 8 {{enum_def()|indent(2)}} |
| 9 {%- endfor %} | 9 {%- endfor %} |
| 10 | 10 |
| 11 {{struct.name}}() : data_(NULL) { | 11 {{struct.name}}() : data_(NULL) { |
| 12 } | 12 } |
| 13 | 13 |
| 14 template <typename U> | 14 template <typename U> |
| 15 {{struct.name}}(const U& u, mojo::Buffer* buf = mojo::Buffer::current()) { | 15 {{struct.name}}(const U& u, mojo::Buffer* buf = mojo::Buffer::current()) { |
| 16 MOJO_INTERNAL_CHECK_ALLOW_DIRECT_TYPE_CONVERSION({{struct.name}}, U); |
| 16 *this = mojo::TypeConverter<{{struct.name}},U>::ConvertFrom(u, buf); | 17 *this = mojo::TypeConverter<{{struct.name}},U>::ConvertFrom(u, buf); |
| 17 } | 18 } |
| 18 | 19 |
| 19 template <typename U> | 20 template <typename U> |
| 20 {{struct.name}}& operator=(const U& u) { | 21 {{struct.name}}& operator=(const U& u) { |
| 22 MOJO_INTERNAL_CHECK_ALLOW_DIRECT_TYPE_CONVERSION({{struct.name}}, U); |
| 21 *this = mojo::TypeConverter<{{struct.name}},U>::ConvertFrom(u, mojo::Buffer:
:current()); | 23 *this = mojo::TypeConverter<{{struct.name}},U>::ConvertFrom(u, mojo::Buffer:
:current()); |
| 22 return *this; | 24 return *this; |
| 23 } | 25 } |
| 24 | 26 |
| 25 template <typename U> | 27 template <typename U> |
| 26 operator U() const { | 28 operator U() const { |
| 29 MOJO_INTERNAL_CHECK_ALLOW_DIRECT_TYPE_CONVERSION({{struct.name}}, U); |
| 27 return To<U>(); | 30 return To<U>(); |
| 28 } | 31 } |
| 29 | 32 |
| 30 template <typename U> | 33 template <typename U> |
| 31 U To() const { | 34 U To() const { |
| 32 return mojo::TypeConverter<{{struct.name}},U>::ConvertTo(*this); | 35 return mojo::TypeConverter<{{struct.name}},U>::ConvertTo(*this); |
| 33 } | 36 } |
| 34 | 37 |
| 38 template <typename U> |
| 39 static {{struct.name}} From(const U& u, mojo::Buffer* buf = mojo::Buffer::curr
ent()) { |
| 40 return mojo::TypeConverter<{{struct.name}},U>::ConvertFrom(u, buf); |
| 41 } |
| 42 |
| 35 bool is_null() const { return !data_; } | 43 bool is_null() const { return !data_; } |
| 36 | 44 |
| 37 {#--- Getters #} | 45 {#--- Getters #} |
| 38 {% for packed_field in struct.packed.packed_fields %} | 46 {% for packed_field in struct.packed.packed_fields %} |
| 39 {%- set type = packed_field.field.kind|cpp_wrapper_type %} | 47 {%- set type = packed_field.field.kind|cpp_wrapper_type %} |
| 40 {%- set name = packed_field.field.name %} | 48 {%- set name = packed_field.field.name %} |
| 41 {%- if packed_field.field.kind|is_object_kind %} | 49 {%- if packed_field.field.kind|is_object_kind %} |
| 42 const {{type}} {{name}}() const { {# | 50 const {{type}} {{name}}() const { {# |
| 43 #}return mojo::internal::Wrap(data_->{{name}}()); } | 51 #}return mojo::internal::Wrap(data_->{{name}}()); } |
| 44 {%- elif packed_field.field.kind|is_handle_kind %} | 52 {%- elif packed_field.field.kind|is_handle_kind %} |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 78 }; | 86 }; |
| 79 | 87 |
| 80 private: | 88 private: |
| 81 friend class mojo::internal::WrapperHelper<{{struct.name}}>; | 89 friend class mojo::internal::WrapperHelper<{{struct.name}}>; |
| 82 | 90 |
| 83 struct Wrap {}; | 91 struct Wrap {}; |
| 84 {{struct.name}}(Wrap, const Data* data) : data_(data) {} | 92 {{struct.name}}(Wrap, const Data* data) : data_(data) {} |
| 85 | 93 |
| 86 const Data* data_; | 94 const Data* data_; |
| 87 }; | 95 }; |
| OLD | NEW |