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

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

Issue 10815024: Revert 147594 - NaCl: Remove two uses of '#include "nacl/nacl_log.h"' (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 5 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 | Annotate | Revision Log
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 any_helper 7 import any_helper
8 import cpp_util 8 import cpp_util
9 import model 9 import model
10 import schema_util 10 import schema_util
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 return '%s->ToValue().release()' % var 348 return '%s->ToValue().release()' % var
349 else: 349 else:
350 return '%s.ToValue().release()' % var 350 return '%s.ToValue().release()' % var
351 elif prop.type_ == PropertyType.ANY: 351 elif prop.type_ == PropertyType.ANY:
352 return '%s.DeepCopy()' % self._any_helper.GetValue(prop, var) 352 return '%s.DeepCopy()' % self._any_helper.GetValue(prop, var)
353 elif prop.type_ == PropertyType.ADDITIONAL_PROPERTIES: 353 elif prop.type_ == PropertyType.ADDITIONAL_PROPERTIES:
354 return '%s.DeepCopy()' % var 354 return '%s.DeepCopy()' % var
355 elif prop.type_ == PropertyType.ENUM: 355 elif prop.type_ == PropertyType.ENUM:
356 return 'CreateEnumValue(%s).release()' % var 356 return 'CreateEnumValue(%s).release()' % var
357 elif prop.type_ == PropertyType.BINARY: 357 elif prop.type_ == PropertyType.BINARY:
358 return '%s->DeepCopy()' % var 358 if prop.optional:
359 vardot = var + '->'
360 else:
361 vardot = var + '.'
362 return ('base::BinaryValue::CreateWithCopiedBuffer(%sdata(), %ssize())' %
363 (vardot, vardot))
359 elif self._IsArrayOrArrayRef(prop): 364 elif self._IsArrayOrArrayRef(prop):
360 return '%s.release()' % self._util_cc_helper.CreateValueFromArray( 365 return '%s.release()' % self._util_cc_helper.CreateValueFromArray(
361 self._cpp_type_generator.GetReferencedProperty(prop), var, 366 self._cpp_type_generator.GetReferencedProperty(prop), var,
362 prop.optional) 367 prop.optional)
363 elif self._IsFundamentalOrFundamentalRef(prop): 368 elif self._IsFundamentalOrFundamentalRef(prop):
364 if prop.optional: 369 if prop.optional:
365 var = '*' + var 370 var = '*' + var
366 prop = self._cpp_type_generator.GetReferencedProperty(prop); 371 prop = self._cpp_type_generator.GetReferencedProperty(prop);
367 return { 372 return {
368 PropertyType.STRING: 'base::Value::CreateStringValue(%s)', 373 PropertyType.STRING: 'base::Value::CreateStringValue(%s)',
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
535 (c.Append('default:') 540 (c.Append('default:')
536 .Append(' return %(failure_value)s;') 541 .Append(' return %(failure_value)s;')
537 ) 542 )
538 c.Eblock('}') 543 c.Eblock('}')
539 elif prop.type_ == PropertyType.ENUM: 544 elif prop.type_ == PropertyType.ENUM:
540 c.Sblock('{') 545 c.Sblock('{')
541 self._GenerateStringToEnumConversion(c, prop, value_var, 'enum_temp') 546 self._GenerateStringToEnumConversion(c, prop, value_var, 'enum_temp')
542 c.Append('%(dst)s->%(name)s = enum_temp;') 547 c.Append('%(dst)s->%(name)s = enum_temp;')
543 c.Eblock('}') 548 c.Eblock('}')
544 elif prop.type_ == PropertyType.BINARY: 549 elif prop.type_ == PropertyType.BINARY:
545 # This is the same if the property is optional or not. We need a pointer
546 # to the base::BinaryValue to be able to populate it, so a scoped_ptr is
547 # used whether it is optional or required.
548 (c.Append('if (!%(value_var)s->IsType(%(value_type)s))') 550 (c.Append('if (!%(value_var)s->IsType(%(value_type)s))')
549 .Append(' return %(failure_value)s;') 551 .Append(' return %(failure_value)s;')
550 .Append('%(dst)s->%(name)s.reset(') 552 .Append('base::BinaryValue* binary_value =')
551 .Append(' static_cast<base::BinaryValue*>(%(value_var)s)' 553 .Append(' static_cast<base::BinaryValue*>(%(value_var)s);')
552 '->DeepCopy());') 554 )
553 ) 555 if prop.optional:
556 (c.Append('%(dst)s->%(name)s.reset(')
557 .Append(' new std::string(binary_value->GetBuffer(),')
558 .Append(' binary_value->GetSize()));')
559 )
560 else:
561 (c.Append('%(dst)s->%(name)s.assign(binary_value->GetBuffer(),')
562 .Append(' binary_value->GetSize());')
563 )
554 else: 564 else:
555 raise NotImplementedError(prop.type_) 565 raise NotImplementedError(prop.type_)
556 c.Eblock('}') 566 c.Eblock('}')
557 sub = { 567 sub = {
558 'value_var': value_var, 568 'value_var': value_var,
559 'name': prop.unix_name, 569 'name': prop.unix_name,
560 'dst': dst, 570 'dst': dst,
561 'failure_value': failure_value, 571 'failure_value': failure_value,
562 } 572 }
563 if prop.type_ not in (PropertyType.CHOICES, PropertyType.ANY): 573 if prop.type_ not in (PropertyType.CHOICES, PropertyType.ANY):
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
706 """ 716 """
707 return (self._cpp_type_generator.GetReferencedProperty(prop).type_ == 717 return (self._cpp_type_generator.GetReferencedProperty(prop).type_ ==
708 PropertyType.ARRAY) 718 PropertyType.ARRAY)
709 719
710 def _IsFundamentalOrFundamentalRef(self, prop): 720 def _IsFundamentalOrFundamentalRef(self, prop):
711 """Determines if this property is a Fundamental type or is a ref to a 721 """Determines if this property is a Fundamental type or is a ref to a
712 Fundamental type. 722 Fundamental type.
713 """ 723 """
714 return (self._cpp_type_generator.GetReferencedProperty(prop).type_. 724 return (self._cpp_type_generator.GetReferencedProperty(prop).type_.
715 is_fundamental) 725 is_fundamental)
OLDNEW
« no previous file with comments | « ppapi/native_client/tests/ppapi_example_audio/audio.cc ('k') | tools/json_schema_compiler/cpp_type_generator.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698