blob: 8055c541cd6718a3988ee7d2ce706c451d99c50d [file] [log] [blame]
{% from 'dictionary_impl_common.cc.tmpl' import dictionary_setter_impl with context %}
{% filter format_blink_cpp_source_code %}
{% include 'copyright_block.txt' %}
#ifndef {{cpp_class}}_h
#define {{cpp_class}}_h
{% 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}}{% if parent_cpp_class %} : public {{parent_cpp_class}}{% endif %} {
DISALLOW_NEW();
public:
{{cpp_class}}();
virtual ~{{cpp_class}}();
{{cpp_class}}(const {{cpp_class}}&);
{{cpp_class}}& operator=(const {{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 %}
{% endfor %}
v8::Local<v8::Value> ToV8Impl(v8::Local<v8::Object>, v8::Isolate*) const override;
void Trace(blink::Visitor*) 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 // {{cpp_class}}_h
{% endfilter %}{# format_blink_cpp_source_code #}