| Index: tools/json_schema_compiler/h_generator.py
|
| diff --git a/tools/json_schema_compiler/h_generator.py b/tools/json_schema_compiler/h_generator.py
|
| index 72877f1b1f86d1516f55488a268ef9d775e12da9..7fc14e5491107073463f7f3f6e467a848de5214b 100644
|
| --- a/tools/json_schema_compiler/h_generator.py
|
| +++ b/tools/json_schema_compiler/h_generator.py
|
| @@ -5,8 +5,6 @@
|
| from code import Code
|
| from model import PropertyType
|
| import cpp_util
|
| -import model
|
| -import os
|
| import schema_util
|
|
|
| class HGenerator(object):
|
| @@ -111,7 +109,7 @@ class HGenerator(object):
|
| raise ValueError("Illegal circular dependency via cycle " +
|
| ", ".join(map(lambda x: x.name, path + [type_])))
|
| for prop in type_.properties.values():
|
| - if not prop.optional and prop.type_ == PropertyType.REF:
|
| + if schema_util.IsLocalReference(prop, self._namespace.name):
|
| ExpandType(path + [type_], self._namespace.types[prop.ref_type])
|
| if not type_ in dependency_order:
|
| dependency_order.append(type_)
|
| @@ -178,7 +176,20 @@ class HGenerator(object):
|
| if type_.description:
|
| c.Comment(type_.description)
|
| c.Append('typedef std::string %(classname)s;')
|
| - c.Substitute({'classname': classname})
|
| + elif type_.type_ == PropertyType.DOUBLE:
|
| + if type_.description:
|
| + c.Comment(type_.description)
|
| + c.Append('typedef double %(classname)s;')
|
| + elif type_.type_ == PropertyType.INTEGER:
|
| + if type_.description:
|
| + c.Comment(type_.description)
|
| + # TODO(benjhayden): c.Sblock('enum %(classname)s {') ... .Eblock('};')
|
| + # Generated cpp code should contain all constants defined in the IDL so
|
| + # that they don't need to be copied between the IDL and the
|
| + # implementation. This requires correctly parsing and transmitting the
|
| + # constants' names from the IDL to here. The same goes for string and
|
| + # double enums.
|
| + c.Append('typedef int %(classname)s;')
|
| else:
|
| if type_.description:
|
| c.Comment(type_.description)
|
|
|