Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(89)

Side by Side Diff: tools/json_schema_compiler/h_generator.py

Issue 10796114: Added ToJson to JSON schema compiler. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Changes per comments Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 6 from model import PropertyType
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 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 .Eblock('};') 222 .Eblock('};')
223 ) 223 )
224 c.Substitute({'classname': classname}) 224 c.Substitute({'classname': classname})
225 return c 225 return c
226 226
227 def _GenerateEvent(self, event): 227 def _GenerateEvent(self, event):
228 """Generates the namespaces for an event. 228 """Generates the namespaces for an event.
229 """ 229 """
230 c = Code() 230 c = Code()
231 (c.Sblock('namespace %s {' % cpp_util.Classname(event.name)) 231 (c.Sblock('namespace %s {' % cpp_util.Classname(event.name))
232 .Concat(self._GenerateCreateCallbackArguments(event)) 232 .Concat(self._GenerateCreateCallbackArguments(event,
233 generate_to_json=True))
233 .Eblock('};') 234 .Eblock('};')
234 ) 235 )
235 return c 236 return c
236 237
237 def _GenerateFunction(self, function): 238 def _GenerateFunction(self, function):
238 """Generates the namespaces and structs for a function. 239 """Generates the namespaces and structs for a function.
239 """ 240 """
240 c = Code() 241 c = Code()
241 (c.Sblock('namespace %s {' % cpp_util.Classname(function.name)) 242 (c.Sblock('namespace %s {' % cpp_util.Classname(function.name))
242 .Concat(self._GenerateFunctionParams(function)) 243 .Concat(self._GenerateFunctionParams(function))
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 if prop.type_ == PropertyType.ARRAY: 317 if prop.type_ == PropertyType.ARRAY:
317 c.Concat(self._GeneratePrivatePropertyStructures([prop.item_type])) 318 c.Concat(self._GeneratePrivatePropertyStructures([prop.item_type]))
318 c.Append() 319 c.Append()
319 elif prop.type_ == PropertyType.CHOICES: 320 elif prop.type_ == PropertyType.CHOICES:
320 # We only need GetChoiceValue() if there is a ToValue() method. 321 # We only need GetChoiceValue() if there is a ToValue() method.
321 if prop.from_client: 322 if prop.from_client:
322 c.Append('scoped_ptr<base::Value> Get%sChoiceValue() const;' % ( 323 c.Append('scoped_ptr<base::Value> Get%sChoiceValue() const;' % (
323 cpp_util.Classname(prop.name))) 324 cpp_util.Classname(prop.name)))
324 return c 325 return c
325 326
326 def _GenerateCreateCallbackArguments(self, function): 327 def _GenerateCreateCallbackArguments(self, function, generate_to_json=False):
327 """Generates functions for passing paramaters to a callback. 328 """Generates functions for passing paramaters to a callback.
328 """ 329 """
329 c = Code() 330 c = Code()
330 params = function.params 331 params = function.params
331 c.Concat(self._GeneratePropertyStructures(params)) 332 c.Concat(self._GeneratePropertyStructures(params))
332 333
333 param_lists = self._cpp_type_generator.GetAllPossibleParameterLists(params) 334 param_lists = self._cpp_type_generator.GetAllPossibleParameterLists(params)
334 for param_list in param_lists: 335 for param_list in param_lists:
335 declaration_list = [] 336 declaration_list = []
336 for param in param_list: 337 for param in param_list:
337 if param.description: 338 if param.description:
338 c.Comment(param.description) 339 c.Comment(param.description)
339 declaration_list.append('const %s' % cpp_util.GetParameterDeclaration( 340 declaration_list.append('const %s' % cpp_util.GetParameterDeclaration(
340 param, self._cpp_type_generator.GetType(param))) 341 param, self._cpp_type_generator.GetType(param)))
341 c.Append('scoped_ptr<base::ListValue> Create(%s);' % 342 c.Append('scoped_ptr<base::ListValue> Create(%s);' %
342 ', '.join(declaration_list)) 343 ', '.join(declaration_list))
344 if is_event:
not at google - send to devlin 2012/07/26 02:39:58 I think this needs to be generate_to_json...
mitchellwrosen 2012/07/26 17:38:59 Oops! Done
345 c.Append('std::string ToJson(%s);' % ', '.join(declaration_list))
343 return c 346 return c
344 347
345 def _GenerateFunctionResults(self, callback): 348 def _GenerateFunctionResults(self, callback):
346 """Generates namespace for passing a function's result back. 349 """Generates namespace for passing a function's result back.
347 """ 350 """
348 c = Code() 351 c = Code()
349 (c.Sblock('namespace Results {') 352 (c.Sblock('namespace Results {')
350 .Concat(self._GenerateCreateCallbackArguments(callback)) 353 .Concat(self._GenerateCreateCallbackArguments(callback))
351 .Eblock('};') 354 .Eblock('};')
352 ) 355 )
353 return c 356 return c
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698