Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / mojo / public / tools / bindings / generators / cpp_templates / module-internal.h.tmpl
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
3 // found in the LICENSE file.
4
5 {%- set header_guard = "%s_INTERNAL_H_"|
6         format(module.path|upper|replace("/","_")|replace(".","_")) %}
7
8 #ifndef {{header_guard}}
9 #define {{header_guard}}
10
11 #include "mojo/public/cpp/bindings/lib/bindings_internal.h"
12 #include "mojo/public/cpp/bindings/lib/buffer.h"
13
14 {%- for import in imports %}
15 #include "{{import.module.path}}-internal.h"
16 {%- endfor %}
17
18 namespace mojo {
19 namespace internal {
20 class BoundsChecker;
21 }
22 }
23
24 {%- for namespace in namespaces_as_array %}
25 namespace {{namespace}} {
26 {%- endfor %}
27
28 {#--- Wrapper forward declarations #}
29 {%  for struct in structs %}
30 class {{struct.name}};
31 {%- endfor %}
32
33 namespace internal {
34
35 {#--- Internal forward declarations #}
36 {%  for struct in structs %}
37 class {{struct.name}}_Data;
38 {%- endfor %}
39
40 #pragma pack(push, 1)
41
42 {#--- Class declarations #}
43 {%  for struct in structs %}
44 {%    include "struct_declaration.tmpl" %}
45 {%- endfor %}
46
47 #pragma pack(pop)
48
49 }  // namespace internal
50 {%- for namespace in namespaces_as_array|reverse %}
51 }  // namespace {{namespace}}
52 {%- endfor %}
53
54 #endif  // {{header_guard}}