| 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 from code import Code | 5 from code import Code |
| 6 from model import PropertyType, Type | 6 from model import PropertyType, Type |
| 7 import cpp_util | 7 import cpp_util |
| 8 import schema_util | 8 import schema_util |
| 9 | 9 |
| 10 class HGenerator(object): | 10 class HGenerator(object): |
| (...skipping 22 matching lines...) Expand all Loading... |
| 33 .Append() | 33 .Append() |
| 34 .Append('#include <map>') | 34 .Append('#include <map>') |
| 35 .Append('#include <string>') | 35 .Append('#include <string>') |
| 36 .Append('#include <vector>') | 36 .Append('#include <vector>') |
| 37 .Append() | 37 .Append() |
| 38 .Append('#include "base/basictypes.h"') | 38 .Append('#include "base/basictypes.h"') |
| 39 .Append('#include "base/logging.h"') | 39 .Append('#include "base/logging.h"') |
| 40 .Append('#include "base/memory/linked_ptr.h"') | 40 .Append('#include "base/memory/linked_ptr.h"') |
| 41 .Append('#include "base/memory/scoped_ptr.h"') | 41 .Append('#include "base/memory/scoped_ptr.h"') |
| 42 .Append('#include "base/values.h"') | 42 .Append('#include "base/values.h"') |
| 43 .Cblock(self._type_helper.GenerateIncludes()) |
| 43 .Append() | 44 .Append() |
| 44 ) | 45 ) |
| 45 | 46 |
| 46 c.Concat(self._type_helper.GetRootNamespaceStart()) | 47 c.Concat(self._type_helper.GetRootNamespaceStart()) |
| 47 # TODO(calamity): These forward declarations should be #includes to allow | 48 # TODO(calamity): These forward declarations should be #includes to allow |
| 48 # $ref types from other files to be used as required params. This requires | 49 # $ref types from other files to be used as required params. This requires |
| 49 # some detangling of windows and tabs which will currently lead to circular | 50 # some detangling of windows and tabs which will currently lead to circular |
| 50 # #includes. | 51 # #includes. |
| 51 forward_declarations = ( | 52 forward_declarations = ( |
| 52 self._type_helper.GenerateForwardDeclarations()) | 53 self._type_helper.GenerateForwardDeclarations()) |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 155 def _GenerateType(self, type_, is_toplevel=False, generate_typedefs=False): | 156 def _GenerateType(self, type_, is_toplevel=False, generate_typedefs=False): |
| 156 """Generates a struct for |type_|. | 157 """Generates a struct for |type_|. |
| 157 | 158 |
| 158 |is_toplevel| implies that the type was declared in the "types" field | 159 |is_toplevel| implies that the type was declared in the "types" field |
| 159 of an API schema. This determines the correct function | 160 of an API schema. This determines the correct function |
| 160 modifier(s). | 161 modifier(s). |
| 161 |generate_typedefs| controls whether primitive types should be generated as | 162 |generate_typedefs| controls whether primitive types should be generated as |
| 162 a typedef. This may not always be desired. If false, | 163 a typedef. This may not always be desired. If false, |
| 163 primitive types are ignored. | 164 primitive types are ignored. |
| 164 """ | 165 """ |
| 165 classname = cpp_util.Classname(schema_util.StripSchemaNamespace(type_.name)) | 166 classname = cpp_util.Classname(schema_util.StripNamespace(type_.name)) |
| 166 c = Code() | 167 c = Code() |
| 167 | 168 |
| 168 if type_.functions: | 169 if type_.functions: |
| 169 # Wrap functions within types in the type's namespace. | 170 # Wrap functions within types in the type's namespace. |
| 170 (c.Append('namespace %s {' % classname) | 171 (c.Append('namespace %s {' % classname) |
| 171 .Append() | 172 .Append() |
| 172 ) | 173 ) |
| 173 for function in type_.functions.values(): | 174 for function in type_.functions.values(): |
| 174 c.Cblock(self._GenerateFunction(function)) | 175 c.Cblock(self._GenerateFunction(function)) |
| 175 c.Append('} // namespace %s' % classname) | 176 c.Append('} // namespace %s' % classname) |
| (...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 358 def _GenerateFunctionResults(self, callback): | 359 def _GenerateFunctionResults(self, callback): |
| 359 """Generates namespace for passing a function's result back. | 360 """Generates namespace for passing a function's result back. |
| 360 """ | 361 """ |
| 361 c = Code() | 362 c = Code() |
| 362 (c.Append('namespace Results {') | 363 (c.Append('namespace Results {') |
| 363 .Append() | 364 .Append() |
| 364 .Concat(self._GenerateCreateCallbackArguments(callback)) | 365 .Concat(self._GenerateCreateCallbackArguments(callback)) |
| 365 .Append('} // namespace Results') | 366 .Append('} // namespace Results') |
| 366 ) | 367 ) |
| 367 return c | 368 return c |
| OLD | NEW |