From c5b17c156df7299f0f1e2d1ecf808570da9759a1 Mon Sep 17 00:00:00 2001 From: Mitch Watrous Date: Wed, 19 Jan 2011 10:51:11 -0800 Subject: [PATCH] Make core module not depend on simulator module --- .../apidefs/gcc-ILP32/ns3_module_core.py | 25 ------------------- .../apidefs/gcc-ILP32/ns3_module_simulator.py | 25 +++++++++++++++++++ .../apidefs/gcc-LP64/ns3_module_core.py | 25 ------------------- .../apidefs/gcc-LP64/ns3_module_simulator.py | 25 +++++++++++++++++++ samples/wscript | 2 +- src/core/wscript | 2 -- src/{core => simulator}/unix-fd-reader.cc | 0 src/{core => simulator}/unix-fd-reader.h | 0 src/simulator/wscript | 8 ++++++ 9 files changed, 59 insertions(+), 53 deletions(-) rename src/{core => simulator}/unix-fd-reader.cc (100%) rename src/{core => simulator}/unix-fd-reader.h (100%) diff --git a/bindings/python/apidefs/gcc-ILP32/ns3_module_core.py b/bindings/python/apidefs/gcc-ILP32/ns3_module_core.py index 558e1773a..eb40001b5 100644 --- a/bindings/python/apidefs/gcc-ILP32/ns3_module_core.py +++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_core.py @@ -133,8 +133,6 @@ def register_types(module): module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::AttributeValue', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) ## simple-ref-count.h: ns3::SimpleRefCount > [class] module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::CallbackImplBase', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) - ## simple-ref-count.h: ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::FdReader', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) ## simple-ref-count.h: ns3::SimpleRefCount > [class] module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::FlowClassifier', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) ## simple-ref-count.h: ns3::SimpleRefCount > [class] @@ -175,8 +173,6 @@ def register_types(module): module.add_class('EnumChecker', parent=root_module['ns3::AttributeChecker']) ## enum.h: ns3::EnumValue [class] module.add_class('EnumValue', parent=root_module['ns3::AttributeValue']) - ## unix-fd-reader.h: ns3::FdReader [class] - module.add_class('FdReader', parent=root_module['ns3::SimpleRefCount< ns3::FdReader, ns3::empty, ns3::DefaultDeleter >']) ## integer.h: ns3::IntegerValue [class] module.add_class('IntegerValue', parent=root_module['ns3::AttributeValue']) ## object-factory.h: ns3::ObjectFactoryChecker [class] @@ -439,7 +435,6 @@ def register_methods(root_module): register_Ns3EmptyAttributeValue_methods(root_module, root_module['ns3::EmptyAttributeValue']) register_Ns3EnumChecker_methods(root_module, root_module['ns3::EnumChecker']) register_Ns3EnumValue_methods(root_module, root_module['ns3::EnumValue']) - register_Ns3FdReader_methods(root_module, root_module['ns3::FdReader']) register_Ns3IntegerValue_methods(root_module, root_module['ns3::IntegerValue']) register_Ns3ObjectFactoryChecker_methods(root_module, root_module['ns3::ObjectFactoryChecker']) register_Ns3ObjectFactoryValue_methods(root_module, root_module['ns3::ObjectFactoryValue']) @@ -2636,26 +2631,6 @@ def register_Ns3EnumValue_methods(root_module, cls): [param('int', 'v')]) return -def register_Ns3FdReader_methods(root_module, cls): - ## unix-fd-reader.h: ns3::FdReader::FdReader(ns3::FdReader const & arg0) [copy constructor] - cls.add_constructor([param('ns3::FdReader const &', 'arg0')]) - ## unix-fd-reader.h: ns3::FdReader::FdReader() [constructor] - cls.add_constructor([]) - ## unix-fd-reader.h: void ns3::FdReader::Start(int fd, ns3::Callback readCallback) [member function] - cls.add_method('Start', - 'void', - [param('int', 'fd'), param('ns3::Callback< void, unsigned char *, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'readCallback')]) - ## unix-fd-reader.h: void ns3::FdReader::Stop() [member function] - cls.add_method('Stop', - 'void', - []) - ## unix-fd-reader.h: ns3::FdReader::Data ns3::FdReader::DoRead() [member function] - cls.add_method('DoRead', - 'ns3::FdReader::Data', - [], - is_pure_virtual=True, visibility='protected', is_virtual=True) - return - def register_Ns3IntegerValue_methods(root_module, cls): ## integer.h: ns3::IntegerValue::IntegerValue() [constructor] cls.add_constructor([]) diff --git a/bindings/python/apidefs/gcc-ILP32/ns3_module_simulator.py b/bindings/python/apidefs/gcc-ILP32/ns3_module_simulator.py index 7b8f7052c..4a6b44419 100644 --- a/bindings/python/apidefs/gcc-ILP32/ns3_module_simulator.py +++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_simulator.py @@ -43,6 +43,8 @@ def register_types(module): module.add_class('EventKey', outer_class=root_module['ns3::Scheduler']) ## simple-ref-count.h: ns3::SimpleRefCount > [class] module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::EventImpl', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) + ## simple-ref-count.h: ns3::SimpleRefCount > [class] + module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::FdReader', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) ## simulator-impl.h: ns3::SimulatorImpl [class] module.add_class('SimulatorImpl', parent=root_module['ns3::Object']) ## synchronizer.h: ns3::Synchronizer [class] @@ -55,6 +57,8 @@ def register_types(module): module.add_class('DefaultSimulatorImpl', parent=root_module['ns3::SimulatorImpl']) ## event-impl.h: ns3::EventImpl [class] module.add_class('EventImpl', parent=root_module['ns3::SimpleRefCount< ns3::EventImpl, ns3::empty, ns3::DefaultDeleter >']) + ## unix-fd-reader.h: ns3::FdReader [class] + module.add_class('FdReader', parent=root_module['ns3::SimpleRefCount< ns3::FdReader, ns3::empty, ns3::DefaultDeleter >']) ## heap-scheduler.h: ns3::HeapScheduler [class] module.add_class('HeapScheduler', parent=root_module['ns3::Scheduler']) ## list-scheduler.h: ns3::ListScheduler [class] @@ -189,6 +193,7 @@ def register_methods(root_module): register_Ns3CalendarScheduler_methods(root_module, root_module['ns3::CalendarScheduler']) register_Ns3DefaultSimulatorImpl_methods(root_module, root_module['ns3::DefaultSimulatorImpl']) register_Ns3EventImpl_methods(root_module, root_module['ns3::EventImpl']) + register_Ns3FdReader_methods(root_module, root_module['ns3::FdReader']) register_Ns3HeapScheduler_methods(root_module, root_module['ns3::HeapScheduler']) register_Ns3ListScheduler_methods(root_module, root_module['ns3::ListScheduler']) register_Ns3MapScheduler_methods(root_module, root_module['ns3::MapScheduler']) @@ -1274,6 +1279,26 @@ def register_Ns3EventImpl_methods(root_module, cls): is_pure_virtual=True, visibility='protected', is_virtual=True) return +def register_Ns3FdReader_methods(root_module, cls): + ## unix-fd-reader.h: ns3::FdReader::FdReader(ns3::FdReader const & arg0) [copy constructor] + cls.add_constructor([param('ns3::FdReader const &', 'arg0')]) + ## unix-fd-reader.h: ns3::FdReader::FdReader() [constructor] + cls.add_constructor([]) + ## unix-fd-reader.h: void ns3::FdReader::Start(int fd, ns3::Callback readCallback) [member function] + cls.add_method('Start', + 'void', + [param('int', 'fd'), param('ns3::Callback< void, unsigned char *, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'readCallback')]) + ## unix-fd-reader.h: void ns3::FdReader::Stop() [member function] + cls.add_method('Stop', + 'void', + []) + ## unix-fd-reader.h: ns3::FdReader::Data ns3::FdReader::DoRead() [member function] + cls.add_method('DoRead', + 'ns3::FdReader::Data', + [], + is_pure_virtual=True, visibility='protected', is_virtual=True) + return + def register_Ns3HeapScheduler_methods(root_module, cls): ## heap-scheduler.h: ns3::HeapScheduler::HeapScheduler(ns3::HeapScheduler const & arg0) [copy constructor] cls.add_constructor([param('ns3::HeapScheduler const &', 'arg0')]) diff --git a/bindings/python/apidefs/gcc-LP64/ns3_module_core.py b/bindings/python/apidefs/gcc-LP64/ns3_module_core.py index a91ccfc04..a3a845914 100644 --- a/bindings/python/apidefs/gcc-LP64/ns3_module_core.py +++ b/bindings/python/apidefs/gcc-LP64/ns3_module_core.py @@ -133,8 +133,6 @@ def register_types(module): module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::AttributeValue', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) ## simple-ref-count.h: ns3::SimpleRefCount > [class] module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::CallbackImplBase', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) - ## simple-ref-count.h: ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::FdReader', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) ## simple-ref-count.h: ns3::SimpleRefCount > [class] module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::FlowClassifier', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) ## simple-ref-count.h: ns3::SimpleRefCount > [class] @@ -175,8 +173,6 @@ def register_types(module): module.add_class('EnumChecker', parent=root_module['ns3::AttributeChecker']) ## enum.h: ns3::EnumValue [class] module.add_class('EnumValue', parent=root_module['ns3::AttributeValue']) - ## unix-fd-reader.h: ns3::FdReader [class] - module.add_class('FdReader', parent=root_module['ns3::SimpleRefCount< ns3::FdReader, ns3::empty, ns3::DefaultDeleter >']) ## integer.h: ns3::IntegerValue [class] module.add_class('IntegerValue', parent=root_module['ns3::AttributeValue']) ## object-factory.h: ns3::ObjectFactoryChecker [class] @@ -439,7 +435,6 @@ def register_methods(root_module): register_Ns3EmptyAttributeValue_methods(root_module, root_module['ns3::EmptyAttributeValue']) register_Ns3EnumChecker_methods(root_module, root_module['ns3::EnumChecker']) register_Ns3EnumValue_methods(root_module, root_module['ns3::EnumValue']) - register_Ns3FdReader_methods(root_module, root_module['ns3::FdReader']) register_Ns3IntegerValue_methods(root_module, root_module['ns3::IntegerValue']) register_Ns3ObjectFactoryChecker_methods(root_module, root_module['ns3::ObjectFactoryChecker']) register_Ns3ObjectFactoryValue_methods(root_module, root_module['ns3::ObjectFactoryValue']) @@ -2636,26 +2631,6 @@ def register_Ns3EnumValue_methods(root_module, cls): [param('int', 'v')]) return -def register_Ns3FdReader_methods(root_module, cls): - ## unix-fd-reader.h: ns3::FdReader::FdReader(ns3::FdReader const & arg0) [copy constructor] - cls.add_constructor([param('ns3::FdReader const &', 'arg0')]) - ## unix-fd-reader.h: ns3::FdReader::FdReader() [constructor] - cls.add_constructor([]) - ## unix-fd-reader.h: void ns3::FdReader::Start(int fd, ns3::Callback readCallback) [member function] - cls.add_method('Start', - 'void', - [param('int', 'fd'), param('ns3::Callback< void, unsigned char *, long, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'readCallback')]) - ## unix-fd-reader.h: void ns3::FdReader::Stop() [member function] - cls.add_method('Stop', - 'void', - []) - ## unix-fd-reader.h: ns3::FdReader::Data ns3::FdReader::DoRead() [member function] - cls.add_method('DoRead', - 'ns3::FdReader::Data', - [], - is_pure_virtual=True, visibility='protected', is_virtual=True) - return - def register_Ns3IntegerValue_methods(root_module, cls): ## integer.h: ns3::IntegerValue::IntegerValue() [constructor] cls.add_constructor([]) diff --git a/bindings/python/apidefs/gcc-LP64/ns3_module_simulator.py b/bindings/python/apidefs/gcc-LP64/ns3_module_simulator.py index 7b8f7052c..ebe3c2bfa 100644 --- a/bindings/python/apidefs/gcc-LP64/ns3_module_simulator.py +++ b/bindings/python/apidefs/gcc-LP64/ns3_module_simulator.py @@ -43,6 +43,8 @@ def register_types(module): module.add_class('EventKey', outer_class=root_module['ns3::Scheduler']) ## simple-ref-count.h: ns3::SimpleRefCount > [class] module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::EventImpl', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) + ## simple-ref-count.h: ns3::SimpleRefCount > [class] + module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::FdReader', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) ## simulator-impl.h: ns3::SimulatorImpl [class] module.add_class('SimulatorImpl', parent=root_module['ns3::Object']) ## synchronizer.h: ns3::Synchronizer [class] @@ -55,6 +57,8 @@ def register_types(module): module.add_class('DefaultSimulatorImpl', parent=root_module['ns3::SimulatorImpl']) ## event-impl.h: ns3::EventImpl [class] module.add_class('EventImpl', parent=root_module['ns3::SimpleRefCount< ns3::EventImpl, ns3::empty, ns3::DefaultDeleter >']) + ## unix-fd-reader.h: ns3::FdReader [class] + module.add_class('FdReader', parent=root_module['ns3::SimpleRefCount< ns3::FdReader, ns3::empty, ns3::DefaultDeleter >']) ## heap-scheduler.h: ns3::HeapScheduler [class] module.add_class('HeapScheduler', parent=root_module['ns3::Scheduler']) ## list-scheduler.h: ns3::ListScheduler [class] @@ -189,6 +193,7 @@ def register_methods(root_module): register_Ns3CalendarScheduler_methods(root_module, root_module['ns3::CalendarScheduler']) register_Ns3DefaultSimulatorImpl_methods(root_module, root_module['ns3::DefaultSimulatorImpl']) register_Ns3EventImpl_methods(root_module, root_module['ns3::EventImpl']) + register_Ns3FdReader_methods(root_module, root_module['ns3::FdReader']) register_Ns3HeapScheduler_methods(root_module, root_module['ns3::HeapScheduler']) register_Ns3ListScheduler_methods(root_module, root_module['ns3::ListScheduler']) register_Ns3MapScheduler_methods(root_module, root_module['ns3::MapScheduler']) @@ -1274,6 +1279,26 @@ def register_Ns3EventImpl_methods(root_module, cls): is_pure_virtual=True, visibility='protected', is_virtual=True) return +def register_Ns3FdReader_methods(root_module, cls): + ## unix-fd-reader.h: ns3::FdReader::FdReader(ns3::FdReader const & arg0) [copy constructor] + cls.add_constructor([param('ns3::FdReader const &', 'arg0')]) + ## unix-fd-reader.h: ns3::FdReader::FdReader() [constructor] + cls.add_constructor([]) + ## unix-fd-reader.h: void ns3::FdReader::Start(int fd, ns3::Callback readCallback) [member function] + cls.add_method('Start', + 'void', + [param('int', 'fd'), param('ns3::Callback< void, unsigned char *, long, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'readCallback')]) + ## unix-fd-reader.h: void ns3::FdReader::Stop() [member function] + cls.add_method('Stop', + 'void', + []) + ## unix-fd-reader.h: ns3::FdReader::Data ns3::FdReader::DoRead() [member function] + cls.add_method('DoRead', + 'ns3::FdReader::Data', + [], + is_pure_virtual=True, visibility='protected', is_virtual=True) + return + def register_Ns3HeapScheduler_methods(root_module, cls): ## heap-scheduler.h: ns3::HeapScheduler::HeapScheduler(ns3::HeapScheduler const & arg0) [copy constructor] cls.add_constructor([param('ns3::HeapScheduler const &', 'arg0')]) diff --git a/samples/wscript b/samples/wscript index 214056574..6dcbca5ee 100644 --- a/samples/wscript +++ b/samples/wscript @@ -11,7 +11,7 @@ def build(bld): obj = bld.create_ns3_program('main-callback', ['core']) obj.source = 'main-callback.cc' - obj = bld.create_ns3_program('sample-simulator', ['core']) + obj = bld.create_ns3_program('sample-simulator', ['core', 'simulator']) obj.source = 'sample-simulator.cc' obj = bld.create_ns3_program('main-ptr', ['core'] ) diff --git a/src/core/wscript b/src/core/wscript index 53a0afd6d..7ca9c388d 100644 --- a/src/core/wscript +++ b/src/core/wscript @@ -146,14 +146,12 @@ def build(bld): 'unix-system-thread.cc', 'unix-system-mutex.cc', 'unix-system-condition.cc', - 'unix-fd-reader.cc', ]) core.uselib = 'PTHREAD' headers.source.extend([ 'system-mutex.h', 'system-thread.h', 'system-condition.h', - 'unix-fd-reader.h', ]) if bld.env['ENABLE_GSL']: diff --git a/src/core/unix-fd-reader.cc b/src/simulator/unix-fd-reader.cc similarity index 100% rename from src/core/unix-fd-reader.cc rename to src/simulator/unix-fd-reader.cc diff --git a/src/core/unix-fd-reader.h b/src/simulator/unix-fd-reader.h similarity index 100% rename from src/core/unix-fd-reader.h rename to src/simulator/unix-fd-reader.h diff --git a/src/simulator/wscript b/src/simulator/wscript index cadfa9330..5c97019e7 100644 --- a/src/simulator/wscript +++ b/src/simulator/wscript @@ -126,4 +126,12 @@ def build(bld): ]) sim.uselib = 'RT' + if env['ENABLE_THREADING']: + sim.source.extend([ + 'unix-fd-reader.cc', + ]) + sim.uselib = sim.uselib + ' PTHREAD' + headers.source.extend([ + 'unix-fd-reader.h', + ])