| Index: mojo/public/tools/bindings/generators/cpp_templates/module.h.tmpl
|
| diff --git a/mojo/public/tools/bindings/generators/cpp_templates/module.h.tmpl b/mojo/public/tools/bindings/generators/cpp_templates/module.h.tmpl
|
| index 97f8e3a0b449ff72b64aa2f6f5f91520c5a4d006..c4f3e0709ac76a073b029ebd5b34125fad0a9df9 100644
|
| --- a/mojo/public/tools/bindings/generators/cpp_templates/module.h.tmpl
|
| +++ b/mojo/public/tools/bindings/generators/cpp_templates/module.h.tmpl
|
| @@ -12,15 +12,41 @@
|
| variant_path|upper|replace("/","_")|replace(".","_")|
|
| replace("-", "_")) %}
|
|
|
| +{%- from "enum_macros.tmpl" import enum_decl %}
|
| +{%- from "enum_macros.tmpl" import enum_stream_operator %}
|
| +{%- from "enum_macros.tmpl" import is_known_enum_value %}
|
| +{%- from "enum_macros.tmpl" import enum_hash %}
|
| +
|
| +{%- macro namespace_begin() %}
|
| +{%- for namespace in namespaces_as_array %}
|
| +namespace {{namespace}} {
|
| +{%- endfor %}
|
| +{%- if variant %}
|
| +namespace {{variant}} {
|
| +{%- endif %}
|
| +{%- endmacro %}
|
| +
|
| +{%- macro namespace_end() %}
|
| +{%- if variant %}
|
| +} // namespace {{variant}}
|
| +{%- endif %}
|
| +{%- for namespace in namespaces_as_array|reverse %}
|
| +} // namespace {{namespace}}
|
| +{%- endfor %}
|
| +{%- endmacro %}
|
| +
|
| #ifndef {{header_guard}}
|
| #define {{header_guard}}
|
|
|
| #include <stdint.h>
|
| +
|
| +#include <functional>
|
| #include <ostream>
|
| #include <type_traits>
|
| #include <utility>
|
|
|
| #include "base/callback.h"
|
| +#include "base/optional.h"
|
| #include "base/strings/string_piece.h"
|
| #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
|
| #include "mojo/public/cpp/bindings/associated_interface_ptr_info.h"
|
| @@ -51,6 +77,7 @@
|
| {%- else %}
|
| #include "mojo/public/cpp/bindings/wtf_array.h"
|
| #include "mojo/public/cpp/bindings/wtf_map.h"
|
| +#include "third_party/WebKit/Source/wtf/Optional.h"
|
| #include "third_party/WebKit/Source/wtf/text/WTFString.h"
|
| {%- endif %}
|
|
|
| @@ -58,26 +85,32 @@
|
| #include "{{header}}"
|
| {%- endfor %}
|
|
|
| -{%- for namespace in namespaces_as_array %}
|
| -namespace {{namespace}} {
|
| -{%- endfor %}
|
| -{%- if variant %}
|
| -namespace {{variant}} {
|
| -{%- endif %}
|
| -
|
| {#--- Enums #}
|
| -{% from "enum_macros.tmpl" import enum_decl -%}
|
| -{% from "enum_macros.tmpl" import enum_stream_operator -%}
|
| -{% from "enum_macros.tmpl" import is_known_enum_value -%}
|
| -{%- for enum in enums %}
|
| -{%- if enum|is_native_only_kind %}
|
| +{%- if enums %}
|
| +{{namespace_begin()}}
|
| +{%- for enum in enums %}
|
| +{%- if enum|is_native_only_kind %}
|
| using {{enum.name}} = mojo::NativeEnum;
|
| -{%- else %}
|
| +{%- else %}
|
| {{enum_decl(enum)}}
|
| {{enum_stream_operator(enum)}}
|
| {{is_known_enum_value(enum)}}
|
| -{%- endif %}
|
| -{%- endfor %}
|
| +{%- endif %}
|
| +{%- endfor %}
|
| +{{namespace_end()}}
|
| +
|
| +namespace std {
|
| +
|
| +{%- for enum in enums %}
|
| +{%- if not enum|is_native_only_kind %}
|
| +{{enum_hash(enum)}}
|
| +{%- endif %}
|
| +{%- endfor %}
|
| +
|
| +} // namespace std
|
| +{%- endif %}
|
| +
|
| +{{namespace_begin()}}
|
|
|
| {#--- Constants #}
|
| {%- for constant in module.constants %}
|
| @@ -133,6 +166,27 @@ typedef mojo::StructPtr<{{union.name}}> {{union.name}}Ptr;
|
| {#--- Interfaces -#}
|
| {% for interface in interfaces %}
|
| {% include "interface_declaration.tmpl" %}
|
| +
|
| +{%- if interface.enums %}
|
| +{{namespace_end()}}
|
| +namespace std {
|
| +
|
| +{%- for enum in interface.enums %}
|
| +{%- if not enum|is_native_only_kind %}
|
| +{{enum_hash(enum)}}
|
| +{%- endif %}
|
| +{%- endfor %}
|
| +
|
| +} // namespace std
|
| +{{namespace_begin()}}
|
| +{%- endif %}
|
| +
|
| +{%- for enum in interface.enums %}
|
| +{%- if not enum|is_native_only_kind %}
|
| +{{enum_stream_operator(enum)}}
|
| +{{is_known_enum_value(enum)}}
|
| +{%- endif %}
|
| +{%- endfor %}
|
| {%- endfor %}
|
|
|
| {#--- Interface Proxies -#}
|
| @@ -190,16 +244,21 @@ typedef mojo::StructPtr<{{union.name}}> {{union.name}}Ptr;
|
| {% include "wrapper_class_template_definition.tmpl" %}
|
| {%- endif %}
|
|
|
| -{%- for enum in struct.enums %}
|
| -{%- if not enum|is_native_only_kind %}
|
| -{{enum_stream_operator(enum)}}
|
| -{{is_known_enum_value(enum)}}
|
| -{%- endif %}
|
| -{%- endfor %}
|
| -{%- endfor %}
|
| +{%- if struct.enums %}
|
| +{{namespace_end()}}
|
| +namespace std {
|
|
|
| -{%- for interface in interfaces %}
|
| -{%- for enum in interface.enums %}
|
| +{%- for enum in struct.enums %}
|
| +{%- if not enum|is_native_only_kind %}
|
| +{{enum_hash(enum)}}
|
| +{%- endif %}
|
| +{%- endfor %}
|
| +
|
| +} // namespace std
|
| +{{namespace_begin()}}
|
| +{%- endif %}
|
| +
|
| +{%- for enum in struct.enums %}
|
| {%- if not enum|is_native_only_kind %}
|
| {{enum_stream_operator(enum)}}
|
| {{is_known_enum_value(enum)}}
|
| @@ -207,12 +266,7 @@ typedef mojo::StructPtr<{{union.name}}> {{union.name}}Ptr;
|
| {%- endfor %}
|
| {%- endfor %}
|
|
|
| -{%- if variant %}
|
| -} // namespace {{variant}}
|
| -{%- endif %}
|
| -{%- for namespace in namespaces_as_array|reverse %}
|
| -} // namespace {{namespace}}
|
| -{%- endfor %}
|
| +{{namespace_end()}}
|
|
|
| namespace mojo {
|
|
|
|
|