| // Copyright 2013 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. |
| |
| #if defined(__clang__) |
| #pragma clang diagnostic push |
| #pragma clang diagnostic ignored "-Wunused-private-field" |
| #endif |
| |
| #include "{{module.path}}.h" |
| |
| #include "mojo/public/cpp/bindings/lib/array_serialization.h" |
| #include "mojo/public/cpp/bindings/lib/bindings_serialization.h" |
| #include "mojo/public/cpp/bindings/lib/string_serialization.h" |
| #include "mojo/public/cpp/bindings/lib/message_builder.h" |
| |
| {%- for namespace in namespaces_as_array %} |
| namespace {{namespace}} { |
| {%- endfor %} |
| |
| {#--- Constants #} |
| {% for constant in module.constants %} |
| const {{constant.kind|cpp_pod_type}} {{constant.name}} = {{constant.value|expression_to_text(module)}}; |
| {%- endfor %} |
| |
| namespace internal { |
| namespace { |
| |
| #pragma pack(push, 1) |
| |
| {#--- Interface parameter definitions #} |
| {%- for interface in interfaces %} |
| {%- for method in interface.methods %} |
| {%- set method_name = "k%s_%s_Name"|format(interface.name, method.name) %} |
| const uint32_t {{method_name}} = {{method.ordinal}}; |
| {% set struct = method|struct_from_method %} |
| {%- include "params_definition.tmpl" %} |
| {%- if method.response_parameters != None %} |
| {%- set struct = method|response_struct_from_method %} |
| {%- include "params_definition.tmpl" %} |
| {%- endif %} |
| {%- endfor %} |
| {%- endfor %} |
| |
| #pragma pack(pop) |
| |
| } // namespace |
| |
| {#--- Struct definitions #} |
| {% for struct in structs %} |
| {%- include "struct_definition.tmpl" %} |
| {%- endfor %} |
| |
| } // namespace internal |
| |
| {#--- Struct Constants #} |
| {%- for struct in structs %} |
| {% for constant in struct.constants %} |
| const {{constant.kind|cpp_pod_type}} {{struct.name}}::{{constant.name}} = {{constant.value|expression_to_text(module)}}; |
| {%- endfor %} |
| {%- endfor %} |
| |
| {#--- Struct builder definitions #} |
| {%- for struct in structs %} |
| {%- include "wrapper_class_definition.tmpl" %} |
| {%- endfor %} |
| |
| {#--- Interface definitions #} |
| {%- for interface in interfaces %} |
| {%- include "interface_definition.tmpl" %} |
| {%- endfor %} |
| |
| {#--- Struct Serialization Helpers #} |
| {%- for struct in structs %} |
| {%- include "struct_serialization_definition.tmpl" %} |
| {%- endfor %} |
| |
| {%- for namespace in namespaces_as_array|reverse %} |
| } // namespace {{namespace}} |
| {%- endfor %} |
| |
| #if defined(__clang__) |
| #pragma clang diagnostic pop |
| #endif |