OLD | NEW |
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 """Generates C++ source files from a mojom.Module.""" | 5 """Generates C++ source files from a mojom.Module.""" |
6 | 6 |
7 import mojom.generate.generator as generator | 7 import mojom.generate.generator as generator |
8 import mojom.generate.module as mojom | 8 import mojom.generate.module as mojom |
9 import mojom.generate.pack as pack | 9 import mojom.generate.pack as pack |
10 from mojom.generate.template_expander import UseJinja | 10 from mojom.generate.template_expander import UseJinja |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 if mojom.IsEnumKind(kind): | 135 if mojom.IsEnumKind(kind): |
136 return GetNameForKind(kind) | 136 return GetNameForKind(kind) |
137 if mojom.IsStructKind(kind) or mojom.IsUnionKind(kind): | 137 if mojom.IsStructKind(kind) or mojom.IsUnionKind(kind): |
138 return "%sPtr" % GetNameForKind(kind) | 138 return "%sPtr" % GetNameForKind(kind) |
139 if mojom.IsArrayKind(kind): | 139 if mojom.IsArrayKind(kind): |
140 return "mojo::Array<%s>" % GetCppArrayArgWrapperType(kind.kind) | 140 return "mojo::Array<%s>" % GetCppArrayArgWrapperType(kind.kind) |
141 if mojom.IsMapKind(kind): | 141 if mojom.IsMapKind(kind): |
142 return "mojo::Map<%s, %s>" % (GetCppArrayArgWrapperType(kind.key_kind), | 142 return "mojo::Map<%s, %s>" % (GetCppArrayArgWrapperType(kind.key_kind), |
143 GetCppArrayArgWrapperType(kind.value_kind)) | 143 GetCppArrayArgWrapperType(kind.value_kind)) |
144 if mojom.IsInterfaceKind(kind): | 144 if mojom.IsInterfaceKind(kind): |
145 return "%sPtr" % GetNameForKind(kind) | 145 return "mojo::InterfaceHandle<%s>" % GetNameForKind(kind) |
146 if mojom.IsInterfaceRequestKind(kind): | 146 if mojom.IsInterfaceRequestKind(kind): |
147 return "mojo::InterfaceRequest<%s>" % GetNameForKind(kind.kind) | 147 return "mojo::InterfaceRequest<%s>" % GetNameForKind(kind.kind) |
148 if mojom.IsStringKind(kind): | 148 if mojom.IsStringKind(kind): |
149 return "mojo::String" | 149 return "mojo::String" |
150 if mojom.IsGenericHandleKind(kind): | 150 if mojom.IsGenericHandleKind(kind): |
151 return "mojo::ScopedHandle" | 151 return "mojo::ScopedHandle" |
152 if mojom.IsDataPipeConsumerKind(kind): | 152 if mojom.IsDataPipeConsumerKind(kind): |
153 return "mojo::ScopedDataPipeConsumerHandle" | 153 return "mojo::ScopedDataPipeConsumerHandle" |
154 if mojom.IsDataPipeProducerKind(kind): | 154 if mojom.IsDataPipeProducerKind(kind): |
155 return "mojo::ScopedDataPipeProducerHandle" | 155 return "mojo::ScopedDataPipeProducerHandle" |
156 if mojom.IsMessagePipeKind(kind): | 156 if mojom.IsMessagePipeKind(kind): |
157 return "mojo::ScopedMessagePipeHandle" | 157 return "mojo::ScopedMessagePipeHandle" |
158 if mojom.IsSharedBufferKind(kind): | 158 if mojom.IsSharedBufferKind(kind): |
159 return "mojo::ScopedSharedBufferHandle" | 159 return "mojo::ScopedSharedBufferHandle" |
160 return GetCppTypeForKind(kind) | 160 return GetCppTypeForKind(kind) |
161 | 161 |
162 def GetCppWrapperType(kind): | 162 def GetCppWrapperType(kind): |
163 if mojom.IsEnumKind(kind): | 163 if mojom.IsEnumKind(kind): |
164 return GetNameForKind(kind) | 164 return GetNameForKind(kind) |
165 if mojom.IsStructKind(kind) or mojom.IsUnionKind(kind): | 165 if mojom.IsStructKind(kind) or mojom.IsUnionKind(kind): |
166 return "%sPtr" % GetNameForKind(kind) | 166 return "%sPtr" % GetNameForKind(kind) |
167 if mojom.IsArrayKind(kind): | 167 if mojom.IsArrayKind(kind): |
168 return "mojo::Array<%s>" % GetCppArrayArgWrapperType(kind.kind) | 168 return "mojo::Array<%s>" % GetCppArrayArgWrapperType(kind.kind) |
169 if mojom.IsMapKind(kind): | 169 if mojom.IsMapKind(kind): |
170 return "mojo::Map<%s, %s>" % (GetCppArrayArgWrapperType(kind.key_kind), | 170 return "mojo::Map<%s, %s>" % (GetCppArrayArgWrapperType(kind.key_kind), |
171 GetCppArrayArgWrapperType(kind.value_kind)) | 171 GetCppArrayArgWrapperType(kind.value_kind)) |
172 if mojom.IsInterfaceKind(kind): | 172 if mojom.IsInterfaceKind(kind): |
173 return "%sPtr" % GetNameForKind(kind) | 173 return "mojo::InterfaceHandle<%s>" % GetNameForKind(kind) |
174 if mojom.IsInterfaceRequestKind(kind): | 174 if mojom.IsInterfaceRequestKind(kind): |
175 return "mojo::InterfaceRequest<%s>" % GetNameForKind(kind.kind) | 175 return "mojo::InterfaceRequest<%s>" % GetNameForKind(kind.kind) |
176 if mojom.IsStringKind(kind): | 176 if mojom.IsStringKind(kind): |
177 return "mojo::String" | 177 return "mojo::String" |
178 if mojom.IsGenericHandleKind(kind): | 178 if mojom.IsGenericHandleKind(kind): |
179 return "mojo::ScopedHandle" | 179 return "mojo::ScopedHandle" |
180 if mojom.IsDataPipeConsumerKind(kind): | 180 if mojom.IsDataPipeConsumerKind(kind): |
181 return "mojo::ScopedDataPipeConsumerHandle" | 181 return "mojo::ScopedDataPipeConsumerHandle" |
182 if mojom.IsDataPipeProducerKind(kind): | 182 if mojom.IsDataPipeProducerKind(kind): |
183 return "mojo::ScopedDataPipeProducerHandle" | 183 return "mojo::ScopedDataPipeProducerHandle" |
184 if mojom.IsMessagePipeKind(kind): | 184 if mojom.IsMessagePipeKind(kind): |
185 return "mojo::ScopedMessagePipeHandle" | 185 return "mojo::ScopedMessagePipeHandle" |
186 if mojom.IsSharedBufferKind(kind): | 186 if mojom.IsSharedBufferKind(kind): |
187 return "mojo::ScopedSharedBufferHandle" | 187 return "mojo::ScopedSharedBufferHandle" |
188 return GetCppTypeForKind(kind) | 188 return GetCppTypeForKind(kind) |
189 | 189 |
190 def GetCppConstWrapperType(kind): | 190 def GetCppConstWrapperType(kind): |
191 if mojom.IsStructKind(kind) or mojom.IsUnionKind(kind): | 191 if mojom.IsStructKind(kind) or mojom.IsUnionKind(kind): |
192 return "%sPtr" % GetNameForKind(kind) | 192 return "%sPtr" % GetNameForKind(kind) |
193 if mojom.IsArrayKind(kind): | 193 if mojom.IsArrayKind(kind): |
194 return "mojo::Array<%s>" % GetCppArrayArgWrapperType(kind.kind) | 194 return "mojo::Array<%s>" % GetCppArrayArgWrapperType(kind.kind) |
195 if mojom.IsMapKind(kind): | 195 if mojom.IsMapKind(kind): |
196 return "mojo::Map<%s, %s>" % (GetCppArrayArgWrapperType(kind.key_kind), | 196 return "mojo::Map<%s, %s>" % (GetCppArrayArgWrapperType(kind.key_kind), |
197 GetCppArrayArgWrapperType(kind.value_kind)) | 197 GetCppArrayArgWrapperType(kind.value_kind)) |
198 if mojom.IsInterfaceKind(kind): | 198 if mojom.IsInterfaceKind(kind): |
199 return "%sPtr" % GetNameForKind(kind) | 199 return "mojo::InterfaceHandle<%s>" % GetNameForKind(kind) |
200 if mojom.IsInterfaceRequestKind(kind): | 200 if mojom.IsInterfaceRequestKind(kind): |
201 return "mojo::InterfaceRequest<%s>" % GetNameForKind(kind.kind) | 201 return "mojo::InterfaceRequest<%s>" % GetNameForKind(kind.kind) |
202 if mojom.IsEnumKind(kind): | 202 if mojom.IsEnumKind(kind): |
203 return GetNameForKind(kind) | 203 return GetNameForKind(kind) |
204 if mojom.IsStringKind(kind): | 204 if mojom.IsStringKind(kind): |
205 return "const mojo::String&" | 205 return "const mojo::String&" |
206 if mojom.IsGenericHandleKind(kind): | 206 if mojom.IsGenericHandleKind(kind): |
207 return "mojo::ScopedHandle" | 207 return "mojo::ScopedHandle" |
208 if mojom.IsDataPipeConsumerKind(kind): | 208 if mojom.IsDataPipeConsumerKind(kind): |
209 return "mojo::ScopedDataPipeConsumerHandle" | 209 return "mojo::ScopedDataPipeConsumerHandle" |
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
443 def GenerateModuleSource(self): | 443 def GenerateModuleSource(self): |
444 return self.GetJinjaExports() | 444 return self.GetJinjaExports() |
445 | 445 |
446 def GenerateFiles(self, args): | 446 def GenerateFiles(self, args): |
447 self.Write(self.GenerateModuleHeader(), | 447 self.Write(self.GenerateModuleHeader(), |
448 self.MatchMojomFilePath("%s.h" % self.module.name)) | 448 self.MatchMojomFilePath("%s.h" % self.module.name)) |
449 self.Write(self.GenerateModuleInternalHeader(), | 449 self.Write(self.GenerateModuleInternalHeader(), |
450 self.MatchMojomFilePath("%s-internal.h" % self.module.name)) | 450 self.MatchMojomFilePath("%s-internal.h" % self.module.name)) |
451 self.Write(self.GenerateModuleSource(), | 451 self.Write(self.GenerateModuleSource(), |
452 self.MatchMojomFilePath("%s.cc" % self.module.name)) | 452 self.MatchMojomFilePath("%s.cc" % self.module.name)) |
OLD | NEW |