else:
self._enum = None
self._getter = feature.get('getter')
+ self._since_tizen = feature.get('since_tizen')
self._type_casting = ''
self._broken = False
else:
print(f'#error Invalid key type: {self.type}')
+
def __eq__(self, other):
return self.name == other.name and \
self.type == other.type and \
return self._getter
@property
+ def since_tizen(self):
+ return self._since_tizen
+
+ @property
def argtype(self):
return self._argtype
if self.type == 'enum':
self.enum.print_enum_declaration()
+ print(
+ dedent(f'''\
+ /**
+ * @brief Gets the "{self.name}" value of the @a platform feature.
+ * @since_tizen {self.since_tizen}
+ * @param[out] value The value of the given platform feature
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #SYSTEM_INFO_ERROR_NONE Successful
+ * @retval #SYSTEM_INFO_ERROR_INVALID_PARAMETER Cannot find the @a key in the model config file
+ * @retval #SYSTEM_INFO_ERROR_IO_ERROR An input/output error occurred while reading the @a value from the model config file
+ * @retval #SYSTEM_INFO_ERROR_PERMISSION_DENIED No permission to use the API
+ */'''
+ )
+ )
+
print(f'''int system_info_get_{self.getter}({self.argtype}value);\n''')
def print_function_definition(self):
for data in feature.findall('./enumerator'):
name = data.text
value = data.get('value')
+ since_tizen = data.get('since_tizen')
+ desc = data.get('desc')
if name is None:
print('Invalid data name')
continue
- self.__add_data(name, value)
+ self.__add_data(name, value, since_tizen, desc)
+
+ #if value is None:
+ # self.__add_data(name, since_tizen=since_tizen)
+ #else:
+ # self.__add_data(name, int(value) since_tizen=since_tizen)
def __eq__(self, other):
return self.typename == other.typename and self.data == other.data
def broken(self, value):
self._broken = value
- def __add_data(self, name, value):
+ def __add_data(self, name, value, since_tizen, desc):
if name in self._data:
print(f'Error: Duplicate data {name}, reject')
return
value = int(value)
self._next_value = value + 1
- self._data[name] = value
+ self._data[name] = (value, since_tizen, desc)
def print_enum_declaration(self):
+ print(
+ dedent(f'''\
+ /**
+ * @brief enum for "{self.key_name}"
+ */'''
+ )
+ )
+
print('typedef enum {')
- for name,value in self.data.items():
- print(f' {name} = {value},')
+ for name,(value, since_tizen, desc) in self.data.items():
+ print(f' {name} = {value}, /**< @since_tizen {since_tizen}, {desc} */')
print(f'}} {self._typename};\n')