| 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 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 return _kind_to_cpp_type[kind] | 121 return _kind_to_cpp_type[kind] |
| 122 | 122 |
| 123 def GetCppWrapperType(kind): | 123 def GetCppWrapperType(kind): |
| 124 if isinstance(kind, mojom.Enum): | 124 if isinstance(kind, mojom.Enum): |
| 125 return GetNameForKind(kind) | 125 return GetNameForKind(kind) |
| 126 if isinstance(kind, mojom.Struct): | 126 if isinstance(kind, mojom.Struct): |
| 127 return "%sPtr" % GetNameForKind(kind) | 127 return "%sPtr" % GetNameForKind(kind) |
| 128 if isinstance(kind, (mojom.Array, mojom.FixedArray)): | 128 if isinstance(kind, (mojom.Array, mojom.FixedArray)): |
| 129 return "mojo::Array<%s>" % GetCppArrayArgWrapperType(kind.kind) | 129 return "mojo::Array<%s>" % GetCppArrayArgWrapperType(kind.kind) |
| 130 if isinstance(kind, mojom.Interface): | 130 if isinstance(kind, mojom.Interface): |
| 131 return "mojo::ScopedMessagePipeHandle" | 131 return "%sPtr" % GetNameForKind(kind) |
| 132 if isinstance(kind, mojom.InterfaceRequest): | 132 if isinstance(kind, mojom.InterfaceRequest): |
| 133 raise Exception("InterfaceRequest fields not supported!") | 133 raise Exception("InterfaceRequest fields not supported!") |
| 134 if kind.spec == 's': | 134 if kind.spec == 's': |
| 135 return "mojo::String" | 135 return "mojo::String" |
| 136 if kind.spec == 'h': | 136 if kind.spec == 'h': |
| 137 return "mojo::ScopedHandle" | 137 return "mojo::ScopedHandle" |
| 138 if kind.spec == 'h:d:c': | 138 if kind.spec == 'h:d:c': |
| 139 return "mojo::ScopedDataPipeConsumerHandle" | 139 return "mojo::ScopedDataPipeConsumerHandle" |
| 140 if kind.spec == 'h:d:p': | 140 if kind.spec == 'h:d:p': |
| 141 return "mojo::ScopedDataPipeProducerHandle" | 141 return "mojo::ScopedDataPipeProducerHandle" |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 279 | 279 |
| 280 @UseJinja("cpp_templates/module.cc.tmpl", filters=cpp_filters) | 280 @UseJinja("cpp_templates/module.cc.tmpl", filters=cpp_filters) |
| 281 def GenerateModuleSource(self): | 281 def GenerateModuleSource(self): |
| 282 return self.GetJinjaExports() | 282 return self.GetJinjaExports() |
| 283 | 283 |
| 284 def GenerateFiles(self, args): | 284 def GenerateFiles(self, args): |
| 285 self.Write(self.GenerateModuleHeader(), "%s.h" % self.module.name) | 285 self.Write(self.GenerateModuleHeader(), "%s.h" % self.module.name) |
| 286 self.Write(self.GenerateModuleInternalHeader(), | 286 self.Write(self.GenerateModuleInternalHeader(), |
| 287 "%s-internal.h" % self.module.name) | 287 "%s-internal.h" % self.module.name) |
| 288 self.Write(self.GenerateModuleSource(), "%s.cc" % self.module.name) | 288 self.Write(self.GenerateModuleSource(), "%s.cc" % self.module.name) |
| OLD | NEW |