OLD | NEW |
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 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 """Base class for generating wrapper functions for PPAPI methods. | 5 """Base class for generating wrapper functions for PPAPI methods. |
6 """ | 6 """ |
7 | 7 |
8 from datetime import datetime | 8 from datetime import datetime |
9 import os | 9 import os |
10 import sys | 10 import sys |
11 | 11 |
12 from idl_c_proto import CGen | 12 from idl_c_proto import CGen |
13 from idl_generator import Generator | 13 from idl_generator import Generator |
14 from idl_log import ErrOut, InfoOut, WarnOut | 14 from idl_log import ErrOut, InfoOut, WarnOut |
| 15 from idl_option import GetOption |
15 from idl_outfile import IDLOutFile | 16 from idl_outfile import IDLOutFile |
16 | 17 |
17 | 18 |
18 class PPKind(object): | 19 class PPKind(object): |
19 @staticmethod | 20 @staticmethod |
20 def ChoosePPFunc(iface, ppb_func, ppp_func): | 21 def ChoosePPFunc(iface, ppb_func, ppp_func): |
21 name = iface.node.GetName() | 22 name = iface.node.GetName() |
22 if name.startswith("PPP"): | 23 if name.startswith("PPP"): |
23 return ppp_func | 24 return ppp_func |
24 elif name.startswith("PPB"): | 25 elif name.startswith("PPB"): |
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
212 | 213 |
213 ############################################################ | 214 ############################################################ |
214 | 215 |
215 def DetermineInterfaces(self, ast, releases): | 216 def DetermineInterfaces(self, ast, releases): |
216 """Get a list of interfaces along with whatever metadata we need. | 217 """Get a list of interfaces along with whatever metadata we need. |
217 """ | 218 """ |
218 iface_releases = [] | 219 iface_releases = [] |
219 for filenode in ast.GetListOf('File'): | 220 for filenode in ast.GetListOf('File'): |
220 # If this file has errors, skip it | 221 # If this file has errors, skip it |
221 if filenode in self.skip_list: | 222 if filenode in self.skip_list: |
222 InfoOut.Log('WrapperGen: Skipping %s due to errors\n' % | 223 if GetOption('verbose'): |
223 filenode.GetName()) | 224 InfoOut.Log('WrapperGen: Skipping %s due to errors\n' % |
| 225 filenode.GetName()) |
224 continue | 226 continue |
225 | 227 |
226 file_name = self.GetHeaderName(filenode.GetName()) | 228 file_name = self.GetHeaderName(filenode.GetName()) |
227 ifaces = filenode.GetListOf('Interface') | 229 ifaces = filenode.GetListOf('Interface') |
228 for iface in ifaces: | 230 for iface in ifaces: |
229 releases_for_iface = iface.GetUniqueReleases(releases) | 231 releases_for_iface = iface.GetUniqueReleases(releases) |
230 for release in releases_for_iface: | 232 for release in releases_for_iface: |
231 version = iface.GetVersion(release) | 233 version = iface.GetVersion(release) |
232 struct_name = self.cgen.GetStructName(iface, release, | 234 struct_name = self.cgen.GetStructName(iface, release, |
233 include_version=True) | 235 include_version=True) |
234 needs_wrap = self.InterfaceVersionNeedsWrapping(iface, version) | 236 needs_wrap = self.InterfaceVersionNeedsWrapping(iface, version) |
235 if not needs_wrap: | 237 if not needs_wrap: |
236 InfoOut.Log('Interface %s ver %s does not need wrapping' % | 238 if GetOption('verbose'): |
237 (struct_name, version)) | 239 InfoOut.Log('Interface %s ver %s does not need wrapping' % |
| 240 (struct_name, version)) |
238 iface_releases.append( | 241 iface_releases.append( |
239 Interface(iface, release, version, | 242 Interface(iface, release, version, |
240 struct_name, needs_wrap, file_name)) | 243 struct_name, needs_wrap, file_name)) |
241 return iface_releases | 244 return iface_releases |
242 | 245 |
243 | 246 |
244 def GenerateIncludes(self, iface_releases, out): | 247 def GenerateIncludes(self, iface_releases, out): |
245 """Generate the list of #include that define the original interfaces. | 248 """Generate the list of #include that define the original interfaces. |
246 """ | 249 """ |
247 self.WriteCopyrightGeneratedTime(out) | 250 self.WriteCopyrightGeneratedTime(out) |
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
449 | 452 |
450 # Generate a table of the wrapped interface structs that can be looked up. | 453 # Generate a table of the wrapped interface structs that can be looked up. |
451 self.GenerateWrapperInfoAndCollection(iface_releases, out) | 454 self.GenerateWrapperInfoAndCollection(iface_releases, out) |
452 | 455 |
453 # Write out the IDL-invariant functions. | 456 # Write out the IDL-invariant functions. |
454 self.GenerateFixedFunctions(out) | 457 self.GenerateFixedFunctions(out) |
455 | 458 |
456 out.Write(self.GetGuardEnd()) | 459 out.Write(self.GetGuardEnd()) |
457 out.Close() | 460 out.Close() |
458 return 0 | 461 return 0 |
| 462 |
OLD | NEW |