def register_functions(root_module): module = root_module module.add_function( 'tr_sessionLoadSettings', typedefs.ErrorCheckReturn('bool', exception='PyExc_ValueError', error_string='"unable to load settings"', error_cleanup='Py_DECREF(py_dictionary);\n'), [ typedefs.BencOutParam('BencDict *', 'dictionary'), param('char *', 'config_dir', default_value='NULL'), param('char *', 'app_name', default_value='(char*)"Transmission"') ], custom_name='user_settings', docstring= "Load settings from the configuration directory's settings.json file " "using Transmission's default settings as fallbacks for missing keys\\n\\n" "Args:\\n" " config_dir (str): configuration directory or None\\n" " app_name (str): used to find default configuration directory if " "config_dir is None\\n" "Returns:\\n" " (BencDict) user settings") module.add_function('tr_sessionGetDefaultSettings', 'void', [typedefs.BencOutParam('BencDict *', 'dictionary')], custom_name='default_settings', docstring="Get Transmission's default settings\\n\\n" "Returns:\\n" " (BencDict) default settings") module.add_function( 'tr_getDefaultConfigDir', 'char const *', [param('char const *', 'app_name', default_value='"Transmission"')], custom_name='default_config_dir', docstring="Get the default configuration directory\\n\\n" "Returns:\\n" " (str) default configuration directory") module.add_function('tr_getDefaultDownloadDir', 'char const *', [], custom_name='default_download_dir', docstring="Get the default download directory\\n\\n" "Returns:\\n" " (str) default download directory") module.add_function('tr_getMessageQueuing', 'bool', [], custom_name='message_queuing_enabled', docstring="Check if message queuing is enabled\\n\\n" "Returns:\\n" " (bool) queuing is enabled") module.add_function( 'tr_setMessageQueuing', 'void', [param('bool', 'enabled')], custom_name='message_queuing_set', docstring= "If enabled logging messages will be queued instead of going to stderr\\n\\n" "Args:\\n" " enabled (bool): turn on/off message queuing\\n") module.add_function('tr_getQueuedMessages', ReturnValue.new('tr_msg_list *', caller_owns_return=True), [], custom_name='queued_messages', docstring="Retrieve a list of queued messaged\\n\\n" "Returns:\\n" " (list) logged messages") module.add_function('tr_torrentsQueueMoveUp', 'void', [typedefs.ListParam('Torrent', 'torrents')], custom_name='queue_move_up', docstring="Move Torrents up in download queue\\n\\n" "Args:\\n" " torrents (list): Torrents to move\\n") module.add_function('tr_torrentsQueueMoveDown', 'void', [typedefs.ListParam('Torrent', 'torrents')], custom_name='queue_move_down', docstring="Move Torrents down in download queue\\n\\n" "Args:\\n" " torrents (list): Torrents to move\\n") module.add_function( 'tr_torrentsQueueMoveTop', 'void', [typedefs.ListParam('Torrent', 'torrents')], custom_name='queue_move_top', docstring="Move Torrents to top of download queue\\n\\n" "Args:\\n" " torrents (list): Torrents to move\\n") module.add_function( 'tr_torrentsQueueMoveBottom', 'void', [typedefs.ListParam('Torrent', 'torrents')], custom_name='queue_move_bottom', docstring="Move Torrents to bottom of download queue\\n\\n" "Args:\\n" " torrents (list): Torrents to move\\n") submodule = SubModule( 'formatter', parent=module, docstring= "Utility functions for setting the unit formatting strings for printing" ) submodule.add_function( 'tr_formatter_mem_init', 'void', [ param('unsigned int', 'kilo', default_value='1000'), param('const char *', 'kb', default_value='"KiB"'), param('const char *', 'mb', default_value='"MiB"'), param('const char *', 'gb', default_value='"GiB"'), param('const char *', 'tb', default_value='"TiB"') ], custom_name='memory_units', docstring= "Set the multiplier and formatting strings for memory units\\n\\n" "Args:\\n" " kilo (int): Thousands multiplier\\n" " kb (str): Kilobytes string representation\\n" " mb (str): Megabytes string representation\\n" " gb (str): Gigabytes string representation\\n" " tb (str): Terabytes string representation\\n") submodule.add_function( 'tr_formatter_size_init', 'void', [ param('unsigned int', 'kilo'), param('const char *', 'kb'), param('const char *', 'mb'), param('const char *', 'gb'), param('const char *', 'tb') ], custom_name='size_units', docstring= "Set the multiplier and formatting strings for file size units\\n\\n" "Args:\\n" " kilo (int): Thousands multiplier\\n" " kb (str): Kilobytes string representation\\n" " mb (str): Megabytes string representation\\n" " gb (str): Gigabytes string representation\\n" " tb (str): Terabytes string representation\\n") submodule.add_function( 'tr_formatter_speed_init', 'void', [ param('unsigned int', 'kilo'), param('const char *', 'kb'), param('const char *', 'mb'), param('const char *', 'gb'), param('const char *', 'tb') ], custom_name='speed_units', docstring= "Set the multiplier and formatting strings for network speed units\\n\\n" "Args:\\n" " kilo (int): Thousands multiplier\\n" " kb (str): Kilobytes string representation\\n" " mb (str): Megabytes string representation\\n" " gb (str): Gigabytes string representation\\n" " tb (str): Terabytes string representation\\n") return
def generate(file_): # Declare modules bamboo = Module('bamboo', cpp_namespace="::bamboo") bits = SubModule('bits', bamboo) module = SubModule('module', bamboo) traits = SubModule('traits', bamboo) dcfile = SubModule('dcfile', bamboo) wire = SubModule('wire', bamboo) # Declare includes bits.add_include('"bits/byteorder.h"') bits.add_include('"bits/sizetag.h"') bits.add_include('"bits/errors.h"') module.add_include('"module/Array.h"') module.add_include('"module/Class.h"') module.add_include('"module/Type.h"') module.add_include('"module/Field.h"') module.add_include('"module/KeywordList.h"') module.add_include('"module/Method.h"') module.add_include('"module/Module.h"') module.add_include('"module/MolecularField.h"') module.add_include('"module/NumericRange.h"') module.add_include('"module/Numeric.h"') module.add_include('"module/Parameter.h"') module.add_include('"module/Struct.h"') module.add_include('"module/Value.h"') traits.add_include('"traits/hashes.h"') dcfile.add_include('"dcfile/format.h"') dcfile.add_include('"dcfile/parse.h"') dcfile.add_include('"dcfile/write.h"') wire.add_include('"wire/Datagram.h"') wire.add_include('"wire/DatagramIterator.h"') # Declare classes indexError = bamboo.add_exception('out_of_range', custom_name = 'IndexError', foreign_cpp_namespace = 'std', message_rvalue = 'exc.what()', is_standard_error = True) nullError = bamboo.add_exception('invalid_argument', custom_name = 'TypeError', foreign_cpp_namespace = 'std', message_rvalue = "'\"NoneType' object\" + exc.reason()", is_standard_error = True) clsKeywordList = module.add_class('KeywordList', docstring = classDocstrings['KeywordList']) clsModule = module.add_class('Module', docstring = classDocstrings['Module']) clsType = module.add_class('Type', docstring = classDocstrings['Type']) clsNumType = module.add_class('Numeric',parent = clsType, docstring = classDocstrings['Numeric']) clsArrType = module.add_class('Array', parent = clsType, docstring = classDocstrings['Array']) clsMethod = module.add_class('Method', parent = clsType, docstring = classDocstrings['Method']) clsStruct = module.add_class('Struct', parent = clsType, docstring = classDocstrings['Struct']) clsClass = module.add_class('Class', parent = clsStruct, docstring = classDocstrings['Class']) clsParam = module.add_class('Parameter', docstring = classDocstrings['Parameter']) clsField = module.add_class('Field', parent = clsKeywordList, docstring = classDocstrings['Field']) clsMolecular = module.add_class('MolecularField', parent = [clsField, clsStruct]) structImport = module.add_struct('Import') structNumber = module.add_struct('Number') structNumericRange = module.add_struct('NumericRange') dgOverflowError = wire.add_exception('DatagramOverflow', message_rvalue = 'exc.what()') dgiEOFError = wire.add_exception('DatagramIteratorEOF', message_rvalue = 'exc.what()') clsDatagram = wire.add_class('Datagram', docstring = classDocstrings['Datagram']) clsDgIter = wire.add_class('DatagramIterator', docstring = classDocstrings['DatagramIterator']) # Declare enums enumSubtype = module.add_enum('Subtype', [ 'kTypeInt8', 'kTypeInt16', 'kTypeInt32', 'kTypeInt64', 'kTypeUint8', 'kTypeUint16', 'kTypeUint32', 'kTypeUint64', 'kTypeChar', 'kTypeFloat32', 'kTypeFloat64', 'kTypeString', 'kTypeVarstring', 'kTypeBlob', 'kTypeVarblob', 'kTypeStruct', 'kTypeMethod', 'kTypeInvalid']) enumNumtype = structNumber.add_enum('Type', ['kNaN', 'kInt', 'kUint', 'kFloat']) # Wrap STL containers bits.add_container('std::vector<std::string>', 'std::string', 'vector', custom_name = 'StringCollection') # Declare member variables structImport.add_copy_constructor() structImport.add_constructor([param('const std::string &', 'moduleName')]) structImport.add_instance_attribute('module', 'std::string') structImport.add_instance_attribute('symbols', 'std::vector<std::string>') structNumber.add_copy_constructor() structNumber.add_instance_attribute('type', 'bamboo::Number::Type') structNumber.add_instance_attribute('integer', 'int64_t') structNumber.add_instance_attribute('uinteger', 'uint64_t') structNumber.add_instance_attribute('floating', 'double') structNumericRange.add_copy_constructor() structNumericRange.add_instance_attribute('type', 'bamboo::Number::Type') structNumericRange.add_instance_attribute('min', 'Number') structNumericRange.add_instance_attribute('max', 'Number') # Declare functions/methods clsKeywordList.add_constructor([]) clsKeywordList.add_copy_constructor() add_method(clsKeywordList, 'has_keyword', retval('bool'), [param('std::string', 'keyword')], is_const = True) add_method(clsKeywordList, 'has_matching_keywords', retval('bool'), [param('const bamboo::KeywordList&', 'other')], is_const = True) add_method(clsKeywordList, 'num_keywords', retval('size_t'), [], is_const = True) add_method(clsKeywordList, 'get_keyword', retval('std::string'), [param('unsigned int', 'n')], is_const = True, throw = [indexError]) add_method(clsKeywordList, 'add_keyword', retval('bool'), [param('std::string', 'keyword')]) add_method(clsKeywordList, 'copy_keywords', None, [param('const bamboo::KeywordList&', 'other')]) clsModule.add_constructor([]) add_method(clsModule, 'num_classes', retval('size_t'), [], is_const = True) add_method(clsModule, 'num_structs', retval('size_t'), [], is_const = True) add_method(clsModule, 'num_types', retval('size_t'), [], is_const = True) add_method(clsModule, 'get_class', retval_ref('bamboo::Class *'), [param('unsigned int', 'n')], throw = [indexError]) add_method(clsModule, 'get_struct', retval_ref('bamboo::Struct *'), [param('unsigned int', 'n')], throw = [indexError]) add_method(clsModule, 'class_by_id', retval_ref('bamboo::Class *'), [param('unsigned int', 'id')]) add_method(clsModule, 'class_by_name', retval_ref('bamboo::Class *'), [param('std::string', 'name')]) add_method(clsModule, 'type_by_id', retval_ref('bamboo::Type *'), [param('unsigned int', 'id')]) add_method(clsModule, 'type_by_name', retval_ref('bamboo::Type *'), [param('std::string', 'name')]) add_method(clsModule, 'field_by_id', retval_ref('bamboo::Field *'), [param('unsigned int', 'id')]) add_method(clsModule, 'num_imports', retval('size_t'), [], is_const = True) add_method(clsModule, 'get_import', retval_ref('bamboo::Import *'), [param('unsigned int', 'n')], throw = [indexError]) add_method(clsModule, 'has_keyword', retval('bool'), [param('std::string', 'keyword')], is_const = True) add_method(clsModule, 'num_keywords', retval('size_t'), [], is_const = True) add_method(clsModule, 'get_keyword', retval('std::string'), [param('unsigned int', 'n')], is_const = True, throw = [indexError]) add_method(clsModule, 'add_class', retval('bool'), [param('std::unique_ptr<Class>', 'dclass')]) add_method(clsModule, 'add_struct', retval('bool'), [param('std::unique_ptr<Struct>', 'dstruct')]) add_method(clsModule, 'add_import', None, [param('std::unique_ptr<Import>', 'import')]) add_method(clsModule, 'add_typedef', retval('bool'), [param('std::string', 'name'), param('Type *', 'type', transfer_ownership = False)]) add_method(clsModule, 'add_keyword', None, [param('std::string', 'keyword')]) clsType.add_constructor([], visibility='protected') add_method(clsType, 'subtype', retval('bamboo::Subtype'), [], is_const = True) add_method(clsType, 'has_fixed_size', retval('bool'), [], is_const = True) add_method(clsType, 'fixed_size', retval('size_t'), [], is_const = True) add_method(clsType, 'has_alias', retval('bool'), [], is_const = True) add_method(clsType, 'alias', retval('std::string'), [], is_const = True) add_method(clsType, 'set_alias', None, [param('std::string', 'alias')]) add_method(clsType, 'as_struct', retval_ref('bamboo::Struct *'), []) add_method(clsType, 'as_method', retval_ref('bamboo::Method *'), []) add_method(clsType, 'as_array', retval_ref('bamboo::Array *'), []) add_method(clsType, 'as_numeric', retval_ref('bamboo::Numeric *'), []) add_method(clsType, 'to_string', retval('std::string'), []) clsNumType.add_constructor([param('bamboo::Subtype', 'subtype')]) add_method(clsNumType, 'divisor', retval('unsigned int'), [], is_const = True) add_method(clsNumType, 'has_modulus', retval('bool'), [], is_const = True) add_method(clsNumType, 'modulus', retval('double'), [], is_const = True) add_method(clsNumType, 'has_range', retval('bool'), [], is_const = True) add_method(clsNumType, 'range', retval('bamboo::NumericRange'), [], is_const = True) add_method(clsNumType, 'set_divisor', retval('bool'), [param('unsigned int', 'divisor')]) add_method(clsNumType, 'set_modulus', retval('bool'), [param('double', 'modulus')]) add_method(clsNumType, 'set_range', retval('bool'), [param('const NumericRange&', 'range')]) clsArrType.add_constructor([ param('bamboo::Type *', 'elementType', transfer_ownership = False), param('bamboo::NumericRange', 'arraySize', default_value = 'bamboo::NumericRange()')]) add_method(clsArrType, 'element_type', retval_ref('const bamboo::Type *'), [], is_const = True) add_method(clsArrType, 'array_size', retval('unsigned int'), [], is_const = True) add_method(clsArrType, 'has_range', retval('bool'), [], is_const = True) add_method(clsArrType, 'range', retval('bamboo::NumericRange'), [], is_const = True) clsMethod.add_constructor([]) add_method(clsMethod, 'num_parameters', retval('size_t'), [], is_const = True) add_method(clsMethod, 'get_parameter', retval_ref('bamboo::Parameter *'), [param('unsigned int', 'n')], throw = [indexError]) add_method(clsMethod, 'parameter_by_name', retval_ref('bamboo::Parameter *'), [param('std::string', 'name')]), add_method(clsMethod, 'add_parameter', retval('bool'), [param('std::unique_ptr<Parameter>', 'param')]) clsStruct.add_constructor([ param('bamboo::Module *', 'module', transfer_ownership = False), param('std::string', 'name')]) add_method(clsStruct, 'id', retval('unsigned int'), [], is_const = True) add_method(clsStruct, 'name', retval('std::string'), [], is_const = True) add_method(clsStruct, 'module', retval_ref('bamboo::Module *'), []) add_method(clsStruct, 'num_fields', retval('size_t'), [], is_const = True) add_method(clsStruct, 'get_field', retval_ref('bamboo::Field *'), [param('unsigned int', 'n')], throw = [indexError]) add_method(clsStruct, 'field_by_id', retval_ref('bamboo::Field *'), [param('unsigned int', 'id')]) add_method(clsStruct, 'field_by_name', retval_ref('bamboo::Field *'), [param('std::string', 'name')]) add_method(clsStruct, 'add_field', retval('bool'), [param('std::unique_ptr<Field>', 'field')]) add_method(clsStruct, 'as_class', retval_ref('bamboo::Class *'), []) clsClass.add_constructor([ param('bamboo::Module *', 'module', transfer_ownership = False), param('std::string', 'name')]) add_method(clsClass, 'num_parents', retval('size_t'), [], is_const = True) add_method(clsClass, 'get_parent', retval_ref('bamboo::Class *'), [param('unsigned int', 'n')], throw = [indexError]) add_method(clsClass, 'num_children', retval('size_t'), [], is_const = True) add_method(clsClass, 'get_child', retval_ref('bamboo::Class *'), [param('unsigned int', 'n')], throw = [indexError]) add_method(clsClass, 'has_constructor', retval('bool'), [], is_const = True) add_method(clsClass, 'constructor', retval_ref('bamboo::Field *'), []) add_method(clsClass, 'num_base_fields', retval('size_t'), [], is_const = True) add_method(clsClass, 'get_base_field', retval_ref('bamboo::Field *'), [param('unsigned int', 'n')], throw = [indexError]) add_method(clsClass, 'add_parent', retval('bool'), [param('bamboo::Class *', 'parent', transfer_ownership = False)]) clsParam.add_constructor([ param('bamboo::Type *', 'type', transfer_ownership = False), param('std::string', 'name', default_value = '""')]) add_method(clsParam, 'name', retval('std::string'), [], is_const = False) add_method(clsParam, 'type', retval_ref('bamboo::Type *'), []) add_method(clsParam, 'get_method', retval_ref('bamboo::Method *'), []) add_method(clsParam, 'has_default_value', retval('bool'), [], is_const = True), #add_method(clsParam, 'default_value', retval('const bamboo::Value'), [], is_const = True) add_method(clsParam, 'set_name', retval('bool'), [param('std::string', 'name')]) add_method(clsParam, 'set_type', retval('bool'), [param('bamboo::Type *', 'type', transfer_ownership = False)]), #add_method(clsParam, 'set_default_value', retval('bool'), [param('const bamboo::Value', 'value')]) #add_method(clsParam, 'set_default_value', retval('bool'), [param('const bamboo::Buffer&', 'value')]) clsField.add_constructor([ param('bamboo::Type *', 'type', transfer_ownership = False), param('std::string', 'name', default_value = '""')]) add_method(clsField, 'id', retval('unsigned int'), [], is_const = True) add_method(clsField, 'name', retval('std::string'), [], is_const = False) add_method(clsField, 'type', retval_ref('bamboo::Type *'), []) add_method(clsField, 'record', retval_ref('bamboo::Struct *'), []) add_method(clsField, 'has_default_value', retval('bool'), [], is_const = True), #add_method(clsField, 'default_value', retval('const bamboo::Value'), [], is_const = True) add_method(clsField, 'set_name', retval('bool'), [param('std::string', 'name')]) add_method(clsField, 'set_type', None, [param('bamboo::Type *', 'type', transfer_ownership = False)]), #add_method(clsField, 'set_default_value', retval('bool'), [param('const bamboo::Value', 'value')]) #add_method(clsField, 'set_default_value', retval('bool'), [param('const bamboo::Buffer&', 'value')]) clsMolecular.add_constructor([ param('bamboo::Class *', 'cls', transfer_ownership = False), param('std::string', 'name')]) clsDatagram.add_constructor([]) clsDatagram.add_copy_constructor() add_method(clsDatagram, 'size', retval('size_t'), [], is_const = True) add_method(clsDatagram, 'cap', retval('size_t'), [], is_const = True) add_method(clsDatagram, 'add_bool', None, [param('bool', 'value')], throw = [dgOverflowError]) add_method(clsDatagram, 'add_char', None, [param('char', 'value')], throw = [dgOverflowError]) add_method(clsDatagram, 'add_int8', None, [param('int8_t', 'value')], throw = [dgOverflowError]) add_method(clsDatagram, 'add_int16', None, [param('int16_t', 'value')], throw = [dgOverflowError]) add_method(clsDatagram, 'add_int32', None, [param('int32_t', 'value')], throw = [dgOverflowError]) add_method(clsDatagram, 'add_int64', None, [param('int64_t', 'value')], throw = [dgOverflowError]) add_method(clsDatagram, 'add_uint8', None, [param('uint8_t', 'value')], throw = [dgOverflowError]) add_method(clsDatagram, 'add_uint16', None, [param('uint16_t', 'value')], throw = [dgOverflowError]) add_method(clsDatagram, 'add_uint32', None, [param('uint32_t', 'value')], throw = [dgOverflowError]) add_method(clsDatagram, 'add_uint64', None, [param('uint64_t', 'value')], throw = [dgOverflowError]) add_method(clsDatagram, 'add_float32', None, [param('float', 'value')], throw = [dgOverflowError]) add_method(clsDatagram, 'add_float64', None, [param('double', 'value')], throw = [dgOverflowError]) add_custom_method(clsDatagram, 'add_data') add_custom_method(clsDatagram, 'add_value') add_custom_method(clsDatagram, 'data', ('METH_NOARGS',)) # add_string also moonlights as add_blob and addBlob add_method(clsDatagram, 'add_string', None, [param('std::string', 'value')], throw = [dgOverflowError]) clsDgIter.add_constructor([ param('const bamboo::Datagram&', 'dg'), param('size_t', 'offset', default_value = '0')]) clsDgIter.add_copy_constructor() add_method(clsDgIter, 'tell', retval('size_t'), [], is_const = True) add_method(clsDgIter, 'seek', None, [param('size_t', 'offset')]) add_method(clsDgIter, 'skip', None, [param('size_t', 'length')], throw = [dgiEOFError]) add_method(clsDgIter, 'skip_type', None, [param('const bamboo::Type *', 'type', transfer_ownership = False)], throw = [dgiEOFError]) add_method(clsDgIter, 'remaining', retval('size_t'), [], is_const = True) add_method(clsDgIter, 'read_bool', retval('bool'), [], throw = [dgiEOFError]) add_method(clsDgIter, 'read_char', retval('char'), [], throw = [dgiEOFError]) add_method(clsDgIter, 'read_int8', retval('int8_t'), [], throw = [dgiEOFError]) add_method(clsDgIter, 'read_int16', retval('int16_t'), [], throw = [dgiEOFError]) add_method(clsDgIter, 'read_int32', retval('int32_t'), [], throw = [dgiEOFError]) add_method(clsDgIter, 'read_int64', retval('int64_t'), [], throw = [dgiEOFError]) add_method(clsDgIter, 'read_uint8', retval('uint8_t'), [], throw = [dgiEOFError]) add_method(clsDgIter, 'read_uint16', retval('uint16_t'), [], throw = [dgiEOFError]) add_method(clsDgIter, 'read_uint32', retval('uint32_t'), [], throw = [dgiEOFError]) add_method(clsDgIter, 'read_uint64', retval('uint64_t'), [], throw = [dgiEOFError]) add_method(clsDgIter, 'read_float32', retval('float'), [], throw = [dgiEOFError]) add_method(clsDgIter, 'read_float64', retval('double'), [], throw = [dgiEOFError]) add_method(clsDgIter, 'read_size', retval('size_t'), [], throw = [dgiEOFError]) # read_string also moonlights as read_blob and readBlob add_method(clsDgIter, 'read_string', retval('std::string'), [], throw = [dgiEOFError]) add_method(clsDgIter, 'read_datagram', retval('bamboo::Datagram'), [], throw = [dgiEOFError]) add_custom_method(clsDgIter, 'read_value') #add_method(clsDgIter, 'read_value', retval('bamboo::Value'), # [param('const bamboo::Type *', 'type', transfer_ownership = False)]) #add_method(clsDgIter, 'read_data', retval('std::string'), [param('size_t', 'length')]) #add_method(clsDgIter, 'read_remainder', retval('std::string'), []) add_function(traits, 'legacy_hash', retval('uint32_t'), [param('const bamboo::Module *', 'module', transfer_ownership = False)]) add_function(dcfile, 'read_dcfile', retval('bamboo::Module *', caller_owns_return = True), [param('std::string', 'filename')]) add_function(dcfile, 'parse_dcfile', retval('bool'), [param('bamboo::Module *', 'module', transfer_ownership = False), param('std::string', 'filename')]) #add_function(dcfile, 'parse_dcvalue', retval('bamboo::Buffer'), # [param('const bamboo::Type *', 'type', transfer_ownership = False), # param('std::string', 'formattedValue'), param('bool&', 'isError')]) bamboo.generate(file_)
def register_types(module): root_module = module.get_root() submodule = SubModule('torrent_error_type', parent=root_module) submodule.add_enum('tr_stat_errtype', [('OK', 'TR_STAT_OK'), ('TRACKER_WARNING', 'TR_STAT_TRACKER_WARNING'), ('TRACKER_ERROR', 'TR_STAT_TRACKER_ERROR'), ('LOCAL_ERROR', 'TR_STAT_LOCAL_ERROR')]) submodule = SubModule('torrent_activity', parent=root_module) submodule.add_enum('tr_torrent_activity', [('STOPPED', 'TR_STATUS_STOPPED'), ('CHECK_WAIT', 'TR_STATUS_CHECK_WAIT'), ('CHECK', 'TR_STATUS_CHECK'), ('DOWNLOAD_WAIT', 'TR_STATUS_DOWNLOAD_WAIT'), ('DOWNLOAD', 'TR_STATUS_DOWNLOAD'), ('SEED_WAIT', 'TR_STATUS_SEED_WAIT'), ('SEED', 'TR_STATUS_SEED')]) submodule = SubModule('tracker_state', parent=root_module) submodule.add_enum('tr_tracker_state', [('INACTIVE', 'TR_TRACKER_INACTIVE'), ('WAITING', 'TR_TRACKER_WAITING'), ('QUEUED', 'TR_TRACKER_QUEUED'), ('ACTIVE', 'TR_TRACKER_ACTIVE')]) submodule = SubModule('scheduled_days', parent=root_module) submodule.add_enum('tr_sched_day', [('SUN', 'TR_SCHED_SUN'), ('MON', 'TR_SCHED_MON'), ('TUES', 'TR_SCHED_TUES'), ('WED', 'TR_SCHED_WED'), ('THURS', 'TR_SCHED_THURS'), ('FRI', 'TR_SCHED_FRI'), ('SAT', 'TR_SCHED_SAT'), ('WEEKDAY', 'TR_SCHED_WEEKDAY'), ('WEEKEND', 'TR_SCHED_WEEKEND'), ('ALL', 'TR_SCHED_ALL')]) submodule = SubModule('encryption_mode', parent=root_module) submodule.add_enum('tr_encryption_mode', [('CLEAR_PREFERRED', 'TR_CLEAR_PREFERRED'), ('ENCRYPTION_PREFERRED', 'TR_ENCRYPTION_PREFERRED'), ('ENCRYPTION_REQUIRED', 'TR_ENCRYPTION_REQUIRED')]) submodule = SubModule('direction', parent=root_module) submodule.add_enum('tr_direction', [('CLIENT_TO_PEER', 'TR_CLIENT_TO_PEER'), ('UP', 'TR_UP'), ('PEER_TO_CLIENT', 'TR_PEER_TO_CLIENT'), ('DOWN', 'TR_DOWN')]) submodule = SubModule('ratio_limit', parent=root_module) submodule.add_enum('tr_ratiolimit', [('GLOBAL', 'TR_RATIOLIMIT_GLOBAL'), ('SINGLE', 'TR_RATIOLIMIT_SINGLE'), ('UNLIMITED', 'TR_RATIOLIMIT_UNLIMITED')]) submodule = SubModule('idle_limit', parent=root_module) submodule.add_enum('tr_idlelimit', [('GLOBAL', 'TR_IDLELIMIT_GLOBAL'), ('SINGLE', 'TR_IDLELIMIT_SINGLE'), ('UNLIMITED', 'TR_IDLELIMIT_UNLIMITED')]) submodule = SubModule('preallocation_mode', parent=root_module) submodule.add_enum('tr_preallocation_mode', [('NONE', 'TR_PREALLOCATE_NONE'), ('SPARCE', 'TR_PREALLOCATE_SPARSE'), ('FULL', 'TR_PREALLOCATE_FULL')]) submodule = SubModule('completeness', parent=root_module) submodule.add_enum('tr_completeness', [('LEECH', 'TR_LEECH'), ('SEED', 'TR_SEED'), ('PARTIAL_SEED', 'TR_PARTIAL_SEED')]) submodule = SubModule('rpc_callback_type', parent=root_module) submodule.add_enum('tr_rpc_callback_type', [('TORRENT_ADDED', 'TR_RPC_TORRENT_ADDED'), ('TORRENT_STARTED', 'TR_RPC_TORRENT_STARTED'), ('TORRENT_STOPPED', 'TR_RPC_TORRENT_STOPPED'), ('TORRENT_REMOVING', 'TR_RPC_TORRENT_REMOVING'), ('TORRENT_THRASHING', 'TR_RPC_TORRENT_TRASHING'), ('TORRENT_CHANGED', 'TR_RPC_TORRENT_CHANGED'), ('TORRENT_MOVED', 'TR_RPC_TORRENT_MOVED'), ('SESSION_CHANGED', 'TR_RPC_SESSION_CHANGED'), ('SESSION_QUEUE_POSITIONS_CHANGED', 'TR_RPC_SESSION_QUEUE_POSITIONS_CHANGED'), ('SESSION_CLOSE', 'TR_RPC_SESSION_CLOSE')]) submodule = SubModule('rpc_callback_status', parent=root_module) submodule.add_enum('tr_rpc_callback_status', [('OK', 'TR_RPC_OK'), ('NOREMOVE', 'TR_RPC_NOREMOVE')]) submodule = SubModule('port_forwarding', parent=root_module) submodule.add_enum('tr_port_forwarding', [('ERROR', 'TR_PORT_ERROR'), ('UNMAPPED', 'TR_PORT_UNMAPPED'), ('UNMAPPING', 'TR_PORT_UNMAPPING'), ('MAPPING', 'TR_PORT_MAPPING'), ('MAPPED', 'TR_PORT_MAPPED')]) submodule = SubModule('msg_level', parent=root_module) submodule.add_enum('tr_msg_level', [('ERROR', 'TR_MSG_ERR'), ('INF', 'TR_MSG_INF'), ('DEBUG', 'TR_MSG_DBG')]) submodule = SubModule('parse_result', parent=root_module) submodule.add_enum('tr_parse_result', [('OK', 'TR_PARSE_OK'), ('ERROR', 'TR_PARSE_ERR'), ('DUPLICATE', 'TR_PARSE_DUPLICATE')]) submodule = SubModule('torrent_constructor_mode', parent=root_module) submodule.add_enum('tr_ctorMode', [('FALLBACK', 'TR_FALLBACK'), ('FORCE', 'TR_FORCE')]) submodule = SubModule('location_state', parent=root_module) submodule.add_enum('', [('MOVING', 'TR_LOC_MOVING'), ('DONE', 'TR_LOC_DONE'), ('ERROR', 'TR_LOC_ERROR')]) submodule = SubModule('priority', parent=root_module) submodule.add_enum('', [('LOW', 'TR_PRI_LOW'), ('NORMAL', 'TR_PRI_NORMAL'), ('HIGH', 'TR_PRI_HIGH')]) submodule = SubModule('peers_from_index', parent=root_module) submodule.add_enum('', [('INCOMING', 'TR_PEER_FROM_INCOMING'), ('LPD', 'TR_PEER_FROM_LPD'), ('TRACKER', 'TR_PEER_FROM_TRACKER'), ('DHT', 'TR_PEER_FROM_DHT'), ('PEX', 'TR_PEER_FROM_PEX'), ('RESUME', 'TR_PEER_FROM_RESUME'), ('LTEP', 'TR_PEER_FROM_LTEP')]) submodule = SubModule('benc_serialization_mode', parent=root_module) submodule.add_enum('tr_fmt_mode', [('BENC', 'TR_FMT_BENC'), ('JSON', 'TR_FMT_JSON'), ('JSON_LEAN', 'TR_FMT_JSON_LEAN')]) submodule = SubModule('benc_type', parent=root_module) submodule.add_enum('', [('INT', 'TR_TYPE_INT'), ('STRING', 'TR_TYPE_STR'), ('LIST', 'TR_TYPE_LIST'), ('DICT', 'TR_TYPE_DICT'), ('BOOL', 'TR_TYPE_BOOL'), ('REAL', 'TR_TYPE_REAL')]) ## tr_info.cc module.begin_section('tr_info') module.add_struct('tr_info', no_constructor=True, no_copy=True, memory_policy=TrFreeFunctionPolicy('tr_metainfoFree'), custom_name='TorrentInfo') module.add_struct('tr_file', no_constructor=True, no_copy=True, custom_name='File') module.add_struct('tr_piece', no_constructor=True, no_copy=True, custom_name='FilePiece') module.add_struct('tr_tracker_info', no_constructor=True, no_copy=True, custom_name='TrackerInfo') module.add_struct('tr_tracker_stat', no_constructor=True, no_copy=True, free_function='tr_free', custom_name='TrackerStats') module.end_section('tr_info') ## tr_torrent.cc module.begin_section('tr_torrent') torrent = module.add_struct( 'tr_torrent', no_constructor=True, no_copy=True, memory_policy=TrFreeFunctionPolicy('tr_torrentFree'), custom_name='Torrent') #torrent.cannot_be_constructed = "use factory function Session.torrent_new()" module.add_struct('tr_ctor', no_constructor=True, no_copy=True, memory_policy=TrFreeFunctionPolicy('tr_ctorFree'), custom_name='TorrentConstructor') module.add_struct('tr_stat', no_constructor=True, no_copy=True, memory_policy=TrFreeFunctionPolicy('tr_free'), custom_name='TorrentStats') module.add_struct('tr_peer_stat', no_constructor=True, no_copy=True, memory_policy=TrFreeFunctionPolicy('tr_free'), custom_name='PeerStats') module.add_struct('tr_file_stat', no_constructor=True, no_copy=True, free_function='tr_free', custom_name='FileStats') module.end_section('tr_torrent') ## tr_session.cc module.begin_section('tr_session') module.add_struct('tr_session', no_constructor=True, no_copy=True, memory_policy=TrFreeFunctionPolicy('tr_sessionClose'), custom_name='Session') module.add_struct('tr_session_stats', no_constructor=True, no_copy=True, memory_policy=cppclass.FreeFunctionPolicy('tr_free'), custom_name='SessionStats') module.add_struct('tr_msg_list', no_constructor=True, no_copy=True, free_function='tr_freeMessageList', custom_name='Message') module.end_section('tr_session') ## tr_benc.cc module.begin_section('tr_benc') submodule = SubModule('bencode', parent=root_module) benc = submodule.add_struct('Benc', no_constructor=True, no_copy=True, memory_policy=BencMemoryPolicy()) benc.full_name = 'tr_benc' submodule.add_struct('BencInt', parent=benc, no_constructor=True, no_copy=True).full_name = 'tr_benc' submodule.add_struct('BencString', parent=benc, no_constructor=True, no_copy=True).full_name = 'tr_benc' submodule.add_struct('BencList', parent=benc, no_constructor=True, no_copy=True).full_name = 'tr_benc' submodule.add_struct('BencDict', parent=benc, no_constructor=True, no_copy=True).full_name = 'tr_benc' submodule.add_struct('BencBool', parent=benc, no_constructor=True, no_copy=True).full_name = 'tr_benc' submodule.add_struct('BencReal', parent=benc, no_constructor=True, no_copy=True).full_name = 'tr_benc' module.end_section('tr_benc') typehandlers.add_type_alias('uint32_t', 'tr_piece_index_t') typehandlers.add_type_alias('uint32_t', 'tr_file_index_t') typehandlers.add_type_alias('uint32_t*', 'tr_file_index_t*') typehandlers.add_type_alias('long int', 'time_t') typehandlers.add_type_alias('int8_t', 'tr_priority_t') typehandlers.add_type_alias('uint16_t', 'tr_port')