From fd774c3fb68af4971f6b1526ff4b7dcc0debd6e4 Mon Sep 17 00:00:00 2001 From: "Gustavo J. A. M. Carneiro" Date: Tue, 19 Aug 2008 17:48:09 +0100 Subject: [PATCH] New PyBindGen version and API rescan: adds missing copy constructors, and generates __copy__ methods so that python's copy.copy() works on our objects. --- bindings/python/ns3_module_bridge.py | 2 + bindings/python/ns3_module_common.py | 12 +++++ bindings/python/ns3_module_contrib.py | 6 +++ bindings/python/ns3_module_core.py | 52 ++++++++++++++++++++ bindings/python/ns3_module_csma.py | 3 ++ bindings/python/ns3_module_global_routing.py | 1 + bindings/python/ns3_module_helper.py | 19 +++++++ bindings/python/ns3_module_internet_stack.py | 5 ++ bindings/python/ns3_module_mobility.py | 17 +++++++ bindings/python/ns3_module_node.py | 35 +++++++++++++ bindings/python/ns3_module_olsr.py | 3 ++ bindings/python/ns3_module_onoff.py | 1 + bindings/python/ns3_module_packet_sink.py | 1 + bindings/python/ns3_module_point_to_point.py | 2 + bindings/python/ns3_module_simulator.py | 14 ++++++ bindings/python/ns3_module_udp_echo.py | 2 + bindings/python/ns3_module_wifi.py | 35 +++++++++++++ bindings/python/wscript | 2 +- 18 files changed, 211 insertions(+), 1 deletion(-) diff --git a/bindings/python/ns3_module_bridge.py b/bindings/python/ns3_module_bridge.py index 932595ea3..4ef288764 100644 --- a/bindings/python/ns3_module_bridge.py +++ b/bindings/python/ns3_module_bridge.py @@ -215,6 +215,7 @@ def register_Ns3BridgeNetDevice_methods(root_module, cls): 'ns3::Ptr< ns3::NetDevice >', [param('ns3::Mac48Address', 'source')], visibility='protected') + cls.add_copy_constructor() return def register_Ns3BridgeChannel_methods(root_module, cls): @@ -239,6 +240,7 @@ def register_Ns3BridgeChannel_methods(root_module, cls): 'ns3::Ptr< ns3::NetDevice >', [param('uint32_t', 'i')], is_const=True, is_virtual=True) + cls.add_copy_constructor() return def register_functions(root_module): diff --git a/bindings/python/ns3_module_common.py b/bindings/python/ns3_module_common.py index 2b9ad84e3..13a9cef27 100644 --- a/bindings/python/ns3_module_common.py +++ b/bindings/python/ns3_module_common.py @@ -267,6 +267,7 @@ def register_Ns3TagIteratorItem_methods(root_module, cls): 'void', [param('ns3::Tag&', 'tag')], is_const=True) + cls.add_copy_constructor() return def register_Ns3TagList_methods(root_module, cls): @@ -316,6 +317,7 @@ def register_Ns3TagListIterator_methods(root_module, cls): 'uint32_t', [], is_const=True) + cls.add_copy_constructor() return def register_Ns3TagListIteratorItem_methods(root_module, cls): @@ -331,6 +333,7 @@ def register_Ns3TagListIteratorItem_methods(root_module, cls): cls.add_instance_attribute('buf', 'ns3::TagBuffer', is_const=False) ## tag-list.h: ns3::TagList::Iterator::Item::Item(ns3::TagBuffer buf) [constructor] cls.add_constructor([param('ns3::TagBuffer', 'buf')]) + cls.add_copy_constructor() return def register_Ns3TagBuffer_methods(root_module, cls): @@ -392,6 +395,7 @@ def register_Ns3TagBuffer_methods(root_module, cls): cls.add_method('Read', 'void', [param('uint8_t *', 'buffer'), param('uint32_t', 'size')]) + cls.add_copy_constructor() return def register_Ns3Buffer_methods(root_module, cls): @@ -606,6 +610,7 @@ def register_Ns3BufferIterator_methods(root_module, cls): 'uint32_t', [], is_const=True) + cls.add_copy_constructor() return def register_Ns3Chunk_methods(root_module, cls): @@ -679,6 +684,7 @@ def register_Ns3Tag_methods(root_module, cls): [param('std::ostream&', 'os')], is_pure_virtual=True, is_const=True, is_virtual=True) cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3PcapWriter_methods(root_module, cls): @@ -708,10 +714,12 @@ def register_Ns3PcapWriter_methods(root_module, cls): cls.add_method('WritePacket', 'void', [param('ns3::Ptr< const ns3::Packet >', 'packet')]) + cls.add_copy_constructor() return def register_Ns3DataRateChecker_methods(root_module, cls): cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3ErrorModel_methods(root_module, cls): @@ -753,6 +761,7 @@ def register_Ns3ErrorModel_methods(root_module, cls): 'void', [], is_pure_virtual=True, visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3Header_methods(root_module, cls): @@ -848,6 +857,7 @@ def register_Ns3ListErrorModel_methods(root_module, cls): 'void', [], visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3DataRateValue_methods(root_module, cls): @@ -879,6 +889,7 @@ def register_Ns3DataRateValue_methods(root_module, cls): 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], is_virtual=True) + cls.add_copy_constructor() return def register_Ns3RateErrorModel_methods(root_module, cls): @@ -936,6 +947,7 @@ def register_Ns3RateErrorModel_methods(root_module, cls): 'void', [], visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_functions(root_module): diff --git a/bindings/python/ns3_module_contrib.py b/bindings/python/ns3_module_contrib.py index ab97841b7..45b89cfd3 100644 --- a/bindings/python/ns3_module_contrib.py +++ b/bindings/python/ns3_module_contrib.py @@ -84,6 +84,7 @@ def register_Ns3Gnuplot_methods(root_module, cls): cls.add_method('GenerateOutput', 'void', [param('std::ostream&', 'os')]) + cls.add_copy_constructor() return def register_Ns3EventGarbageCollector_methods(root_module, cls): @@ -93,6 +94,7 @@ def register_Ns3EventGarbageCollector_methods(root_module, cls): cls.add_method('Track', 'void', [param('ns3::EventId', 'event')]) + cls.add_copy_constructor() return def register_Ns3GnuplotDataset_methods(root_module, cls): @@ -116,6 +118,7 @@ def register_Ns3GnuplotDataset_methods(root_module, cls): cls.add_method('Add', 'void', [param('double', 'x'), param('double', 'y'), param('double', 'errorDelta')]) + cls.add_copy_constructor() return def register_Ns3GtkConfigStore_methods(root_module, cls): @@ -125,6 +128,7 @@ def register_Ns3GtkConfigStore_methods(root_module, cls): cls.add_method('Configure', 'void', []) + cls.add_copy_constructor() return def register_Ns3ConfigStore_methods(root_module, cls): @@ -144,6 +148,7 @@ def register_Ns3ConfigStore_methods(root_module, cls): cls.add_method('Configure', 'void', []) + cls.add_copy_constructor() return def register_Ns3DelayJitterEstimation_methods(root_module, cls): @@ -168,6 +173,7 @@ def register_Ns3DelayJitterEstimation_methods(root_module, cls): 'ns3::Time', [], is_const=True) + cls.add_copy_constructor() return def register_functions(root_module): diff --git a/bindings/python/ns3_module_core.py b/bindings/python/ns3_module_core.py index 4c67b2a8d..fa68958ec 100644 --- a/bindings/python/ns3_module_core.py +++ b/bindings/python/ns3_module_core.py @@ -316,6 +316,7 @@ def register_Ns3TriangularVariable_methods(root_module, cls): 'double', [param('double', 's'), param('double', 'l'), param('double', 'mean')], is_static=True) + cls.add_copy_constructor() return def register_Ns3GlobalValue_methods(root_module, cls): @@ -365,6 +366,7 @@ def register_Ns3GlobalValue_methods(root_module, cls): '__gnu_cxx::__normal_iterator< ns3::GlobalValue* const*, std::vector< ns3::GlobalValue*, std::allocator< ns3::GlobalValue* > > >', [], is_static=True) + cls.add_copy_constructor() return def register_Ns3RefCountBase_methods(root_module, cls): @@ -557,6 +559,7 @@ def register_Ns3TypeIdAttributeInfo_methods(root_module, cls): ## type-id.h: ns3::TypeId::AttributeInfo::checker [variable] cls.add_instance_attribute('checker', 'ns3::Ptr< ns3::AttributeChecker const >', is_const=False) cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3SystemWallClockMs_methods(root_module, cls): @@ -570,6 +573,7 @@ def register_Ns3SystemWallClockMs_methods(root_module, cls): cls.add_method('End', 'long long unsigned int', []) + cls.add_copy_constructor() return def register_Ns3CallbackImplBase_methods(root_module, cls): @@ -580,11 +584,13 @@ def register_Ns3CallbackImplBase_methods(root_module, cls): 'bool', [param('ns3::Ptr< ns3::CallbackImplBase const >', 'other')], is_pure_virtual=True, is_const=True, is_virtual=True) + cls.add_copy_constructor() return def register_Ns3CriticalSection_methods(root_module, cls): ## system-mutex.h: ns3::CriticalSection::CriticalSection(ns3::SystemMutex & mutex) [constructor] cls.add_constructor([param('ns3::SystemMutex&', 'mutex')]) + cls.add_copy_constructor() return def register_Ns3TraceSourceAccessor_methods(root_module, cls): @@ -620,6 +626,7 @@ def register_Ns3TraceSourceAccessor_methods(root_module, cls): 'bool', [param('ns3::ObjectBase *', 'obj', transfer_ownership=False), param('std::string', 'context'), param('ns3::CallbackBase&', 'cb', is_const=True)], is_pure_virtual=True, is_const=True, is_virtual=True) + cls.add_copy_constructor() return def register_Ns3AttributeChecker_methods(root_module, cls): @@ -655,10 +662,12 @@ def register_Ns3AttributeChecker_methods(root_module, cls): 'bool', [param('ns3::AttributeValue&', 'source', is_const=True), param('ns3::AttributeValue&', 'destination')], is_pure_virtual=True, is_const=True, is_virtual=True) + cls.add_copy_constructor() return def register_Ns3RandomVariableChecker_methods(root_module, cls): cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3SystemMutex_methods(root_module, cls): @@ -672,6 +681,7 @@ def register_Ns3SystemMutex_methods(root_module, cls): cls.add_method('Unlock', 'void', []) + cls.add_copy_constructor() return def register_Ns3NormalVariable_methods(root_module, cls): @@ -691,6 +701,7 @@ def register_Ns3NormalVariable_methods(root_module, cls): 'double', [param('double', 'm'), param('double', 'v'), param('double', 'b')], is_static=True) + cls.add_copy_constructor() return def register_Ns3ObjectFactory_methods(root_module, cls): @@ -750,6 +761,7 @@ def register_Ns3AttributeAccessor_methods(root_module, cls): 'bool', [], is_pure_virtual=True, is_const=True, is_virtual=True) + cls.add_copy_constructor() return def register_Ns3ParetoVariable_methods(root_module, cls): @@ -766,6 +778,7 @@ def register_Ns3ParetoVariable_methods(root_module, cls): 'double', [param('double', 'm'), param('double', 's'), param('double', 'b', default_value='0')], is_static=True) + cls.add_copy_constructor() return def register_Ns3ConstantVariable_methods(root_module, cls): @@ -777,6 +790,7 @@ def register_Ns3ConstantVariable_methods(root_module, cls): cls.add_method('SetConstant', 'void', [param('double', 'c')]) + cls.add_copy_constructor() return def register_Ns3SystemThread_methods(root_module, cls): @@ -800,6 +814,7 @@ def register_Ns3SystemThread_methods(root_module, cls): cls.add_method('Join', 'void', []) + cls.add_copy_constructor() return def register_Ns3EmpiricalVariable_methods(root_module, cls): @@ -809,6 +824,7 @@ def register_Ns3EmpiricalVariable_methods(root_module, cls): cls.add_method('CDF', 'void', [param('double', 'v'), param('double', 'c')]) + cls.add_copy_constructor() return def register_Ns3EnumChecker_methods(root_module, cls): @@ -852,10 +868,12 @@ def register_Ns3EnumChecker_methods(root_module, cls): 'bool', [param('ns3::AttributeValue&', 'src', is_const=True), param('ns3::AttributeValue&', 'dst')], is_const=True, is_virtual=True) + cls.add_copy_constructor() return def register_Ns3Empty_methods(root_module, cls): cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3ObjectBase_methods(root_module, cls): @@ -921,34 +939,42 @@ def register_Ns3ObjectBase_methods(root_module, cls): def register_Ns3CommandLine_methods(root_module, cls): cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3IntToType__6_methods(root_module, cls): cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3IntToType__5_methods(root_module, cls): cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3IntToType__4_methods(root_module, cls): cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3IntToType__3_methods(root_module, cls): cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3IntToType__2_methods(root_module, cls): cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3IntToType__1_methods(root_module, cls): cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3IntToType__0_methods(root_module, cls): cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3RngStream_methods(root_module, cls): @@ -1025,11 +1051,13 @@ def register_Ns3LogNormalVariable_methods(root_module, cls): 'double', [param('double', 'mu'), param('double', 'sigma')], is_static=True) + cls.add_copy_constructor() return def register_Ns3IntEmpiricalVariable_methods(root_module, cls): ## random-variable.h: ns3::IntEmpiricalVariable::IntEmpiricalVariable() [constructor] cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3PointerChecker_methods(root_module, cls): @@ -1039,6 +1067,7 @@ def register_Ns3PointerChecker_methods(root_module, cls): [], is_pure_virtual=True, is_const=True, is_virtual=True) cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3WeibullVariable_methods(root_module, cls): @@ -1055,6 +1084,7 @@ def register_Ns3WeibullVariable_methods(root_module, cls): 'double', [param('double', 'm'), param('double', 's'), param('double', 'b', default_value='0')], is_static=True) + cls.add_copy_constructor() return def register_Ns3CallbackBase_methods(root_module, cls): @@ -1068,6 +1098,7 @@ def register_Ns3CallbackBase_methods(root_module, cls): ## callback.h: ns3::CallbackBase::CallbackBase(ns3::Ptr impl) [constructor] cls.add_constructor([param('ns3::Ptr< ns3::CallbackImplBase >', 'impl')], visibility='protected') + cls.add_copy_constructor() return def register_Ns3ExponentialVariable_methods(root_module, cls): @@ -1082,11 +1113,13 @@ def register_Ns3ExponentialVariable_methods(root_module, cls): 'double', [param('double', 'm'), param('double', 'b', default_value='0')], is_static=True) + cls.add_copy_constructor() return def register_Ns3DeterministicVariable_methods(root_module, cls): ## random-variable.h: ns3::DeterministicVariable::DeterministicVariable(double * d, uint32_t c) [constructor] cls.add_constructor([param('double *', 'd'), param('uint32_t', 'c')]) + cls.add_copy_constructor() return def register_Ns3AttributeList_methods(root_module, cls): @@ -1158,6 +1191,7 @@ def register_Ns3UniformVariable_methods(root_module, cls): 'double', [param('double', 's'), param('double', 'l')], is_static=True) + cls.add_copy_constructor() return def register_Ns3Object_methods(root_module, cls): @@ -1213,6 +1247,7 @@ def register_Ns3ObjectAggregateIterator_methods(root_module, cls): cls.add_method('Next', 'ns3::Ptr< ns3::Object const >', []) + cls.add_copy_constructor() return def register_Ns3SystemCondition_methods(root_module, cls): @@ -1242,6 +1277,7 @@ def register_Ns3SystemCondition_methods(root_module, cls): cls.add_method('TimedWait', 'bool', [param('uint64_t', 'ns')]) + cls.add_copy_constructor() return def register_Ns3SequentialVariable_methods(root_module, cls): @@ -1249,6 +1285,7 @@ def register_Ns3SequentialVariable_methods(root_module, cls): cls.add_constructor([param('double', 'f'), param('double', 'l'), param('double', 'i', default_value='1'), param('uint32_t', 'c', default_value='1')]) ## random-variable.h: ns3::SequentialVariable::SequentialVariable(double f, double l, ns3::RandomVariable const & i, uint32_t c=1) [constructor] cls.add_constructor([param('double', 'f'), param('double', 'l'), param('ns3::RandomVariable&', 'i', is_const=True), param('uint32_t', 'c', default_value='1')]) + cls.add_copy_constructor() return def register_Ns3ObjectVectorChecker_methods(root_module, cls): @@ -1258,10 +1295,12 @@ def register_Ns3ObjectVectorChecker_methods(root_module, cls): [], is_pure_virtual=True, is_const=True, is_virtual=True) cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3StringChecker_methods(root_module, cls): cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3ObjectVectorValue_methods(root_module, cls): @@ -1302,10 +1341,12 @@ def register_Ns3ObjectVectorValue_methods(root_module, cls): 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], is_virtual=True) + cls.add_copy_constructor() return def register_Ns3BooleanChecker_methods(root_module, cls): cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3UintegerValue_methods(root_module, cls): @@ -1337,6 +1378,7 @@ def register_Ns3UintegerValue_methods(root_module, cls): 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], is_virtual=True) + cls.add_copy_constructor() return def register_Ns3ObjectVectorAccessor_methods(root_module, cls): @@ -1371,6 +1413,7 @@ def register_Ns3ObjectVectorAccessor_methods(root_module, cls): [param('ns3::ObjectBase *', 'object', transfer_ownership=False, is_const=True), param('uint32_t', 'i')], is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True) cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3PointerValue_methods(root_module, cls): @@ -1408,10 +1451,12 @@ def register_Ns3PointerValue_methods(root_module, cls): def register_Ns3ObjectFactoryChecker_methods(root_module, cls): cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3TypeIdChecker_methods(root_module, cls): cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3DoubleValue_methods(root_module, cls): @@ -1443,6 +1488,7 @@ def register_Ns3DoubleValue_methods(root_module, cls): 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], is_virtual=True) + cls.add_copy_constructor() return def register_Ns3TypeIdValue_methods(root_module, cls): @@ -1474,6 +1520,7 @@ def register_Ns3TypeIdValue_methods(root_module, cls): 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], is_virtual=True) + cls.add_copy_constructor() return def register_Ns3EnumValue_methods(root_module, cls): @@ -1505,6 +1552,7 @@ def register_Ns3EnumValue_methods(root_module, cls): 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], is_virtual=True) + cls.add_copy_constructor() return def register_Ns3RandomVariableValue_methods(root_module, cls): @@ -1536,6 +1584,7 @@ def register_Ns3RandomVariableValue_methods(root_module, cls): 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], is_virtual=True) + cls.add_copy_constructor() return def register_Ns3ObjectFactoryValue_methods(root_module, cls): @@ -1567,6 +1616,7 @@ def register_Ns3ObjectFactoryValue_methods(root_module, cls): 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], is_virtual=True) + cls.add_copy_constructor() return def register_Ns3IntegerValue_methods(root_module, cls): @@ -1598,6 +1648,7 @@ def register_Ns3IntegerValue_methods(root_module, cls): 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], is_virtual=True) + cls.add_copy_constructor() return def register_Ns3BooleanValue_methods(root_module, cls): @@ -1663,6 +1714,7 @@ def register_Ns3StringValue_methods(root_module, cls): 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], is_virtual=True) + cls.add_copy_constructor() return def register_Ns3EmptyAttributeValue_methods(root_module, cls): diff --git a/bindings/python/ns3_module_csma.py b/bindings/python/ns3_module_csma.py index e592db248..373449180 100644 --- a/bindings/python/ns3_module_csma.py +++ b/bindings/python/ns3_module_csma.py @@ -76,6 +76,7 @@ def register_Ns3CsmaDeviceRec_methods(root_module, cls): cls.add_method('IsActive', 'bool', []) + cls.add_copy_constructor() return def register_Ns3Backoff_methods(root_module, cls): @@ -109,6 +110,7 @@ def register_Ns3Backoff_methods(root_module, cls): cls.add_method('IncrNumRetries', 'void', []) + cls.add_copy_constructor() return def register_Ns3CsmaChannel_methods(root_module, cls): @@ -196,6 +198,7 @@ def register_Ns3CsmaChannel_methods(root_module, cls): 'ns3::Time', [], is_virtual=True) + cls.add_copy_constructor() return def register_Ns3CsmaNetDevice_methods(root_module, cls): diff --git a/bindings/python/ns3_module_global_routing.py b/bindings/python/ns3_module_global_routing.py index 563852dc8..1d1f03f28 100644 --- a/bindings/python/ns3_module_global_routing.py +++ b/bindings/python/ns3_module_global_routing.py @@ -220,6 +220,7 @@ def register_Ns3GlobalRoutingLinkRecord_methods(root_module, cls): cls.add_method('SetMetric', 'void', [param('uint16_t', 'metric')]) + cls.add_copy_constructor() return def register_Ns3GlobalRouter_methods(root_module, cls): diff --git a/bindings/python/ns3_module_helper.py b/bindings/python/ns3_module_helper.py index a15c72061..47b6d9a06 100644 --- a/bindings/python/ns3_module_helper.py +++ b/bindings/python/ns3_module_helper.py @@ -155,6 +155,7 @@ def register_Ns3MobilityHelper_methods(root_module, cls): 'void', [param('std::ostream&', 'os')], is_static=True) + cls.add_copy_constructor() return def register_Ns3InternetStackHelper_methods(root_module, cls): @@ -168,6 +169,7 @@ def register_Ns3InternetStackHelper_methods(root_module, cls): [param('std::string', 'filename')], is_static=True) cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3NodeContainer_methods(root_module, cls): @@ -218,6 +220,7 @@ def register_Ns3NodeContainer_methods(root_module, cls): 'ns3::NodeContainer', [], is_static=True) + cls.add_copy_constructor() return def register_Ns3PointToPointHelper_methods(root_module, cls): @@ -293,6 +296,7 @@ def register_Ns3PointToPointHelper_methods(root_module, cls): cls.add_method('Install', 'ns3::NetDeviceContainer', [param('ns3::Ptr< ns3::Node >', 'a'), param('ns3::Ptr< ns3::Node >', 'b')]) + cls.add_copy_constructor() return def register_Ns3NetDeviceContainer_methods(root_module, cls): @@ -325,6 +329,7 @@ def register_Ns3NetDeviceContainer_methods(root_module, cls): 'void', [param('ns3::Ptr< ns3::NetDevice >', 'device')]) cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3CsmaHelper_methods(root_module, cls): @@ -400,6 +405,7 @@ def register_Ns3CsmaHelper_methods(root_module, cls): cls.add_method('Install', 'ns3::NetDeviceContainer', [param('ns3::NodeContainer&', 'c', is_const=True), param('ns3::Ptr< ns3::CsmaChannel >', 'channel')]) + cls.add_copy_constructor() return def register_Ns3UdpEchoServerHelper_methods(root_module, cls): @@ -413,6 +419,7 @@ def register_Ns3UdpEchoServerHelper_methods(root_module, cls): cls.add_method('Install', 'ns3::ApplicationContainer', [param('ns3::NodeContainer', 'c')]) + cls.add_copy_constructor() return def register_Ns3OlsrHelper_methods(root_module, cls): @@ -434,6 +441,7 @@ def register_Ns3OlsrHelper_methods(root_module, cls): cls.add_method('InstallAll', 'void', []) + cls.add_copy_constructor() return def register_Ns3PacketSocketHelper_methods(root_module, cls): @@ -442,6 +450,7 @@ def register_Ns3PacketSocketHelper_methods(root_module, cls): 'void', [param('ns3::NodeContainer', 'c')]) cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3OnOffHelper_methods(root_module, cls): @@ -455,6 +464,7 @@ def register_Ns3OnOffHelper_methods(root_module, cls): cls.add_method('Install', 'ns3::ApplicationContainer', [param('ns3::NodeContainer', 'c')]) + cls.add_copy_constructor() return def register_Ns3UdpEchoClientHelper_methods(root_module, cls): @@ -468,6 +478,7 @@ def register_Ns3UdpEchoClientHelper_methods(root_module, cls): cls.add_method('Install', 'ns3::ApplicationContainer', [param('ns3::NodeContainer', 'c')]) + cls.add_copy_constructor() return def register_Ns3StaticMulticastRouteHelper_methods(root_module, cls): @@ -485,6 +496,7 @@ def register_Ns3StaticMulticastRouteHelper_methods(root_module, cls): cls.add_method('JoinMulticastGroup', 'void', [param('ns3::Ptr< ns3::Node >', 'n'), param('ns3::Ipv4Address', 'source'), param('ns3::Ipv4Address', 'group')]) + cls.add_copy_constructor() return def register_Ns3Ipv4InterfaceContainer_methods(root_module, cls): @@ -508,6 +520,7 @@ def register_Ns3Ipv4InterfaceContainer_methods(root_module, cls): cls.add_method('Add', 'void', [param('ns3::Ptr< ns3::Ipv4 >', 'ipv4'), param('uint32_t', 'interface')]) + cls.add_copy_constructor() return def register_Ns3ApplicationContainer_methods(root_module, cls): @@ -548,6 +561,7 @@ def register_Ns3ApplicationContainer_methods(root_module, cls): 'void', [param('ns3::Time', 'stop')]) cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3WifiHelper_methods(root_module, cls): @@ -615,6 +629,7 @@ def register_Ns3WifiHelper_methods(root_module, cls): 'ns3::NetDeviceContainer', [param('ns3::NodeContainer', 'c'), param('ns3::Ptr< ns3::WifiChannel >', 'channel')], is_const=True) + cls.add_copy_constructor() return def register_Ns3Ipv4AddressHelper_methods(root_module, cls): @@ -636,6 +651,7 @@ def register_Ns3Ipv4AddressHelper_methods(root_module, cls): cls.add_method('Assign', 'ns3::Ipv4InterfaceContainer', [param('ns3::NetDeviceContainer&', 'c', is_const=True)]) + cls.add_copy_constructor() return def register_Ns3BridgeHelper_methods(root_module, cls): @@ -649,6 +665,7 @@ def register_Ns3BridgeHelper_methods(root_module, cls): cls.add_method('Install', 'ns3::NetDeviceContainer', [param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::NetDeviceContainer', 'c')]) + cls.add_copy_constructor() return def register_Ns3PacketSinkHelper_methods(root_module, cls): @@ -662,6 +679,7 @@ def register_Ns3PacketSinkHelper_methods(root_module, cls): cls.add_method('Install', 'ns3::ApplicationContainer', [param('ns3::NodeContainer', 'c')]) + cls.add_copy_constructor() return def register_Ns3Ns2MobilityHelper_methods(root_module, cls): @@ -672,6 +690,7 @@ def register_Ns3Ns2MobilityHelper_methods(root_module, cls): 'void', [], is_const=True) + cls.add_copy_constructor() return def register_functions(root_module): diff --git a/bindings/python/ns3_module_internet_stack.py b/bindings/python/ns3_module_internet_stack.py index 455f52012..a2638daf8 100644 --- a/bindings/python/ns3_module_internet_stack.py +++ b/bindings/python/ns3_module_internet_stack.py @@ -146,6 +146,7 @@ def register_Ns3Ipv4Interface_methods(root_module, cls): 'void', [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv4Address', 'dest')], is_pure_virtual=True, visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3UdpHeader_methods(root_module, cls): @@ -212,6 +213,7 @@ def register_Ns3UdpHeader_methods(root_module, cls): 'bool', [], is_const=True) + cls.add_copy_constructor() return def register_Ns3TcpHeader_methods(root_module, cls): @@ -332,6 +334,7 @@ def register_Ns3TcpHeader_methods(root_module, cls): 'bool', [], is_const=True) + cls.add_copy_constructor() return def register_Ns3Ipv4StaticRouting_methods(root_module, cls): @@ -419,6 +422,7 @@ def register_Ns3Ipv4StaticRouting_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3Ipv4L3Protocol_methods(root_module, cls): @@ -609,6 +613,7 @@ def register_Ns3Ipv4L3Protocol_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) + cls.add_copy_constructor() return def register_functions(root_module): diff --git a/bindings/python/ns3_module_mobility.py b/bindings/python/ns3_module_mobility.py index 812594415..b6fff98c1 100644 --- a/bindings/python/ns3_module_mobility.py +++ b/bindings/python/ns3_module_mobility.py @@ -152,6 +152,7 @@ def register_Ns3StaticSpeedHelper_methods(root_module, cls): cls.add_method('Unpause', 'void', []) + cls.add_copy_constructor() return def register_Ns3Vector_methods(root_module, cls): @@ -172,10 +173,12 @@ def register_Ns3Vector_methods(root_module, cls): def register_Ns3VectorChecker_methods(root_module, cls): cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3RectangleChecker_methods(root_module, cls): cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3Rectangle_methods(root_module, cls): @@ -224,6 +227,7 @@ def register_Ns3PositionAllocator_methods(root_module, cls): 'ns3::Vector', [], is_pure_virtual=True, is_const=True, is_virtual=True) + cls.add_copy_constructor() return def register_Ns3ListPositionAllocator_methods(root_module, cls): @@ -243,6 +247,7 @@ def register_Ns3ListPositionAllocator_methods(root_module, cls): 'ns3::Vector', [], is_const=True, is_virtual=True) + cls.add_copy_constructor() return def register_Ns3RectangleValue_methods(root_module, cls): @@ -274,6 +279,7 @@ def register_Ns3RectangleValue_methods(root_module, cls): 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], is_virtual=True) + cls.add_copy_constructor() return def register_Ns3RandomRectanglePositionAllocator_methods(root_module, cls): @@ -297,6 +303,7 @@ def register_Ns3RandomRectanglePositionAllocator_methods(root_module, cls): 'ns3::Vector', [], is_const=True, is_virtual=True) + cls.add_copy_constructor() return def register_Ns3VectorValue_methods(root_module, cls): @@ -328,6 +335,7 @@ def register_Ns3VectorValue_methods(root_module, cls): 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], is_virtual=True) + cls.add_copy_constructor() return def register_Ns3RandomDiscPositionAllocator_methods(root_module, cls): @@ -359,6 +367,7 @@ def register_Ns3RandomDiscPositionAllocator_methods(root_module, cls): 'ns3::Vector', [], is_const=True, is_virtual=True) + cls.add_copy_constructor() return def register_Ns3MobilityModel_methods(root_module, cls): @@ -408,6 +417,7 @@ def register_Ns3MobilityModel_methods(root_module, cls): 'ns3::Vector', [], is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3RandomDirection2dMobilityModel_methods(root_module, cls): @@ -438,6 +448,7 @@ def register_Ns3RandomDirection2dMobilityModel_methods(root_module, cls): 'ns3::Vector', [], is_const=True, visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3GridPositionAllocator_methods(root_module, cls): @@ -507,6 +518,7 @@ def register_Ns3GridPositionAllocator_methods(root_module, cls): 'ns3::Vector', [], is_const=True, is_virtual=True) + cls.add_copy_constructor() return def register_Ns3RandomWaypointMobilityModel_methods(root_module, cls): @@ -532,6 +544,7 @@ def register_Ns3RandomWaypointMobilityModel_methods(root_module, cls): 'ns3::Vector', [], is_const=True, visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3RandomWalk2dMobilityModel_methods(root_module, cls): @@ -562,6 +575,7 @@ def register_Ns3RandomWalk2dMobilityModel_methods(root_module, cls): 'ns3::Vector', [], is_const=True, visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3StaticSpeedMobilityModel_methods(root_module, cls): @@ -591,6 +605,7 @@ def register_Ns3StaticSpeedMobilityModel_methods(root_module, cls): 'ns3::Vector', [], is_const=True, visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3HierarchicalMobilityModel_methods(root_module, cls): @@ -626,6 +641,7 @@ def register_Ns3HierarchicalMobilityModel_methods(root_module, cls): 'ns3::Vector', [], is_const=True, visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3StaticMobilityModel_methods(root_module, cls): @@ -651,6 +667,7 @@ def register_Ns3StaticMobilityModel_methods(root_module, cls): 'ns3::Vector', [], is_const=True, visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_functions(root_module): diff --git a/bindings/python/ns3_module_node.py b/bindings/python/ns3_module_node.py index c04fb13eb..9bd50590e 100644 --- a/bindings/python/ns3_module_node.py +++ b/bindings/python/ns3_module_node.py @@ -218,6 +218,7 @@ def register_Ns3NodeList_methods(root_module, cls): [], is_static=True) cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3Address_methods(root_module, cls): @@ -289,6 +290,7 @@ def register_Ns3Address_methods(root_module, cls): def register_Ns3Ipv4AddressChecker_methods(root_module, cls): cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3Mac48Address_methods(root_module, cls): @@ -421,14 +423,17 @@ def register_Ns3Ipv4AddressGenerator_methods(root_module, cls): [], is_static=True) cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3Mac48AddressChecker_methods(root_module, cls): cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3Ipv4MaskChecker_methods(root_module, cls): cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3Ipv4Route_methods(root_module, cls): @@ -558,6 +563,7 @@ def register_Ns3Ipv4MulticastRoute_methods(root_module, cls): def register_Ns3AddressChecker_methods(root_module, cls): cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3PacketSocketAddress_methods(root_module, cls): @@ -609,6 +615,7 @@ def register_Ns3PacketSocketAddress_methods(root_module, cls): 'bool', [param('ns3::Address&', 'address', is_const=True)], is_static=True) + cls.add_copy_constructor() return def register_Ns3Ipv4Mask_methods(root_module, cls): @@ -691,6 +698,7 @@ def register_Ns3Ipv4AddressValue_methods(root_module, cls): 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], is_virtual=True) + cls.add_copy_constructor() return def register_Ns3Ipv4RoutingProtocol_methods(root_module, cls): @@ -707,6 +715,7 @@ def register_Ns3Ipv4RoutingProtocol_methods(root_module, cls): [param('ns3::Ipv4Address', 'destination'), param('uint32_t&', 'ifIndex')], is_pure_virtual=True, is_virtual=True) cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3Mac48AddressValue_methods(root_module, cls): @@ -738,6 +747,7 @@ def register_Ns3Mac48AddressValue_methods(root_module, cls): 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], is_virtual=True) + cls.add_copy_constructor() return def register_Ns3Ipv4MaskValue_methods(root_module, cls): @@ -769,6 +779,7 @@ def register_Ns3Ipv4MaskValue_methods(root_module, cls): 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], is_virtual=True) + cls.add_copy_constructor() return def register_Ns3SocketAddressTag_methods(root_module, cls): @@ -813,6 +824,7 @@ def register_Ns3SocketAddressTag_methods(root_module, cls): 'void', [param('std::ostream&', 'os')], is_const=True, is_virtual=True) + cls.add_copy_constructor() return def register_Ns3InetSocketAddress_methods(root_module, cls): @@ -854,6 +866,7 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'ns3::InetSocketAddress', [param('ns3::Address&', 'address', is_const=True)], is_static=True) + cls.add_copy_constructor() return def register_Ns3Ipv4Address_methods(root_module, cls): @@ -1004,6 +1017,7 @@ def register_Ns3Application_methods(root_module, cls): 'void', [], visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3Queue_methods(root_module, cls): @@ -1090,6 +1104,7 @@ def register_Ns3Queue_methods(root_module, cls): 'ns3::Ptr< const ns3::Packet >', [], is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3Socket_methods(root_module, cls): @@ -1258,6 +1273,7 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected') + cls.add_copy_constructor() return def register_Ns3Ipv4Header_methods(root_module, cls): @@ -1400,6 +1416,7 @@ def register_Ns3Ipv4Header_methods(root_module, cls): 'uint32_t', [param('ns3::Buffer::Iterator', 'start')], is_virtual=True) + cls.add_copy_constructor() return def register_Ns3UdpSocket_methods(root_module, cls): @@ -1440,6 +1457,7 @@ def register_Ns3UdpSocket_methods(root_module, cls): 'uint32_t', [], is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3NetDevice_methods(root_module, cls): @@ -1569,6 +1587,7 @@ def register_Ns3NetDevice_methods(root_module, cls): [], is_pure_virtual=True, is_const=True, is_virtual=True) cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3DropTailQueue_methods(root_module, cls): @@ -1594,6 +1613,7 @@ def register_Ns3DropTailQueue_methods(root_module, cls): 'ns3::Ptr< const ns3::Packet >', [], is_const=True, visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3AddressValue_methods(root_module, cls): @@ -1625,6 +1645,7 @@ def register_Ns3AddressValue_methods(root_module, cls): 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], is_virtual=True) + cls.add_copy_constructor() return def register_Ns3Node_methods(root_module, cls): @@ -1693,6 +1714,7 @@ def register_Ns3Node_methods(root_module, cls): 'void', [param('ns3::Ptr< ns3::NetDevice >', 'device')], visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3Channel_methods(root_module, cls): @@ -1723,6 +1745,7 @@ def register_Ns3Channel_methods(root_module, cls): 'ns3::Ptr< ns3::NetDevice >', [param('uint32_t', 'i')], is_pure_virtual=True, is_const=True, is_virtual=True) + cls.add_copy_constructor() return def register_Ns3TcpSocket_methods(root_module, cls): @@ -1833,6 +1856,7 @@ def register_Ns3TcpSocket_methods(root_module, cls): 'uint32_t', [], is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3EthernetHeader_methods(root_module, cls): @@ -1916,6 +1940,7 @@ def register_Ns3EthernetHeader_methods(root_module, cls): 'uint32_t', [param('ns3::Buffer::Iterator', 'start')], is_virtual=True) + cls.add_copy_constructor() return def register_Ns3SocketIpTtlTag_methods(root_module, cls): @@ -1960,6 +1985,7 @@ def register_Ns3SocketIpTtlTag_methods(root_module, cls): 'void', [param('std::ostream&', 'os')], is_const=True, is_virtual=True) + cls.add_copy_constructor() return def register_Ns3Ipv4_methods(root_module, cls): @@ -2150,6 +2176,7 @@ def register_Ns3Ipv4_methods(root_module, cls): 'uint32_t', [param('ns3::Ipv4Address', 'addr'), param('ns3::Ipv4Mask', 'mask', default_value='ns3::Ipv4Mask(((const char*)"255.255.255.255"))')], is_virtual=True) + cls.add_copy_constructor() return def register_Ns3SocketFactory_methods(root_module, cls): @@ -2165,6 +2192,7 @@ def register_Ns3SocketFactory_methods(root_module, cls): 'ns3::Ptr< ns3::Socket >', [], is_pure_virtual=True, is_virtual=True) + cls.add_copy_constructor() return def register_Ns3EthernetTrailer_methods(root_module, cls): @@ -2227,6 +2255,7 @@ def register_Ns3EthernetTrailer_methods(root_module, cls): 'uint32_t', [param('ns3::Buffer::Iterator', 'end')], is_virtual=True) + cls.add_copy_constructor() return def register_Ns3SimpleChannel_methods(root_module, cls): @@ -2255,6 +2284,7 @@ def register_Ns3SimpleChannel_methods(root_module, cls): 'ns3::Ptr< ns3::NetDevice >', [param('uint32_t', 'i')], is_const=True, is_virtual=True) + cls.add_copy_constructor() return def register_Ns3LlcSnapHeader_methods(root_module, cls): @@ -2298,6 +2328,7 @@ def register_Ns3LlcSnapHeader_methods(root_module, cls): 'uint32_t', [param('ns3::Buffer::Iterator', 'start')], is_virtual=True) + cls.add_copy_constructor() return def register_Ns3UdpSocketFactory_methods(root_module, cls): @@ -2307,6 +2338,7 @@ def register_Ns3UdpSocketFactory_methods(root_module, cls): [], is_static=True) cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3SimpleNetDevice_methods(root_module, cls): @@ -2454,6 +2486,7 @@ def register_Ns3SimpleNetDevice_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3TcpSocketFactory_methods(root_module, cls): @@ -2463,6 +2496,7 @@ def register_Ns3TcpSocketFactory_methods(root_module, cls): [], is_static=True) cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3PacketSocketFactory_methods(root_module, cls): @@ -2478,6 +2512,7 @@ def register_Ns3PacketSocketFactory_methods(root_module, cls): 'ns3::Ptr< ns3::Socket >', [], is_virtual=True) + cls.add_copy_constructor() return def register_functions(root_module): diff --git a/bindings/python/ns3_module_olsr.py b/bindings/python/ns3_module_olsr.py index 624e06edf..16f80ac05 100644 --- a/bindings/python/ns3_module_olsr.py +++ b/bindings/python/ns3_module_olsr.py @@ -275,6 +275,7 @@ def register_Ns3OlsrMessageHeaderHelloLinkMessage_methods(root_module, cls): ## olsr-header.h: ns3::olsr::MessageHeader::Hello::LinkMessage::neighborInterfaceAddresses [variable] cls.add_instance_attribute('neighborInterfaceAddresses', 'std::vector< ns3::Ipv4Address, std::allocator< ns3::Ipv4Address > >', is_const=False) cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3OlsrMessageHeaderTc_methods(root_module, cls): @@ -337,6 +338,7 @@ def register_Ns3OlsrMessageHeaderHnaAssociation_methods(root_module, cls): ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Association::mask [variable] cls.add_instance_attribute('mask', 'ns3::Ipv4Mask', is_const=False) cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3OlsrAgent_methods(root_module, cls): @@ -361,6 +363,7 @@ def register_Ns3OlsrAgent_methods(root_module, cls): [], is_pure_virtual=True, is_virtual=True) cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3OlsrPacketHeader_methods(root_module, cls): diff --git a/bindings/python/ns3_module_onoff.py b/bindings/python/ns3_module_onoff.py index 5546b3eb3..8db23b59f 100644 --- a/bindings/python/ns3_module_onoff.py +++ b/bindings/python/ns3_module_onoff.py @@ -77,6 +77,7 @@ def register_Ns3OnOffApplication_methods(root_module, cls): 'void', [], visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_functions(root_module): diff --git a/bindings/python/ns3_module_packet_sink.py b/bindings/python/ns3_module_packet_sink.py index 4a0bebed3..09d66f91e 100644 --- a/bindings/python/ns3_module_packet_sink.py +++ b/bindings/python/ns3_module_packet_sink.py @@ -73,6 +73,7 @@ def register_Ns3PacketSink_methods(root_module, cls): 'void', [], visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_functions(root_module): diff --git a/bindings/python/ns3_module_point_to_point.py b/bindings/python/ns3_module_point_to_point.py index 4d7cf9ff0..0e5c489bd 100644 --- a/bindings/python/ns3_module_point_to_point.py +++ b/bindings/python/ns3_module_point_to_point.py @@ -84,6 +84,7 @@ def register_Ns3PointToPointChannel_methods(root_module, cls): 'ns3::Ptr< ns3::NetDevice >', [param('uint32_t', 'i')], is_const=True, is_virtual=True) + cls.add_copy_constructor() return def register_Ns3PointToPointNetDevice_methods(root_module, cls): @@ -247,6 +248,7 @@ def register_Ns3PointToPointNetDevice_methods(root_module, cls): 'void', [], visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_functions(root_module): diff --git a/bindings/python/ns3_module_simulator.py b/bindings/python/ns3_module_simulator.py index cd2fa96ae..7345c0697 100644 --- a/bindings/python/ns3_module_simulator.py +++ b/bindings/python/ns3_module_simulator.py @@ -170,6 +170,7 @@ def register_Ns3Timer_methods(root_module, cls): cls.add_method('Resume', 'void', []) + cls.add_copy_constructor() return def register_Ns3TimerImpl_methods(root_module, cls): @@ -184,6 +185,7 @@ def register_Ns3TimerImpl_methods(root_module, cls): [], is_pure_virtual=True, is_virtual=True) cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3Time_methods(root_module, cls): @@ -329,6 +331,7 @@ def register_Ns3Watchdog_methods(root_module, cls): cls.add_method('Ping', 'void', [param('ns3::Time', 'delay')]) + cls.add_copy_constructor() return def register_Ns3Simulator_methods(root_module, cls): @@ -412,6 +415,7 @@ def register_Ns3Simulator_methods(root_module, cls): 'ns3::Time', [], is_static=True) + cls.add_copy_constructor() return def register_Ns3EventId_methods(root_module, cls): @@ -482,6 +486,7 @@ def register_Ns3EventImpl_methods(root_module, cls): 'void', [], is_pure_virtual=True, visibility='protected', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3HighPrecision_methods(root_module, cls): @@ -538,6 +543,7 @@ def register_Ns3HighPrecision_methods(root_module, cls): def register_Ns3TimeChecker_methods(root_module, cls): cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3Scheduler_methods(root_module, cls): @@ -572,6 +578,7 @@ def register_Ns3Scheduler_methods(root_module, cls): [param('ns3::EventId&', 'id', is_const=True)], is_pure_virtual=True, is_virtual=True) cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3SchedulerEventKey_methods(root_module, cls): @@ -580,6 +587,7 @@ def register_Ns3SchedulerEventKey_methods(root_module, cls): ## scheduler.h: ns3::Scheduler::EventKey::m_uid [variable] cls.add_instance_attribute('m_uid', 'uint32_t', is_const=False) cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3TimeValue_methods(root_module, cls): @@ -611,6 +619,7 @@ def register_Ns3TimeValue_methods(root_module, cls): 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], is_virtual=True) + cls.add_copy_constructor() return def register_Ns3SimulatorImpl_methods(root_module, cls): @@ -705,6 +714,7 @@ def register_Ns3SimulatorImpl_methods(root_module, cls): [], is_pure_virtual=True, is_const=True, is_virtual=True) cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3DefaultSimulatorImpl_methods(root_module, cls): @@ -805,6 +815,7 @@ def register_Ns3DefaultSimulatorImpl_methods(root_module, cls): 'ns3::Ptr< ns3::Scheduler >', [], is_const=True, is_virtual=True) + cls.add_copy_constructor() return def register_Ns3HeapScheduler_methods(root_module, cls): @@ -835,6 +846,7 @@ def register_Ns3HeapScheduler_methods(root_module, cls): 'bool', [param('ns3::EventId&', 'ev', is_const=True)], is_virtual=True) + cls.add_copy_constructor() return def register_Ns3ListScheduler_methods(root_module, cls): @@ -865,6 +877,7 @@ def register_Ns3ListScheduler_methods(root_module, cls): 'bool', [param('ns3::EventId&', 'ev', is_const=True)], is_virtual=True) + cls.add_copy_constructor() return def register_Ns3MapScheduler_methods(root_module, cls): @@ -895,6 +908,7 @@ def register_Ns3MapScheduler_methods(root_module, cls): 'bool', [param('ns3::EventId&', 'ev', is_const=True)], is_virtual=True) + cls.add_copy_constructor() return def register_functions(root_module): diff --git a/bindings/python/ns3_module_udp_echo.py b/bindings/python/ns3_module_udp_echo.py index e5c31a797..2f4ec127d 100644 --- a/bindings/python/ns3_module_udp_echo.py +++ b/bindings/python/ns3_module_udp_echo.py @@ -80,6 +80,7 @@ def register_Ns3UdpEchoClient_methods(root_module, cls): 'void', [], visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3UdpEchoServer_methods(root_module, cls): @@ -105,6 +106,7 @@ def register_Ns3UdpEchoServer_methods(root_module, cls): 'void', [], visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_functions(root_module): diff --git a/bindings/python/ns3_module_wifi.py b/bindings/python/ns3_module_wifi.py index c1b0cb656..e764fc56b 100644 --- a/bindings/python/ns3_module_wifi.py +++ b/bindings/python/ns3_module_wifi.py @@ -371,6 +371,7 @@ def register_Ns3WifiRemoteStation_methods(root_module, cls): 'ns3::WifiMode', [], is_pure_virtual=True, visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3WifiPhyListener_methods(root_module, cls): @@ -400,6 +401,7 @@ def register_Ns3WifiPhyListener_methods(root_module, cls): [param('ns3::Time', 'duration')], is_pure_virtual=True, is_virtual=True) cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3ThresholdsItem_methods(root_module, cls): @@ -412,6 +414,7 @@ def register_Ns3ThresholdsItem_methods(root_module, cls): ## rraa-wifi-manager.h: ns3::ThresholdsItem::ewnd [variable] cls.add_instance_attribute('ewnd', 'uint32_t', is_const=False) cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3SupportedRates_methods(root_module, cls): @@ -517,10 +520,12 @@ def register_Ns3IdealWifiRemoteStation_methods(root_module, cls): 'ns3::WifiMode', [], visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3WifiModeChecker_methods(root_module, cls): cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3WifiModeFactory_methods(root_module, cls): @@ -534,6 +539,7 @@ def register_Ns3WifiModeFactory_methods(root_module, cls): 'ns3::WifiMode', [param('std::string', 'uniqueName'), param('bool', 'isMandatory'), param('uint32_t', 'bandwidth'), param('uint32_t', 'dataRate'), param('uint32_t', 'phyRate'), param('uint8_t', 'constellationSize')], is_static=True) + cls.add_copy_constructor() return def register_Ns3OnoeWifiRemoteStation_methods(root_module, cls): @@ -589,6 +595,7 @@ def register_Ns3OnoeWifiRemoteStation_methods(root_module, cls): 'ns3::WifiMode', [], visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3RraaWifiRemoteStation_methods(root_module, cls): @@ -649,6 +656,7 @@ def register_Ns3RraaWifiRemoteStation_methods(root_module, cls): 'ns3::WifiMode', [], visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3Ssid_methods(root_module, cls): @@ -784,10 +792,12 @@ def register_Ns3SsidValue_methods(root_module, cls): 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], is_virtual=True) + cls.add_copy_constructor() return def register_Ns3SsidChecker_methods(root_module, cls): cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3ConstantRateWifiRemoteStation_methods(root_module, cls): @@ -843,6 +853,7 @@ def register_Ns3ConstantRateWifiRemoteStation_methods(root_module, cls): 'ns3::WifiMode', [], visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3PropagationLossModel_methods(root_module, cls): @@ -857,6 +868,7 @@ def register_Ns3PropagationLossModel_methods(root_module, cls): [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], is_pure_virtual=True, is_const=True, is_virtual=True) cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3ArfWifiRemoteStation_methods(root_module, cls): @@ -952,6 +964,7 @@ def register_Ns3ArfWifiRemoteStation_methods(root_module, cls): 'void', [], visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3WifiMac_methods(root_module, cls): @@ -1092,6 +1105,7 @@ def register_Ns3WifiMac_methods(root_module, cls): [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'linkDown')], is_pure_virtual=True, visibility='private', is_virtual=True) cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3NqapWifiMac_methods(root_module, cls): @@ -1229,6 +1243,7 @@ def register_Ns3CompositePropagationLossModel_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3AmrrWifiRemoteStation_methods(root_module, cls): @@ -1284,6 +1299,7 @@ def register_Ns3AmrrWifiRemoteStation_methods(root_module, cls): 'ns3::WifiMode', [], visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3FriisPropagationLossModel_methods(root_module, cls): @@ -1330,6 +1346,7 @@ def register_Ns3FriisPropagationLossModel_methods(root_module, cls): 'double', [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], is_const=True, is_virtual=True) + cls.add_copy_constructor() return def register_Ns3NqstaWifiMac_methods(root_module, cls): @@ -1553,6 +1570,7 @@ def register_Ns3WifiRemoteStationManager_methods(root_module, cls): 'ns3::WifiRemoteStation *', [], is_pure_virtual=True, visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3WifiModeValue_methods(root_module, cls): @@ -1584,6 +1602,7 @@ def register_Ns3WifiModeValue_methods(root_module, cls): 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], is_virtual=True) + cls.add_copy_constructor() return def register_Ns3OnoeWifiManager_methods(root_module, cls): @@ -1599,6 +1618,7 @@ def register_Ns3OnoeWifiManager_methods(root_module, cls): 'ns3::WifiRemoteStation *', [], visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3WifiPhy_methods(root_module, cls): @@ -1800,6 +1820,7 @@ def register_Ns3WifiChannel_methods(root_module, cls): 'void', [param('ns3::Ptr< ns3::WifiPhy >', 'sender'), param('ns3::Ptr< const ns3::Packet >', 'packet'), param('double', 'txPowerDbm'), param('ns3::WifiMode', 'wifiMode'), param('ns3::WifiPreamble', 'preamble')], is_const=True) + cls.add_copy_constructor() return def register_Ns3LogDistancePropagationLossModel_methods(root_module, cls): @@ -1832,6 +1853,7 @@ def register_Ns3LogDistancePropagationLossModel_methods(root_module, cls): 'double', [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], is_const=True, is_virtual=True) + cls.add_copy_constructor() return def register_Ns3ConstantRateWifiManager_methods(root_module, cls): @@ -1857,6 +1879,7 @@ def register_Ns3ConstantRateWifiManager_methods(root_module, cls): 'ns3::WifiRemoteStation *', [], visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3AarfWifiRemoteStation_methods(root_module, cls): @@ -1872,6 +1895,7 @@ def register_Ns3AarfWifiRemoteStation_methods(root_module, cls): 'void', [], visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3PropagationDelayModel_methods(root_module, cls): @@ -1886,6 +1910,7 @@ def register_Ns3PropagationDelayModel_methods(root_module, cls): [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], is_pure_virtual=True, is_const=True, is_virtual=True) cls.add_constructor([]) + cls.add_copy_constructor() return def register_Ns3AdhocWifiMac_methods(root_module, cls): @@ -2009,6 +2034,7 @@ def register_Ns3JakesPropagationLossModel_methods(root_module, cls): cls.add_method('SetNOscillators', 'void', [param('uint8_t', 'nOscillators')]) + cls.add_copy_constructor() return def register_Ns3WifiNetDevice_methods(root_module, cls): @@ -2175,6 +2201,7 @@ def register_Ns3WifiNetDevice_methods(root_module, cls): 'void', [], visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3ConstantSpeedPropagationDelayModel_methods(root_module, cls): @@ -2199,6 +2226,7 @@ def register_Ns3ConstantSpeedPropagationDelayModel_methods(root_module, cls): 'double', [], is_const=True) + cls.add_copy_constructor() return def register_Ns3RandomPropagationLossModel_methods(root_module, cls): @@ -2214,6 +2242,7 @@ def register_Ns3RandomPropagationLossModel_methods(root_module, cls): 'double', [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], is_const=True, is_virtual=True) + cls.add_copy_constructor() return def register_Ns3RandomPropagationDelayModel_methods(root_module, cls): @@ -2229,6 +2258,7 @@ def register_Ns3RandomPropagationDelayModel_methods(root_module, cls): 'ns3::Time', [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], is_const=True, is_virtual=True) + cls.add_copy_constructor() return def register_Ns3AmrrWifiManager_methods(root_module, cls): @@ -2244,6 +2274,7 @@ def register_Ns3AmrrWifiManager_methods(root_module, cls): 'ns3::WifiRemoteStation *', [], visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3RraaWifiManager_methods(root_module, cls): @@ -2273,6 +2304,7 @@ def register_Ns3RraaWifiManager_methods(root_module, cls): 'ns3::WifiRemoteStation *', [], visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3IdealWifiManager_methods(root_module, cls): @@ -2302,6 +2334,7 @@ def register_Ns3IdealWifiManager_methods(root_module, cls): 'ns3::WifiRemoteStation *', [], visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3ArfWifiManager_methods(root_module, cls): @@ -2317,6 +2350,7 @@ def register_Ns3ArfWifiManager_methods(root_module, cls): 'ns3::WifiRemoteStation *', [], visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_Ns3AarfWifiManager_methods(root_module, cls): @@ -2332,6 +2366,7 @@ def register_Ns3AarfWifiManager_methods(root_module, cls): 'ns3::WifiRemoteStation *', [], visibility='private', is_virtual=True) + cls.add_copy_constructor() return def register_functions(root_module): diff --git a/bindings/python/wscript b/bindings/python/wscript index 9fe0f4677..b910f42f1 100644 --- a/bindings/python/wscript +++ b/bindings/python/wscript @@ -21,7 +21,7 @@ else: os.environ['PYTHONPATH'] = LOCAL_PYBINDGEN_PATH ## https://launchpad.net/pybindgen/ -REQUIRED_PYBINDGEN_VERSION = (0, 9, 0, 557) +REQUIRED_PYBINDGEN_VERSION = (0, 9, 0, 560) REQUIRED_PYGCCXML_VERSION = (0, 9, 5)