in src/python/qpid_interop_test/amqp_complex_types_test_generator.py [0:0]
def _write_data_pair(self, data_pair, instance_name_list=None, trailing_comma_flag=True):
"""
Write a JOSN pair ['amqp_type', value]. If amqp_type is complex or a proton type, pop instance name from
intance_name_list (which has been previously declared).
"""
trailing_comma_string = ', ' if trailing_comma_flag else ''
amqp_type, value = data_pair
if amqp_type == 'null':
self.target_file.write('nullptr%s' % trailing_comma_string)
elif amqp_type == 'boolean':
self.target_file.write('%s%s' % (str(value).lower(), trailing_comma_string))
elif amqp_type == 'ubyte':
self.target_file.write('uint8_t(%s)%s' % (value, trailing_comma_string))
elif amqp_type == 'byte':
self.target_file.write('int8_t(%s)%s' % (value, trailing_comma_string))
elif amqp_type == 'ushort':
self.target_file.write('uint16_t(%s)%s' % (value, trailing_comma_string))
elif amqp_type == 'short':
self.target_file.write('int16_t(%s)%s' % (value, trailing_comma_string))
elif amqp_type == 'uint':
self.target_file.write('uint32_t(%s)%s' % (value, trailing_comma_string))
elif amqp_type == 'int':
self.target_file.write('int32_t(%s)%s' % (value, trailing_comma_string))
elif amqp_type == 'ulong':
self.target_file.write('uint64_t(%s)%s' % (value, trailing_comma_string))
elif amqp_type == 'long':
self.target_file.write('int64_t(%s)%s' % (value, trailing_comma_string))
elif amqp_type == 'float':
if isinstance(value, str):
if value == 'inf':
self.target_file.write('std::numeric_limits<float>::infinity()%s' % trailing_comma_string)
elif value == '-inf':
self.target_file.write('-std::numeric_limits<float>::infinity()%s' % trailing_comma_string)
elif value == 'NaN':
self.target_file.write('std::numeric_limits<float>::quiet_NaN()%s' % trailing_comma_string)
else:
self.target_file.write('float(%s)%s' % (value, trailing_comma_string))
else:
self.target_file.write('float(%s)%s' % (str(value), trailing_comma_string))
elif amqp_type == 'double':
if isinstance(value, str):
if value == 'inf':
self.target_file.write('std::numeric_limits<double>::infinity()%s' % trailing_comma_string)
elif value == '-inf':
self.target_file.write('-std::numeric_limits<double>::infinity()%s' % trailing_comma_string)
elif value == 'NaN':
self.target_file.write('std::numeric_limits<double>::quiet_NaN()%s' % trailing_comma_string)
else:
self.target_file.write('double(%s)%s' % (value, trailing_comma_string))
else:
self.target_file.write('double(%s)%s' % (str(value), trailing_comma_string))
elif amqp_type == 'decimal32':
if instance_name_list is not None:
self.target_file.write('%s%s' % (instance_name_list.pop(0), trailing_comma_string))
elif amqp_type == 'decimal64':
if instance_name_list is not None:
self.target_file.write('%s%s' % (instance_name_list.pop(0), trailing_comma_string))
elif amqp_type == 'decimal128':
if instance_name_list is not None:
self.target_file.write('%s%s' % (instance_name_list.pop(0), trailing_comma_string))
elif amqp_type == 'char':
if len(value) == 1: # single char
self.target_file.write('wchar_t(\'%s\')%s' % (value, trailing_comma_string))
else:
self.target_file.write('wchar_t(%s)%s' % (value, trailing_comma_string))
elif amqp_type == 'timestamp':
if instance_name_list is not None:
self.target_file.write('%s%s' % (instance_name_list.pop(0), trailing_comma_string))
elif amqp_type == 'uuid':
if instance_name_list is not None:
self.target_file.write('%s%s' % (instance_name_list.pop(0), trailing_comma_string))
elif amqp_type == 'binary':
if instance_name_list is not None:
self.target_file.write('%s%s' % (instance_name_list.pop(0), trailing_comma_string))
elif amqp_type == 'string':
self.target_file.write('std::string("')
for char_ in value:
if char_ in ('\'', '"'):
self.target_file.write('\\')
self.target_file.write(char_)
self.target_file.write('")%s' % trailing_comma_string)
elif amqp_type == 'symbol':
if instance_name_list is not None:
self.target_file.write('%s%s' % (instance_name_list.pop(0), trailing_comma_string))
elif amqp_type == 'array':
if instance_name_list is not None and instance_name_list:
self.target_file.write('%s%s' % (instance_name_list.pop(0), trailing_comma_string))
elif amqp_type == 'list':
if instance_name_list is not None and instance_name_list:
self.target_file.write('%s%s' % (instance_name_list.pop(0), trailing_comma_string))
elif amqp_type == 'map':
if instance_name_list is not None and instance_name_list:
self.target_file.write('%s%s' % (instance_name_list.pop(0), trailing_comma_string))