| Index: tools/json_schema_compiler/cpp_bundle_generator.py
|
| diff --git a/tools/json_schema_compiler/cpp_bundle_generator.py b/tools/json_schema_compiler/cpp_bundle_generator.py
|
| index e98f0c3023cbc619506dd8b56f1901be6b562a2f..5b188d6f3cdc5febba6849655bdcb0888f9a7589 100644
|
| --- a/tools/json_schema_compiler/cpp_bundle_generator.py
|
| +++ b/tools/json_schema_compiler/cpp_bundle_generator.py
|
| @@ -6,6 +6,7 @@ import code
|
| import cpp_util
|
| from model import Platforms
|
| from schema_util import CapitalizeFirstLetter
|
| +from schema_util import JsEventNameToHistogramValue
|
| from schema_util import JsFunctionNameToClassName
|
|
|
| import json
|
| @@ -96,6 +97,26 @@ class CppBundleGenerator(object):
|
| c.Append("#endif // %s" % function_ifdefs, indent_level=0)
|
| return c
|
|
|
| + def _GenerateEventHistogramMapAddAll(self):
|
| + c = code.Code()
|
| + c.Append('// static')
|
| + c.Append('void GeneratedEventHistogramMap::AddAll(std::map<std::string,')
|
| + c.Sblock(' extensions::events::HistogramValue>& map) {')
|
| + for namespace in self._model.namespaces.values():
|
| + for event in namespace.events.values():
|
| + if event.nocompile:
|
| + continue
|
| + event_name = "%s.%s" % (namespace.name, event.name)
|
| + histogram_value = event.histogram_name
|
| + if not histogram_value:
|
| + histogram_value = JsEventNameToHistogramValue(namespace.name,
|
| + event.name)
|
| + c.Append('map.insert(std::make_pair("%s", extensions::events::%s));' %
|
| + (event_name, histogram_value))
|
| +
|
| + c.Eblock("}")
|
| + return c
|
| +
|
| def _GenerateFunctionRegistryRegisterAll(self):
|
| c = code.Code()
|
| c.Append('// static')
|
| @@ -135,9 +156,15 @@ class _APIHGenerator(object):
|
| def Generate(self, namespace):
|
| c = code.Code()
|
|
|
| + c.Append('#include <map>')
|
| c.Append('#include <string>')
|
| c.Append()
|
| c.Append('#include "base/basictypes.h"')
|
| +
|
| + c.Append('#include '
|
| + '"chrome/browser/extensions/extension_event_histogram_value.h"')
|
| + c.Append('#include '
|
| + '"chrome/browser/extensions/extension_function_registry.h"')
|
| c.Append()
|
| c.Append("class ExtensionFunctionRegistry;")
|
| c.Append()
|
| @@ -149,6 +176,12 @@ class _APIHGenerator(object):
|
| 'ExtensionFunctionRegistry* registry);')
|
| c.Eblock('};');
|
| c.Append()
|
| + c.Append('class GeneratedEventHistogramMap {')
|
| + c.Sblock(' public:')
|
| + c.Append('static void AddAll(std::map<std::string,')
|
| + c.Append(' extensions::events::HistogramValue>& map);')
|
| + c.Eblock('};');
|
| + c.Append()
|
| c.Concat(cpp_util.CloseNamespace(self._bundle._cpp_namespace))
|
| return self._bundle._GenerateHeader('generated_api', c)
|
|
|
| @@ -195,6 +228,8 @@ class _APICCGenerator(object):
|
| c.Append()
|
| c.Concat(self._bundle._GenerateFunctionRegistryRegisterAll())
|
| c.Append()
|
| + c.Concat(self._bundle._GenerateEventHistogramMapAddAll())
|
| + c.Append()
|
| c.Concat(cpp_util.CloseNamespace(self._bundle._cpp_namespace))
|
| c.Append()
|
| return c
|
|
|