| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 {%- if variant -%} | 5 {%- if variant -%} |
| 6 {%- set variant_path = "%s-%s"|format(module.path, variant) -%} | 6 {%- set variant_path = "%s-%s"|format(module.path, variant) -%} |
| 7 {%- else -%} | 7 {%- else -%} |
| 8 {%- set variant_path = module.path -%} | 8 {%- set variant_path = module.path -%} |
| 9 {%- endif -%} | 9 {%- endif -%} |
| 10 | 10 |
| 11 {%- set header_guard = "%s_H_"|format( | 11 {%- set header_guard = "%s_H_"|format( |
| 12 variant_path|upper|replace("/","_")|replace(".","_")| | 12 variant_path|upper|replace("/","_")|replace(".","_")| |
| 13 replace("-", "_")) %} | 13 replace("-", "_")) %} |
| 14 | 14 |
| 15 {%- from "enum_macros.tmpl" import enum_decl %} | |
| 16 {%- from "enum_macros.tmpl" import enum_stream_operator %} | |
| 17 {%- from "enum_macros.tmpl" import is_known_enum_value %} | |
| 18 {%- from "enum_macros.tmpl" import enum_hash %} | |
| 19 | |
| 20 {%- macro namespace_begin() %} | 15 {%- macro namespace_begin() %} |
| 21 {%- for namespace in namespaces_as_array %} | 16 {%- for namespace in namespaces_as_array %} |
| 22 namespace {{namespace}} { | 17 namespace {{namespace}} { |
| 23 {%- endfor %} | 18 {%- endfor %} |
| 24 {%- if variant %} | 19 {%- if variant %} |
| 25 namespace {{variant}} { | 20 namespace {{variant}} { |
| 26 {%- endif %} | 21 {%- endif %} |
| 27 {%- endmacro %} | 22 {%- endmacro %} |
| 28 | 23 |
| 29 {%- macro namespace_end() %} | 24 {%- macro namespace_end() %} |
| (...skipping 14 matching lines...) Expand all Loading... |
| 44 }; | 39 }; |
| 45 } // namespace internal | 40 } // namespace internal |
| 46 } // namespace mojo | 41 } // namespace mojo |
| 47 {%- endmacro %} | 42 {%- endmacro %} |
| 48 | 43 |
| 49 #ifndef {{header_guard}} | 44 #ifndef {{header_guard}} |
| 50 #define {{header_guard}} | 45 #define {{header_guard}} |
| 51 | 46 |
| 52 #include <stdint.h> | 47 #include <stdint.h> |
| 53 | 48 |
| 54 #include <functional> | |
| 55 #include <ostream> | |
| 56 #include <type_traits> | 49 #include <type_traits> |
| 57 #include <utility> | 50 #include <utility> |
| 58 | 51 |
| 59 #include "base/callback.h" | 52 #include "base/callback.h" |
| 60 #include "base/optional.h" | 53 #include "base/optional.h" |
| 61 #include "mojo/public/cpp/bindings/array_data_view.h" | 54 #include "mojo/public/cpp/bindings/array_data_view.h" |
| 62 #include "mojo/public/cpp/bindings/associated_interface_ptr.h" | 55 #include "mojo/public/cpp/bindings/associated_interface_ptr.h" |
| 63 #include "mojo/public/cpp/bindings/associated_interface_ptr_info.h" | 56 #include "mojo/public/cpp/bindings/associated_interface_ptr_info.h" |
| 64 #include "mojo/public/cpp/bindings/associated_interface_request.h" | 57 #include "mojo/public/cpp/bindings/associated_interface_request.h" |
| 65 #include "mojo/public/cpp/bindings/interface_ptr.h" | 58 #include "mojo/public/cpp/bindings/interface_ptr.h" |
| 66 #include "mojo/public/cpp/bindings/interface_request.h" | 59 #include "mojo/public/cpp/bindings/interface_request.h" |
| 67 #include "mojo/public/cpp/bindings/lib/control_message_handler.h" | 60 #include "mojo/public/cpp/bindings/lib/control_message_handler.h" |
| 68 #include "mojo/public/cpp/bindings/lib/control_message_proxy.h" | 61 #include "mojo/public/cpp/bindings/lib/control_message_proxy.h" |
| 69 #include "mojo/public/cpp/bindings/lib/serialization.h" | 62 #include "mojo/public/cpp/bindings/lib/serialization.h" |
| 63 #include "mojo/public/cpp/bindings/lib/union_accessor.h" |
| 70 #include "mojo/public/cpp/bindings/map.h" | 64 #include "mojo/public/cpp/bindings/map.h" |
| 71 #include "mojo/public/cpp/bindings/map_data_view.h" | 65 #include "mojo/public/cpp/bindings/map_data_view.h" |
| 72 #include "mojo/public/cpp/bindings/message_filter.h" | 66 #include "mojo/public/cpp/bindings/message_filter.h" |
| 73 #include "mojo/public/cpp/bindings/native_enum.h" | |
| 74 #include "mojo/public/cpp/bindings/native_struct.h" | 67 #include "mojo/public/cpp/bindings/native_struct.h" |
| 75 #include "mojo/public/cpp/bindings/native_struct_data_view.h" | 68 #include "mojo/public/cpp/bindings/native_struct_data_view.h" |
| 76 #include "mojo/public/cpp/bindings/no_interface.h" | 69 #include "mojo/public/cpp/bindings/no_interface.h" |
| 77 #include "mojo/public/cpp/bindings/string_data_view.h" | 70 #include "mojo/public/cpp/bindings/string_data_view.h" |
| 78 #include "mojo/public/cpp/bindings/struct_ptr.h" | 71 #include "mojo/public/cpp/bindings/struct_ptr.h" |
| 79 #include "mojo/public/cpp/bindings/struct_traits.h" | 72 #include "mojo/public/cpp/bindings/struct_traits.h" |
| 80 #include "mojo/public/cpp/bindings/union_traits.h" | 73 #include "mojo/public/cpp/bindings/union_traits.h" |
| 81 #include "{{variant_path}}-internal.h" | 74 #include "{{module.path}}-shared.h" |
| 82 {%- for import in imports %} | 75 {%- for import in imports %} |
| 83 {%- if variant %} | 76 {%- if variant %} |
| 84 #include "{{"%s-%s.h"|format(import.module.path, variant)}}" | 77 #include "{{"%s-%s.h"|format(import.module.path, variant)}}" |
| 85 {%- else %} | 78 {%- else %} |
| 86 #include "{{import.module.path}}.h" | 79 #include "{{import.module.path}}.h" |
| 87 {%- endif %} | 80 {%- endif %} |
| 88 {%- endfor %} | 81 {%- endfor %} |
| 89 {%- if not for_blink %} | 82 {%- if not for_blink %} |
| 90 #include "mojo/public/cpp/bindings/array.h" | 83 #include "mojo/public/cpp/bindings/array.h" |
| 91 #include "mojo/public/cpp/bindings/string.h" | 84 #include "mojo/public/cpp/bindings/string.h" |
| 92 {%- else %} | 85 {%- else %} |
| 93 #include "mojo/public/cpp/bindings/wtf_array.h" | 86 #include "mojo/public/cpp/bindings/wtf_array.h" |
| 94 #include "mojo/public/cpp/bindings/wtf_map.h" | 87 #include "mojo/public/cpp/bindings/wtf_map.h" |
| 95 #include "third_party/WebKit/Source/wtf/Optional.h" | 88 #include "third_party/WebKit/Source/wtf/Optional.h" |
| 96 #include "third_party/WebKit/Source/wtf/text/WTFString.h" | 89 #include "third_party/WebKit/Source/wtf/text/WTFString.h" |
| 97 {%- endif %} | 90 {%- endif %} |
| 98 | 91 |
| 99 {%- for header in extra_public_headers %} | 92 {%- for header in extra_public_headers %} |
| 100 #include "{{header}}" | 93 #include "{{header}}" |
| 101 {%- endfor %} | 94 {%- endfor %} |
| 102 | 95 |
| 103 {%- if export_header %} | 96 {%- if export_header %} |
| 104 #include "{{export_header}}" | 97 #include "{{export_header}}" |
| 105 {%- endif %} | 98 {%- endif %} |
| 106 | 99 |
| 107 {#--- Enums #} | |
| 108 {%- if enums %} | |
| 109 {{namespace_begin()}} | |
| 110 {%- for enum in enums %} | |
| 111 {%- if enum|is_native_only_kind %} | |
| 112 using {{enum.name}} = mojo::NativeEnum; | |
| 113 {%- else %} | |
| 114 {{enum_decl(enum)}} | |
| 115 {{enum_stream_operator(enum)}} | |
| 116 {{is_known_enum_value(enum)}} | |
| 117 {%- endif %} | |
| 118 {%- endfor %} | |
| 119 {{namespace_end()}} | |
| 120 | |
| 121 namespace std { | |
| 122 | |
| 123 {%- for enum in enums %} | |
| 124 {%- if not enum|is_native_only_kind %} | |
| 125 {{enum_hash(enum)}} | |
| 126 {%- endif %} | |
| 127 {%- endfor %} | |
| 128 | |
| 129 } // namespace std | |
| 130 {%- endif %} | |
| 131 | |
| 132 {{namespace_begin()}} | 100 {{namespace_begin()}} |
| 133 | 101 |
| 102 {#--- Enums #} |
| 103 {%- if variant %} |
| 104 {%- for enum in enums %} |
| 105 using {{enum.name}} = {{enum.name}}; // Alias for definition in the parent name
space. |
| 106 {%- endfor %} |
| 107 {%- endif %} |
| 108 |
| 109 |
| 134 {#--- Constants #} | 110 {#--- Constants #} |
| 135 {%- for constant in module.constants %} | 111 {%- for constant in module.constants %} |
| 136 {#- To be consistent with constants defined inside interfaces, only make | 112 {#- To be consistent with constants defined inside interfaces, only make |
| 137 integral types compile-time constants. #} | 113 integral types compile-time constants. #} |
| 138 {%- if constant.kind|is_integral_kind %} | 114 {%- if constant.kind|is_integral_kind %} |
| 139 const {{constant.kind|cpp_pod_type}} {{constant.name}} = {{constant|constant_val
ue}}; | 115 const {{constant.kind|cpp_pod_type}} {{constant.name}} = {{constant|constant_val
ue}}; |
| 140 {%- else %} | 116 {%- else %} |
| 141 extern const {{constant.kind|cpp_pod_type}} {{constant.name}}; | 117 extern const {{constant.kind|cpp_pod_type}} {{constant.name}}; |
| 142 {%- endif %} | 118 {%- endif %} |
| 143 {%- endfor %} | 119 {%- endfor %} |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 180 {% if union|should_inline_union %} | 156 {% if union|should_inline_union %} |
| 181 typedef mojo::InlinedStructPtr<{{union.name}}> {{union.name}}Ptr; | 157 typedef mojo::InlinedStructPtr<{{union.name}}> {{union.name}}Ptr; |
| 182 {% else %} | 158 {% else %} |
| 183 typedef mojo::StructPtr<{{union.name}}> {{union.name}}Ptr; | 159 typedef mojo::StructPtr<{{union.name}}> {{union.name}}Ptr; |
| 184 {% endif %} | 160 {% endif %} |
| 185 {%- endfor %} | 161 {%- endfor %} |
| 186 | 162 |
| 187 {#--- Interfaces -#} | 163 {#--- Interfaces -#} |
| 188 {% for interface in interfaces %} | 164 {% for interface in interfaces %} |
| 189 {% include "interface_declaration.tmpl" %} | 165 {% include "interface_declaration.tmpl" %} |
| 190 | |
| 191 {%- if interface.enums %} | |
| 192 {{namespace_end()}} | |
| 193 namespace std { | |
| 194 | |
| 195 {%- for enum in interface.enums %} | |
| 196 {%- if not enum|is_native_only_kind %} | |
| 197 {{enum_hash(enum)}} | |
| 198 {%- endif %} | |
| 199 {%- endfor %} | |
| 200 | |
| 201 } // namespace std | |
| 202 {{namespace_begin()}} | |
| 203 {%- endif %} | |
| 204 | |
| 205 {%- for enum in interface.enums %} | |
| 206 {%- if not enum|is_native_only_kind %} | |
| 207 {{enum_stream_operator(enum)}} | |
| 208 {{is_known_enum_value(enum)}} | |
| 209 {%- endif %} | |
| 210 {%- endfor %} | |
| 211 {%- endfor %} | 166 {%- endfor %} |
| 212 | 167 |
| 213 {#--- Interface Proxies -#} | 168 {#--- Interface Proxies -#} |
| 214 {% for interface in interfaces %} | 169 {% for interface in interfaces %} |
| 215 {% include "interface_proxy_declaration.tmpl" %} | 170 {% include "interface_proxy_declaration.tmpl" %} |
| 216 {%- endfor %} | 171 {%- endfor %} |
| 217 | 172 |
| 218 {#--- Interface Stubs -#} | 173 {#--- Interface Stubs -#} |
| 219 {% for interface in interfaces %} | 174 {% for interface in interfaces %} |
| 220 {% include "interface_stub_declaration.tmpl" %} | 175 {% include "interface_stub_declaration.tmpl" %} |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 275 {%- for union in unions %} | 230 {%- for union in unions %} |
| 276 {% include "wrapper_union_class_template_definition.tmpl" %} | 231 {% include "wrapper_union_class_template_definition.tmpl" %} |
| 277 {% include "union_data_view_definition.tmpl" %} | 232 {% include "union_data_view_definition.tmpl" %} |
| 278 {%- endfor %} | 233 {%- endfor %} |
| 279 | 234 |
| 280 {%- for struct in structs %} | 235 {%- for struct in structs %} |
| 281 {%- if not struct|is_native_only_kind %} | 236 {%- if not struct|is_native_only_kind %} |
| 282 {% include "wrapper_class_template_definition.tmpl" %} | 237 {% include "wrapper_class_template_definition.tmpl" %} |
| 283 {% include "struct_data_view_definition.tmpl" %} | 238 {% include "struct_data_view_definition.tmpl" %} |
| 284 {%- endif %} | 239 {%- endif %} |
| 285 | |
| 286 {%- if struct.enums %} | |
| 287 {{namespace_end()}} | |
| 288 namespace std { | |
| 289 | |
| 290 {%- for enum in struct.enums %} | |
| 291 {%- if not enum|is_native_only_kind %} | |
| 292 {{enum_hash(enum)}} | |
| 293 {%- endif %} | |
| 294 {%- endfor %} | |
| 295 | |
| 296 } // namespace std | |
| 297 {{namespace_begin()}} | |
| 298 {%- endif %} | |
| 299 | |
| 300 {%- for enum in struct.enums %} | |
| 301 {%- if not enum|is_native_only_kind %} | |
| 302 {{enum_stream_operator(enum)}} | |
| 303 {{is_known_enum_value(enum)}} | |
| 304 {%- endif %} | |
| 305 {%- endfor %} | |
| 306 {%- endfor %} | 240 {%- endfor %} |
| 307 | 241 |
| 308 {{namespace_end()}} | 242 {{namespace_end()}} |
| 309 | 243 |
| 310 namespace mojo { | 244 namespace mojo { |
| 311 | 245 |
| 312 {#--- Enum Serialization Helpers -#} | |
| 313 {%- for enum in enums %} | |
| 314 {%- if not enum|is_native_only_kind %} | |
| 315 {% include "enum_serialization_declaration.tmpl" %} | |
| 316 {%- endif %} | |
| 317 {%- endfor %} | |
| 318 | |
| 319 {%- for struct in structs %} | |
| 320 {%- for enum in struct.enums %} | |
| 321 {%- if not enum|is_native_only_kind %} | |
| 322 {% include "enum_serialization_declaration.tmpl" %} | |
| 323 {%- endif %} | |
| 324 {%- endfor %} | |
| 325 {%- endfor %} | |
| 326 | |
| 327 {%- for interface in interfaces %} | |
| 328 {%- for enum in interface.enums %} | |
| 329 {%- if not enum|is_native_only_kind %} | |
| 330 {% include "enum_serialization_declaration.tmpl" %} | |
| 331 {%- endif %} | |
| 332 {%- endfor %} | |
| 333 {%- endfor %} | |
| 334 | |
| 335 {#--- Struct Serialization Helpers -#} | 246 {#--- Struct Serialization Helpers -#} |
| 336 {% for struct in structs %} | 247 {% for struct in structs %} |
| 337 {%- if not struct|is_native_only_kind %} | 248 {%- if not struct|is_native_only_kind %} |
| 338 {% include "struct_serialization_declaration.tmpl" %} | 249 {% include "struct_serialization_declaration.tmpl" %} |
| 339 {%- endif %} | 250 {%- endif %} |
| 340 {%- endfor %} | 251 {%- endfor %} |
| 341 | 252 |
| 342 {#--- Union Serialization Helpers -#} | 253 {#--- Union Serialization Helpers -#} |
| 343 {% if unions %} | 254 {% if unions %} |
| 344 {%- for union in unions %} | 255 {%- for union in unions %} |
| 345 {% include "union_serialization_declaration.tmpl" %} | 256 {% include "union_serialization_declaration.tmpl" %} |
| 346 {%- endfor %} | 257 {%- endfor %} |
| 347 {%- endif %} | 258 {%- endif %} |
| 348 | 259 |
| 349 } // namespace mojo | 260 } // namespace mojo |
| 350 | 261 |
| 351 #endif // {{header_guard}} | 262 #endif // {{header_guard}} |
| OLD | NEW |