| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // WARNING: Do not edit - generated code. |
| |
| #include "sky/engine/config.h" |
| #include "{{dart_class}}.h" |
| |
| {% for filename in cpp_includes %} |
| #include "{{filename}}" |
| {% endfor %} |
| |
| namespace blink { |
| |
| static void RefObject(DartWrappable* impl) { |
| static_cast<{{cpp_class}}*>(impl)->ref(); |
| } |
| |
| static void DerefObject(DartWrappable* impl) { |
| static_cast<{{cpp_class}}*>(impl)->deref(); |
| } |
| |
| static const DartWrapperInfo kDartWrapperInfo = { |
| "{{interface_name}}", |
| sizeof({{cpp_class}}), |
| &RefObject, |
| &DerefObject, |
| }; |
| |
| const DartWrapperInfo& {{cpp_class}}::dart_wrapper_info_ = kDartWrapperInfo; |
| |
| namespace {{dart_class}}Internal { |
| |
| {% from 'methods_cpp.template' import generate_constructor, generate_event_constructor, generate_method, method_callback, overload_resolution_method with context %} |
| |
| {# Constructors #} |
| {% for constructor in constructors %} |
| {{generate_constructor(constructor, constructor.number_of_arguments)}} |
| {% endfor %} |
| {% block overloaded_constructor %}{% endblock %} |
| {% if named_constructor %} |
| {{generate_constructor(named_constructor, named_constructor.number_of_arguments)}} |
| {% endif %} |
| {% if has_event_constructor %} |
| {{generate_event_constructor()}} |
| {% endif %} |
| |
| {# Attributes getters/setters. #} |
| {% from 'attributes_cpp.template' import attribute_getter, attribute_getter_callback, |
| attribute_setter, attribute_setter_callback |
| with context %} |
| {% for attribute in attributes %} |
| {% if not attribute.has_custom_getter %} |
| {{attribute_getter(cpp_class, attribute)}} |
| {% endif %} |
| {# FIXME I'm disabling put_forwards for now since we didn't support it before #} |
| {# https://code.google.com/p/dart/issues/detail?id=18784 #} |
| {# {% if not attribute.has_custom_setter and (not attribute.is_read_only or attribute.put_forwards) %}#} |
| {% if not attribute.has_custom_setter and not attribute.is_read_only %} |
| {{attribute_setter(cpp_class, attribute)}} |
| {% endif %} |
| {% endfor %} |
| |
| {# Methods #} |
| {% for method in methods %} |
| {% if not method.is_custom and not method.suppressed %} |
| {{generate_method(method, method.number_of_arguments)}} |
| {% endif %} |
| {% if method.overloads %} |
| {{overload_resolution_method(method)}} |
| {% endif %} |
| {% endfor %} |
| |
| {% block named_property_getter %}{% endblock %} |
| {% block named_property_setter %}{% endblock %} |
| {% block indexed_property_getter %}{% endblock %} |
| } |
| |
| Dart_NativeFunction {{dart_class}}::Resolver(Dart_Handle nameHandle, int argumentCount, bool* autoSetupScope) |
| { |
| String name = StringFromDart(nameHandle); |
| {% from 'methods_cpp.template' import generate_resolver_constructor with context %} |
| {% from 'methods_cpp.template' import generate_resolver_event_constructor with context %} |
| {# Resolver Constructors #} |
| {% for constructor in constructors %} |
| {{generate_resolver_constructor(dart_class, interface_name, constructor) | indent(4)}} |
| {% endfor %} |
| {% from 'methods_cpp.template' import generate_resolver_custom_constructor with context %} |
| {# Resolver Custom Constructors #} |
| {% for constructor in custom_constructors %} |
| {{generate_resolver_constructor(dart_class, interface_name, constructor) | indent(4)}} |
| {% endfor %} |
| {% if named_constructor %} |
| {{generate_resolver_constructor(dart_class, interface_name, named_constructor) | indent(4)}} |
| {% endif %} |
| {% if has_event_constructor %} |
| {{generate_resolver_event_constructor(dart_class, interface_name) | indent(4)}} |
| {% endif %} |
| {# Resolver Attributes #} |
| {% from 'attributes_cpp.template' import generate_attribute_resolver_body %} |
| {% for attribute in attributes %} |
| {{generate_attribute_resolver_body(dart_class, interface_name, attribute) | indent(4)}} |
| {% endfor %} |
| {# Resolver Methods #} |
| {% from 'methods_cpp.template' import generate_resolver_body with context %} |
| {% for method in methods if not method.suppressed %} |
| {{generate_resolver_body(dart_class, interface_name, method) | indent(4)}} |
| {% endfor %} |
| {# Special operations (methods) #} |
| {# TODO(terry): Only emit indexed getter for DataTransferItemList; emit for interfaces. #} |
| {% block indexed_property_getter_resolver %}{% endblock %} |
| {% block named_property_getter_resolver %}{% endblock %} |
| {% block named_property_setter_resolver %}{% endblock %} |
| return 0; |
| } |
| |
| const uint8_t* {{dart_class}}::Symbolizer(Dart_NativeFunction native_function) |
| { |
| {% from 'methods_cpp.template' import generate_symbolizer_constructor with context %} |
| {% for constructor in constructors %} |
| {{generate_symbolizer_constructor(dart_class, interface_name, constructor) | indent(4)}} |
| {% endfor %} |
| {% for constructor in custom_constructors %} |
| {{generate_symbolizer_constructor(dart_class, interface_name, constructor) | indent(4)}} |
| {% endfor %} |
| {% if named_constructor %} |
| {{generate_symbolizer_constructor(dart_class, interface_name, named_constructor) | indent(4)}} |
| {% endif %} |
| {% from 'attributes_cpp.template' import generate_attribute_symbolizer_body %} |
| {% for attribute in attributes %} |
| {{generate_attribute_symbolizer_body(dart_class, interface_name, attribute) | indent(4)}} |
| {% endfor %} |
| {% from 'methods_cpp.template' import generate_symbolizer_body with context %} |
| {% for method in methods if not method.suppressed %} |
| {{generate_symbolizer_body(dart_class, interface_name, method) | indent(4)}} |
| {% endfor %} |
| {% block generate_symbolizer_named_property_getter %}{% endblock %} |
| {% block generate_symbolizer_named_property_setter %}{% endblock %} |
| {% block generate_symbolizer_indexed_property_getter %}{% endblock %} |
| return 0; |
| } |
| |
| } // namespace blink |