def reg_nfd(module): module.add_class( 'Forwarder', memory_policy=StdSharedPtr('::ns3::ndn::nfd::Forwarder'), is_singleton=True) module.add_class('Fib') module.add_class('Pit') module.add_class('Cs') module.add_class('FaceTable') module.add_class('Face') def reg_fib(module): module.add_class( 'Entry' ) #, memory_policy=StdSharedPtr('ns3::ndn::nfd::fib::Entry')) module.add_class('NextHop') module.add_class('NextHopList') reg_fib(module.add_cpp_namespace('fib')) def reg_pit(module): module.add_class( 'Entry' ) #, memory_policy=StdSharedPtr('ns3::ndn::nfd::pit::Entry')) reg_pit(module.add_cpp_namespace('pit')) def reg_cs(module): module.add_class( 'Entry' ) #, memory_policy=StdSharedPtr('ns3::ndn::nfd::cs::Entry')) reg_cs(module.add_cpp_namespace('cs'))
def reg_ndn(module): module.add_class('StackHelper') module.add_class('FibHelper') module.add_class('StrategyChoiceHelper') module.add_class('AppHelper') module.add_class('GlobalRoutingHelper') module.add_class('L3Protocol', parent=module.get_root()['ns3::Object']) module.add_class('Name') module.add_class('Interest') module.add_class('Data') module.add_class('Face', memory_policy=StdSharedPtr('ns3::ndn::Face')) module.add_class( 'FaceContainer', memory_policy=Ns3PtrMemoryPolicy('::ns3::ndn::FaceContainer')) def reg_name(module): module.add_class('Component') reg_name(module.add_cpp_namespace('name')) def reg_nfd(module): module.add_class( 'Forwarder', memory_policy=StdSharedPtr('::ns3::ndn::nfd::Forwarder'), is_singleton=True) module.add_class('Fib') module.add_class('Pit') module.add_class('Cs') def reg_fib(module): module.add_class( 'Entry' ) #, memory_policy=StdSharedPtr('ns3::ndn::nfd::fib::Entry')) module.add_class('NextHop') module.add_class('NextHopList') reg_fib(module.add_cpp_namespace('fib')) def reg_pit(module): module.add_class( 'Entry' ) #, memory_policy=StdSharedPtr('ns3::ndn::nfd::pit::Entry')) reg_pit(module.add_cpp_namespace('pit')) def reg_cs(module): module.add_class( 'Entry' ) #, memory_policy=StdSharedPtr('ns3::ndn::nfd::cs::Entry')) reg_cs(module.add_cpp_namespace('cs')) reg_nfd(module.add_cpp_namespace('nfd'))
def reg_ndn(module): module.add_class('StackHelper') module.add_class('FibHelper') module.add_class('StrategyChoiceHelper') module.add_class('AppHelper') module.add_class('GlobalRoutingHelper') module.add_class('L3Protocol', parent=module.get_root()['ns3::Object']) module.add_class('Name') module.add_class('Interest') module.add_class('Data') module.add_class('Face', memory_policy=StdSharedPtr('ns3::ndn::Face')) module.add_class('FaceContainer', memory_policy=Ns3PtrMemoryPolicy('::ns3::ndn::FaceContainer')) def reg_name(module): module.add_class('Component') reg_name(module.add_cpp_namespace('name')) def reg_nfd(module): module.add_class('Forwarder', memory_policy=StdSharedPtr('::ns3::ndn::nfd::Forwarder'), is_singleton=True) module.add_class('Fib') module.add_class('Pit') module.add_class('Cs') def reg_fib(module): module.add_class('Entry')#, memory_policy=StdSharedPtr('ns3::ndn::nfd::fib::Entry')) module.add_class('NextHop') module.add_class('NextHopList') reg_fib(module.add_cpp_namespace('fib')) def reg_pit(module): module.add_class('Entry')#, memory_policy=StdSharedPtr('ns3::ndn::nfd::pit::Entry')) reg_pit(module.add_cpp_namespace('pit')) def reg_cs(module): module.add_class('Entry')#, memory_policy=StdSharedPtr('ns3::ndn::nfd::cs::Entry')) reg_cs(module.add_cpp_namespace('cs')) reg_nfd(module.add_cpp_namespace('nfd')) #ZhangYu 2017-9-16 ------------------------Tracer--------------------- root_module=module.get_root() module.add_class('AppDelayTracer', parent=root_module['ns3::SimpleRefCount< ns3::ndn::AppDelayTracer, ns3::empty, ns3::DefaultDeleter<ns3::ndn::AppDelayTracer> >']) module.add_class('CsTracer', parent=root_module['ns3::SimpleRefCount< ns3::ndn::CsTracer, ns3::empty, ns3::DefaultDeleter<ns3::ndn::CsTracer> >']) module.add_class('L3Tracer', parent=root_module['ns3::SimpleRefCount< ns3::ndn::L3Tracer, ns3::empty, ns3::DefaultDeleter<ns3::ndn::L3Tracer> >']) module.add_class('L3RateTracer', parent=root_module['ns3::ndn::L3Tracer'])
def my_module_gen(out_file): mod = Module('sp') mod.add_include('"sp.h"') Foo = mod.add_class('Foo', memory_policy=StdSharedPtr('::Foo')) Foo.add_constructor([param('std::string', 'datum')]) Foo.add_constructor([]) Foo.add_method('get_datum', retval('const std::string'), []) Foo.add_method('set_datum', None, [param('const std::string', 'datum')]) mod.add_function('function_that_takes_foo', None, [param('std::shared_ptr<Foo>', 'foo')]) mod.add_function('function_that_returns_foo', retval('std::shared_ptr<Foo>'), []) ## ---- finally, generate the whole thing ---- mod.generate(FileCodeSink(out_file))