def register_Ns3Time_methods(root_module, cls):
    cls.add_binary_comparison_operator('==')
    cls.add_binary_comparison_operator('!=')
    cls.add_binary_comparison_operator('<=')
    cls.add_binary_comparison_operator('>=')
    cls.add_binary_comparison_operator('<')
    cls.add_binary_comparison_operator('>')
    cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', u'right'))
    cls.add_binary_numeric_operator('-', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', u'right'))
    cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('int64_t const &', u'right'))
    cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::int64x64_t const &', u'right'))
    cls.add_binary_numeric_operator('/', root_module['ns3::int64x64_t'], root_module['ns3::Time'], param('ns3::Time const &', u'right'))
    cls.add_binary_numeric_operator('/', root_module['ns3::Time'], root_module['ns3::Time'], param('int64_t const &', u'right'))
    cls.add_binary_numeric_operator('/', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::int64x64_t const &', u'right'))
    cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', u'right'))
    cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', u'right'))
    cls.add_output_stream_operator()
    cls.add_constructor([])
    cls.add_constructor([param('ns3::Time const &', 'o')])
    cls.add_constructor([param('double', 'v')])
    cls.add_constructor([param('int', 'v')])
    cls.add_constructor([param('long int', 'v')])
    cls.add_constructor([param('long long int', 'v')])
    cls.add_constructor([param('unsigned int', 'v')])
    cls.add_constructor([param('long unsigned int', 'v')])
    cls.add_constructor([param('long long unsigned int', 'v')])
    cls.add_constructor([param('ns3::int64x64_t const &', 'v')])
    cls.add_constructor([param('std::string const &', 's')])
    cls.add_method('As', 'ns3::TimeWithUnit', [param('ns3::Time::Unit const', 'unit')], is_const=True)
    cls.add_method('Compare', 'int', [param('ns3::Time const &', 'o')], is_const=True)
    cls.add_method('From', 'ns3::Time', [param('ns3::int64x64_t const &', 'value')], is_static=True)
    cls.add_method('From', 'ns3::Time', [param('ns3::int64x64_t const &', 'value'), param('ns3::Time::Unit', 'unit')], is_static=True)
    cls.add_method('FromDouble', 'ns3::Time', [param('double', 'value'), param('ns3::Time::Unit', 'unit')], is_static=True)
    cls.add_method('FromInteger', 'ns3::Time', [param('uint64_t', 'value'), param('ns3::Time::Unit', 'unit')], is_static=True)
    cls.add_method('GetDays', 'double', [], is_const=True)
    cls.add_method('GetDouble', 'double', [], is_const=True)
    cls.add_method('GetFemtoSeconds', 'int64_t', [], is_const=True)
    cls.add_method('GetHours', 'double', [], is_const=True)
    cls.add_method('GetInteger', 'int64_t', [], is_const=True)
    cls.add_method('GetMicroSeconds', 'int64_t', [], is_const=True)
    cls.add_method('GetMilliSeconds', 'int64_t', [], is_const=True)
    cls.add_method('GetMinutes', 'double', [], is_const=True)
    cls.add_method('GetNanoSeconds', 'int64_t', [], is_const=True)
    cls.add_method('GetPicoSeconds', 'int64_t', [], is_const=True)
    cls.add_method('GetResolution', 'ns3::Time::Unit', [], is_static=True)
    cls.add_method('GetSeconds', 'double', [], is_const=True)
    cls.add_method('GetTimeStep', 'int64_t', [], is_const=True)
    cls.add_method('GetYears', 'double', [], is_const=True)
    cls.add_method('IsNegative', 'bool', [], is_const=True)
    cls.add_method('IsPositive', 'bool', [], is_const=True)
    cls.add_method('IsStrictlyNegative', 'bool', [], is_const=True)
    cls.add_method('IsStrictlyPositive', 'bool', [], is_const=True)
    cls.add_method('IsZero', 'bool', [], is_const=True)
    cls.add_method('Max', 'ns3::Time', [], is_static=True)
    cls.add_method('Min', 'ns3::Time', [], is_static=True)
    cls.add_method('SetResolution', 'void', [param('ns3::Time::Unit', 'resolution')], is_static=True)
    cls.add_method('StaticInit', 'bool', [], is_static=True)
    cls.add_method('To', 'ns3::int64x64_t', [param('ns3::Time::Unit', 'unit')], is_const=True)
    cls.add_method('ToDouble', 'double', [param('ns3::Time::Unit', 'unit')], is_const=True)
    cls.add_method('ToInteger', 'int64_t', [param('ns3::Time::Unit', 'unit')], is_const=True)
    return
def register_Ns3Time_methods(root_module, cls):
    cls.add_binary_comparison_operator('==')
    cls.add_binary_comparison_operator('!=')
    cls.add_binary_comparison_operator('<=')
    cls.add_binary_comparison_operator('>=')
    cls.add_binary_comparison_operator('<')
    cls.add_binary_comparison_operator('>')
    cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', u'right'))
    cls.add_binary_numeric_operator('-', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', u'right'))
    cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('int64_t const &', u'right'))
    cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::int64x64_t const &', u'right'))
    cls.add_binary_numeric_operator('/', root_module['ns3::int64x64_t'], root_module['ns3::Time'], param('ns3::Time const &', u'right'))
    cls.add_binary_numeric_operator('/', root_module['ns3::Time'], root_module['ns3::Time'], param('int64_t const &', u'right'))
    cls.add_binary_numeric_operator('/', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::int64x64_t const &', u'right'))
    cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', u'right'))
    cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', u'right'))
    cls.add_output_stream_operator()
    cls.add_constructor([])
    cls.add_constructor([param('ns3::Time const &', 'o')])
    cls.add_constructor([param('double', 'v')])
    cls.add_constructor([param('int', 'v')])
    cls.add_constructor([param('long int', 'v')])
    cls.add_constructor([param('long long int', 'v')])
    cls.add_constructor([param('unsigned int', 'v')])
    cls.add_constructor([param('long unsigned int', 'v')])
    cls.add_constructor([param('long long unsigned int', 'v')])
    cls.add_constructor([param('ns3::int64x64_t const &', 'v')])
    cls.add_constructor([param('std::string const &', 's')])
    cls.add_method('As', 'ns3::TimeWithUnit', [param('ns3::Time::Unit const', 'unit')], is_const=True)
    cls.add_method('Compare', 'int', [param('ns3::Time const &', 'o')], is_const=True)
    cls.add_method('From', 'ns3::Time', [param('ns3::int64x64_t const &', 'value')], is_static=True)
    cls.add_method('From', 'ns3::Time', [param('ns3::int64x64_t const &', 'value'), param('ns3::Time::Unit', 'unit')], is_static=True)
    cls.add_method('FromDouble', 'ns3::Time', [param('double', 'value'), param('ns3::Time::Unit', 'unit')], is_static=True)
    cls.add_method('FromInteger', 'ns3::Time', [param('uint64_t', 'value'), param('ns3::Time::Unit', 'unit')], is_static=True)
    cls.add_method('GetDays', 'double', [], is_const=True)
    cls.add_method('GetDouble', 'double', [], is_const=True)
    cls.add_method('GetFemtoSeconds', 'int64_t', [], is_const=True)
    cls.add_method('GetHours', 'double', [], is_const=True)
    cls.add_method('GetInteger', 'int64_t', [], is_const=True)
    cls.add_method('GetMicroSeconds', 'int64_t', [], is_const=True)
    cls.add_method('GetMilliSeconds', 'int64_t', [], is_const=True)
    cls.add_method('GetMinutes', 'double', [], is_const=True)
    cls.add_method('GetNanoSeconds', 'int64_t', [], is_const=True)
    cls.add_method('GetPicoSeconds', 'int64_t', [], is_const=True)
    cls.add_method('GetResolution', 'ns3::Time::Unit', [], is_static=True)
    cls.add_method('GetSeconds', 'double', [], is_const=True)
    cls.add_method('GetTimeStep', 'int64_t', [], is_const=True)
    cls.add_method('GetYears', 'double', [], is_const=True)
    cls.add_method('IsNegative', 'bool', [], is_const=True)
    cls.add_method('IsPositive', 'bool', [], is_const=True)
    cls.add_method('IsStrictlyNegative', 'bool', [], is_const=True)
    cls.add_method('IsStrictlyPositive', 'bool', [], is_const=True)
    cls.add_method('IsZero', 'bool', [], is_const=True)
    cls.add_method('Max', 'ns3::Time', [], is_static=True)
    cls.add_method('Min', 'ns3::Time', [], is_static=True)
    cls.add_method('SetResolution', 'void', [param('ns3::Time::Unit', 'resolution')], is_static=True)
    cls.add_method('StaticInit', 'bool', [], is_static=True)
    cls.add_method('To', 'ns3::int64x64_t', [param('ns3::Time::Unit', 'unit')], is_const=True)
    cls.add_method('ToDouble', 'double', [param('ns3::Time::Unit', 'unit')], is_const=True)
    cls.add_method('ToInteger', 'int64_t', [param('ns3::Time::Unit', 'unit')], is_const=True)
    return