diff options
Diffstat (limited to 'chromium/mojo/public/tools/bindings/generators/cpp_templates/module.cc.tmpl')
-rw-r--r-- | chromium/mojo/public/tools/bindings/generators/cpp_templates/module.cc.tmpl | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/chromium/mojo/public/tools/bindings/generators/cpp_templates/module.cc.tmpl b/chromium/mojo/public/tools/bindings/generators/cpp_templates/module.cc.tmpl new file mode 100644 index 00000000000..8cf8e99713c --- /dev/null +++ b/chromium/mojo/public/tools/bindings/generators/cpp_templates/module.cc.tmpl @@ -0,0 +1,86 @@ +// 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/bounds_checker.h" +#include "mojo/public/cpp/bindings/lib/message_builder.h" +#include "mojo/public/cpp/bindings/lib/string_serialization.h" +#include "mojo/public/cpp/bindings/lib/validation_errors.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}}; +{%- 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}}; +{%- 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 |