Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(225)

Side by Side Diff: mojo/public/tools/bindings/generators/cpp_templates/module.cc.tmpl

Issue 2247083003: Mojo C++ bindings: extract code shared by different variants. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 #if defined(__clang__) 11 #if defined(__clang__)
12 #pragma clang diagnostic push 12 #pragma clang diagnostic push
13 #pragma clang diagnostic ignored "-Wunused-private-field" 13 #pragma clang diagnostic ignored "-Wunused-private-field"
14 #elif defined(_MSC_VER) 14 #elif defined(_MSC_VER)
15 #pragma warning(push) 15 #pragma warning(push)
16 #pragma warning(disable:4056) 16 #pragma warning(disable:4056)
17 #pragma warning(disable:4065) 17 #pragma warning(disable:4065)
18 #pragma warning(disable:4756) 18 #pragma warning(disable:4756)
19 #endif 19 #endif
20 20
21 #include "{{variant_path}}.h" 21 #include "{{variant_path}}.h"
22 22
23 #include <math.h> 23 #include <math.h>
24 #include <stdint.h> 24 #include <stdint.h>
25 #include <utility> 25 #include <utility>
26 26
27 #include "base/logging.h" 27 #include "base/logging.h"
28 #include "base/trace_event/trace_event.h" 28 #include "base/trace_event/trace_event.h"
29 #include "mojo/public/cpp/bindings/lib/map_data_internal.h"
30 #include "mojo/public/cpp/bindings/lib/message_builder.h" 29 #include "mojo/public/cpp/bindings/lib/message_builder.h"
31 #include "mojo/public/cpp/bindings/lib/serialization_util.h" 30 #include "mojo/public/cpp/bindings/lib/serialization_util.h"
32 #include "mojo/public/cpp/bindings/lib/validate_params.h" 31 #include "mojo/public/cpp/bindings/lib/validate_params.h"
33 #include "mojo/public/cpp/bindings/lib/validation_context.h" 32 #include "mojo/public/cpp/bindings/lib/validation_context.h"
34 #include "mojo/public/cpp/bindings/lib/validation_errors.h" 33 #include "mojo/public/cpp/bindings/lib/validation_errors.h"
35 #include "mojo/public/cpp/bindings/lib/validation_util.h"
36 #include "mojo/public/interfaces/bindings/interface_control_messages.mojom.h" 34 #include "mojo/public/interfaces/bindings/interface_control_messages.mojom.h"
37 35
38 {%- if for_blink %} 36 {%- if for_blink %}
39 #include "mojo/public/cpp/bindings/lib/wtf_serialization.h" 37 #include "mojo/public/cpp/bindings/lib/wtf_serialization.h"
40 {%- endif %} 38 {%- endif %}
41 39
42 {%- for header in extra_traits_headers %} 40 {%- for header in extra_traits_headers %}
43 #include "{{header}}" 41 #include "{{header}}"
44 {%- endfor %} 42 {%- endfor %}
45 43
46 {%- for namespace in namespaces_as_array %} 44 {%- for namespace in namespaces_as_array %}
47 namespace {{namespace}} { 45 namespace {{namespace}} {
48 {%- endfor %} 46 {%- endfor %}
49 {%- if variant %} 47 {%- if variant %}
50 namespace {{variant}} { 48 namespace {{variant}} {
51 {%- endif %} 49 {%- endif %}
52 50
53 {#--- Constants #} 51 {#--- Constants #}
54 {%- for constant in module.constants %} 52 {%- for constant in module.constants %}
55 {%- if not constant.kind|is_integral_kind %} 53 {%- if not constant.kind|is_integral_kind %}
56 const {{constant.kind|cpp_pod_type}} {{constant.name}} = {{constant|constant_val ue}}; 54 const {{constant.kind|cpp_pod_type}} {{constant.name}} = {{constant|constant_val ue}};
57 {%- endif %} 55 {%- endif %}
58 {%- endfor %} 56 {%- endfor %}
59 57
60 namespace internal {
61 namespace {
62
63 #pragma pack(push, 1)
64
65 {#--- Interface parameter definitions #}
66 {%- for interface in interfaces %}
67 {%- for method in interface.methods %}
68 {%- set method_name = "k%s_%s_Name"|format(interface.name, method.name) %}
69 const uint32_t {{method_name}} = {{method.ordinal}};
70 {% set struct = method.param_struct %}
71 {% include "struct_declaration.tmpl" %}
72 {%- include "struct_definition.tmpl" %}
73 {%- if method.response_parameters != None %}
74 {%- set struct = method.response_param_struct %}
75 {% include "struct_declaration.tmpl" %}
76 {%- include "struct_definition.tmpl" %}
77 {%- endif %}
78 {%- endfor %}
79 {%- endfor %}
80
81 #pragma pack(pop)
82
83 } // namespace
84
85 {#--- Struct definitions #}
86 {% for struct in structs %}
87 {%- if not struct|is_native_only_kind %}
88 {%- include "struct_definition.tmpl" %}
89 {%- endif %}
90 {%- endfor %}
91
92 {#--- Union definitions #}
93 {% for union in unions %}
94 {%- include "union_definition.tmpl" %}
95 {%- endfor %}
96
97 } // namespace internal
98
99 namespace { 58 namespace {
100 59
101 {#--- Interface parameter data view definitions #} 60 {#--- Interface parameter data view definitions #}
102 {%- for interface in interfaces %} 61 {%- for interface in interfaces %}
103 {%- for method in interface.methods %} 62 {%- for method in interface.methods %}
104 {% set struct = method.param_struct %} 63 {% set struct = method.param_struct %}
105 {% include "struct_data_view_declaration.tmpl" %} 64 {% include "struct_data_view_declaration.tmpl" %}
106 {% include "struct_data_view_definition.tmpl" %} 65 {% include "struct_data_view_definition.tmpl" %}
107 {%- if method.response_parameters != None %} 66 {%- if method.response_parameters != None %}
108 {%- set struct = method.response_param_struct %} 67 {%- set struct = method.response_param_struct %}
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 {%- endfor %} 123 {%- endfor %}
165 124
166 } // namespace mojo 125 } // namespace mojo
167 126
168 127
169 #if defined(__clang__) 128 #if defined(__clang__)
170 #pragma clang diagnostic pop 129 #pragma clang diagnostic pop
171 #elif defined(_MSC_VER) 130 #elif defined(_MSC_VER)
172 #pragma warning(pop) 131 #pragma warning(pop)
173 #endif 132 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698