OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 [DartPackage="mojo", JavaPackage="org.chromium.mojo.bindings.types"] | 5 [DartPackage="mojo", |
| 6 JavaPackage="org.chromium.mojo.bindings.types"] |
6 module mojo.bindings.types; | 7 module mojo.bindings.types; |
7 | 8 |
8 import "mojom_types.mojom"; | 9 import "mojom_types.mojom"; |
9 | 10 |
10 /* | 11 /* |
11 * The structures in this file are intended to be used by the Mojom compiler | 12 * The structures in this file are intended to be used by the Mojom compiler |
12 * and code generators. The front end of the compiler takes as input a | 13 * and code generators. The front end of the compiler takes as input a |
13 * .mojom file (or a list of .mojom files) and produces a MojomFileGraph struct. | 14 * .mojom file (or a list of .mojom files) and produces a MojomFileGraph struct. |
14 * | 15 * |
15 * The backend of the compiler consumes a MojomFileGraph and invokes each of the | 16 * The backend of the compiler consumes a MojomFileGraph and invokes each of the |
16 * code generators passing them data derived from the MojomFileGraph. | 17 * code generators passing them data derived from the MojomFileGraph. |
17 * | 18 * |
18 * A MojomFile represents the data parsed from a single .mojom file. Mojom | 19 * A MojomFile represents the data parsed from a single .mojom file. Mojom |
19 * modules form a directed acyclic graph via the "imports" relation. | 20 * modules form a directed acyclic graph via the "imports" relation. |
20 * That is, if Module A imports Module B then there is a directed edge in the | 21 * That is, if Module A imports Module B then there is a directed edge in the |
21 * graph from A to B. A MojomFileGraph represents the whole Graph. | 22 * graph from A to B. A MojomFileGraph represents the whole Graph. |
22 | 23 |
23 * The Mojom structures represented here have been fully resolved, meaning that | 24 * The Mojom structures represented here have been fully resolved, meaning that |
24 * the type references have been associated with their corresponding type | 25 * the type references have been associated with their corresponding type |
25 * definitions. This resolved type data is contained in the resolved_types data | 26 * definitions. This resolved type data is contained in the resolved_types data |
26 * in MojomFileGraph. | 27 * in MojomFileGraph. |
27 */ | 28 */ |
28 | 29 |
29 // A MojomFile represents the data defined by a single .mojom file, when | 30 // A MojomFile represents the data defined by a single .mojom file, when |
30 // all of the type references to types declared in imported .mojom files | 31 // all of the type references to types declared in imported .mojom files |
31 // have been resolved. | 32 // have been resolved. |
32 struct MojomFile { | 33 struct MojomFile { |
33 // |file_name| is (derived from) the file name of the corresponding | 34 // |file_name| is (derived from) the file name of the corresponding |
34 // .mojom file. It is the unique identifier for this module within the | 35 // .mojom file. It is the unique identifier for this module within the |
35 // MojomFileGraph | 36 // MojomFileGraph |
36 string file_name; | 37 string file_name; |
37 | 38 |
38 // |specified_file_name| is used to record information about the request that | 39 // |specified_file_name| is used to record information about the request that |
39 // triggered the construction of the |MojomFileGraph| of which this | 40 // triggered the construction of the |MojomFileGraph| of which this |
40 // |MojomFile| is a part. This field is populated by some producers (such | 41 // |MojomFile| is a part. This field is populated by some producers (such |
41 // as the Mojom compiler) but not necessarily all producers of this structure. | 42 // as the Mojom compiler) but not necessarily all producers of this structure. |
42 // If this field is null it means it is not supported by the producer. | 43 // If this field is null it means it is not supported by the producer. |
43 // | 44 // |
44 // If this field is non-null but empty it means that this |MojomFile| | 45 // If this field is non-null but empty it means that this |MojomFile| |
45 // was not explicitly requested but rather is included in the |MojomFileGraph| | 46 // was not explicitly requested but rather is included in the |MojomFileGraph| |
46 // because it is referenced in the |imports| field of another |MojomFile| | 47 // because it is referenced in the |imports| field of another |MojomFile| |
47 // in the graph. If this field is non-empty it means that the corresponding | 48 // in the graph. If this field is non-empty it means that the corresponding |
48 // .mojom file was explicitly requested, using |specified_file_name|. Note | 49 // .mojom file was explicitly requested, using |specified_file_name|. Note |
49 // that in this case it is still possible that this file is also referenced | 50 // that in this case it is still possible that this file is also referenced |
50 // in the |imports| field of another |MojomFile|. | 51 // in the |imports| field of another |MojomFile|. |
51 string? specified_file_name; | 52 string? specified_file_name; |
52 | 53 |
53 // The namespace is the identifier declared via the "module" declaration | 54 // The namespace is the identifier declared via the "module" declaration |
54 // in the .mojom file. | 55 // in the .mojom file. |
55 string? module_namespace; | 56 string? module_namespace; |
56 | 57 |
57 // Attributes declared in the Mojom file at the module level. | 58 // Attributes declared in the Mojom file at the module level. |
58 array<Attribute>? attributes; | 59 array<Attribute>? attributes; |
59 | 60 |
60 // The list of other MojomFiles imported by this one. The elements | 61 // The list of other MojomFiles imported by this one. The elements |
61 // of the array are the |file_name|s and the associated module may | 62 // of the array are the |file_name|s and the associated module may |
62 // be retrieved from the MojomFileGraph. | 63 // be retrieved from the MojomFileGraph. |
63 array<string>? imports; | 64 array<string>? imports; |
64 | 65 |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 // type; | 97 // type; |
97 array<string>? interfaces; | 98 array<string>? interfaces; |
98 array<string>? structs; | 99 array<string>? structs; |
99 array<string>? unions; | 100 array<string>? unions; |
100 array<string>? top_level_enums; | 101 array<string>? top_level_enums; |
101 array<string>? embedded_enums; | 102 array<string>? embedded_enums; |
102 | 103 |
103 // All the constant_keys known to the owning MojomFileGraph. | 104 // All the constant_keys known to the owning MojomFileGraph. |
104 array<string>? top_level_constants; | 105 array<string>? top_level_constants; |
105 array<string>? embedded_constants; | 106 array<string>? embedded_constants; |
106 }; | 107 }; |
OLD | NEW |