| 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 |