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

Side by Side Diff: mojo/public/tools/bindings/generators/mojom_cpp_generator.py

Issue 1065653006: Array and map members for unions. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 8 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
« no previous file with comments | « mojo/public/tools/bindings/generators/cpp_templates/wrapper_union_class_definition.tmpl ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 """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 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 return "mojo::internal::Interface_Data" 221 return "mojo::internal::Interface_Data"
222 if mojom.IsInterfaceRequestKind(kind): 222 if mojom.IsInterfaceRequestKind(kind):
223 return "mojo::MessagePipeHandle" 223 return "mojo::MessagePipeHandle"
224 if mojom.IsEnumKind(kind): 224 if mojom.IsEnumKind(kind):
225 return GetNameForKind(kind) 225 return GetNameForKind(kind)
226 if mojom.IsStringKind(kind): 226 if mojom.IsStringKind(kind):
227 return "mojo::internal::StringPointer" 227 return "mojo::internal::StringPointer"
228 return _kind_to_cpp_type[kind] 228 return _kind_to_cpp_type[kind]
229 229
230 def GetUnionGetterReturnType(kind): 230 def GetUnionGetterReturnType(kind):
231 if mojom.IsStructKind(kind): 231 if (mojom.IsStructKind(kind) or mojom.IsArrayKind(kind) or
232 mojom.IsMapKind(kind)):
232 return "%s&" % GetCppWrapperType(kind) 233 return "%s&" % GetCppWrapperType(kind)
233 return GetCppResultWrapperType(kind) 234 return GetCppResultWrapperType(kind)
234 235
235 def IsStructWithHandles(struct): 236 def IsStructWithHandles(struct):
236 for pf in struct.packed.packed_fields: 237 for pf in struct.packed.packed_fields:
237 if mojom.IsAnyHandleKind(pf.field.kind): 238 if mojom.IsAnyHandleKind(pf.field.kind):
238 return True 239 return True
239 return False 240 return False
240 241
241 def TranslateConstants(token, kind): 242 def TranslateConstants(token, kind):
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
396 def GenerateModuleSource(self): 397 def GenerateModuleSource(self):
397 return self.GetJinjaExports() 398 return self.GetJinjaExports()
398 399
399 def GenerateFiles(self, args): 400 def GenerateFiles(self, args):
400 self.Write(self.GenerateModuleHeader(), 401 self.Write(self.GenerateModuleHeader(),
401 self.MatchMojomFilePath("%s.h" % self.module.name)) 402 self.MatchMojomFilePath("%s.h" % self.module.name))
402 self.Write(self.GenerateModuleInternalHeader(), 403 self.Write(self.GenerateModuleInternalHeader(),
403 self.MatchMojomFilePath("%s-internal.h" % self.module.name)) 404 self.MatchMojomFilePath("%s-internal.h" % self.module.name))
404 self.Write(self.GenerateModuleSource(), 405 self.Write(self.GenerateModuleSource(),
405 self.MatchMojomFilePath("%s.cc" % self.module.name)) 406 self.MatchMojomFilePath("%s.cc" % self.module.name))
OLDNEW
« no previous file with comments | « mojo/public/tools/bindings/generators/cpp_templates/wrapper_union_class_definition.tmpl ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698