| {% from 'dictionary_impl_common.cc.tmpl' import dictionary_setter_impl with context %} |
| {% filter format_blink_cpp_source_code %} |
| |
| {% include 'copyright_block.txt' %} |
| #ifndef {{header_guard}} |
| #define {{header_guard}} |
| |
| {% for filename in header_includes %} |
| #include "{{filename}}" |
| {% endfor %} |
| |
| namespace blink { |
| |
| {% for decl in header_forward_decls %} |
| class {{decl}}; |
| {% endfor %} |
| |
| {# FIXME: Add "final" if this class doesn\'t have subclasses #} |
| class {{exported}}{{cpp_class}} : public {{parent_cpp_class}} { |
| public: |
| static {{cpp_class}}* Create() { return MakeGarbageCollected<{{cpp_class}}>(); } |
| static {{cpp_class}}* Create(v8::Isolate* isolate) { |
| return MakeGarbageCollected<{{cpp_class}}>(); |
| } |
| |
| {{cpp_class}}(); |
| virtual ~{{cpp_class}}(); |
| |
| {% for member in members %} |
| bool {{member.has_method_name}}() const { return {{member.has_method_expression}}; } |
| {{member.rvalue_cpp_type}} {{member.getter_name}}() const { |
| {% if member.nullable_indicator_name and not member.has_explicit_presence %} |
| DCHECK({{member.nullable_indicator_name}}); |
| {% endif %} |
| return {{member.getter_expression}}; |
| } |
| {{member.setter_inline}}void {{member.setter_name}}({{member.rvalue_cpp_type}}); |
| {% if member.null_setter_name %} |
| {{member.setter_inline}}void {{member.null_setter_name}}(); |
| {% endif %} |
| {% if member.is_nullable %} |
| // Migration adapters |
| // Returns true iff this member has a non-null value. Returns false if the |
| // value is missing or a null value. |
| bool {{member.non_null_has_method_name}}() const { return {{member.has_method_expression}}; } |
| // Returns the value if this member has a non-null value. Call |
| // |{{member.non_null_has_method_name}}| in advance to check the condition. |
| {{member.rvalue_cpp_type}} {{member.non_null_getter_name}}() const { |
| DCHECK({{member.non_null_has_method_name}}()); |
| return {{member.getter_expression}}; |
| } |
| {% endif %} |
| |
| {% endfor %} |
| v8::Local<v8::Value> ToV8Impl(v8::Local<v8::Object>, v8::Isolate*) const override; |
| void Trace(Visitor*) const override; |
| |
| private: |
| {% for member in members if member.nullable_indicator_name %} |
| bool {{member.nullable_indicator_name}} = false; |
| {% endfor %} |
| |
| {% for member in members %} |
| {{member.member_cpp_type}} {{member.cpp_name}}_; |
| {% endfor %} |
| |
| friend class V8{{cpp_class}}; |
| }; |
| |
| {% for member in members if member.setter_inline %} |
| {{dictionary_setter_impl(member)}} |
| {% endfor %} |
| |
| } // namespace blink |
| |
| #endif // {{header_guard}} |
| |
| {% endfilter %}{# format_blink_cpp_source_code #} |