From 37cf508d589a6ee01e29d8afd620019dd61f4c5d Mon Sep 17 00:00:00 2001 From: kampaitees Date: Thu, 7 Nov 2019 23:46:26 +0530 Subject: [PATCH 1/2] Cobalt algorithm added --- .../data/AdaptiveRedQueueDisc-gnu-delay | 10 + .../data/AdaptiveRedQueueDisc-gnu-goodput | 8 + .../data/CoDelQueueDisc-gnu-delay | 10 + .../data/CoDelQueueDisc-gnu-goodput | 8 + .../data/CobaltQueueDisc-gnu-delay | 10 + .../data/CobaltQueueDisc-gnu-goodput | 8 + .../data/FengAdaptiveRedQueueDisc-gnu-delay | 10 + .../data/FengAdaptiveRedQueueDisc-gnu-goodput | 8 + .../data/NonLinearRedQueueDisc-gnu-delay | 10 + .../data/NonLinearRedQueueDisc-gnu-goodput | 8 + .../data/PfifoFastQueueDisc-gnu-delay | 10 + .../data/PfifoFastQueueDisc-gnu-goodput | 8 + .../data/PieQueueDisc-gnu-delay | 10 + .../data/PieQueueDisc-gnu-goodput | 8 + .../data/RedQueueDisc-gnu-delay | 10 + .../data/RedQueueDisc-gnu-goodput | 8 + .../AggressiveTransportSender/data/plot-shell | 25 + .../graph/AdaptiveRedQueueDisc-delay.png | Bin 0 -> 7316 bytes .../graph/AdaptiveRedQueueDisc-goodput.png | Bin 0 -> 6074 bytes .../graph/CoDelQueueDisc-delay.png | Bin 0 -> 5678 bytes .../graph/CoDelQueueDisc-goodput.png | Bin 0 -> 5971 bytes .../graph/CobaltQueueDisc-delay.png | Bin 0 -> 5563 bytes .../graph/CobaltQueueDisc-goodput.png | Bin 0 -> 5726 bytes .../graph/FengAdaptiveRedQueueDisc-delay.png | Bin 0 -> 8070 bytes .../FengAdaptiveRedQueueDisc-goodput.png | Bin 0 -> 5945 bytes .../graph/NonLinearRedQueueDisc-delay.png | Bin 0 -> 8011 bytes .../graph/NonLinearRedQueueDisc-goodput.png | Bin 0 -> 6038 bytes .../graph/PfifoFastQueueDisc-delay.png | Bin 0 -> 6571 bytes .../graph/PfifoFastQueueDisc-goodput.png | Bin 0 -> 5950 bytes .../graph/PieQueueDisc-delay.png | Bin 0 -> 7128 bytes .../graph/PieQueueDisc-goodput.png | Bin 0 -> 6201 bytes .../graph/RedQueueDisc-delay.png | Bin 0 -> 7939 bytes .../graph/RedQueueDisc-goodput.png | Bin 0 -> 6051 bytes .../graph/qdel-goodput.png | Bin 0 -> 7996 bytes .../.vscode/c_cpp_properties.json | 19 + .../examples/aqm-eval-suite-runner.cc | 5 +- .../helper/aqm-eval-suite-helper.cc | 27 +- src/aqm-eval-suite/utils/ellipsemaker | 59 +- .../bindings/callbacks_list.py | 1 - .../bindings/modulegen__gcc_ILP32.py | 782 +++++++----------- .../bindings/modulegen__gcc_LP64.py | 782 +++++++----------- src/traffic-control/doc/cobalt.rst | 137 --- src/traffic-control/doc/fq-codel.rst | 9 - src/traffic-control/doc/mq.rst | 3 - src/traffic-control/doc/queue-discs.rst | 12 +- .../helper/traffic-control-helper.cc | 16 +- .../helper/traffic-control-helper.h | 7 +- src/traffic-control/test/examples-to-run.py | 2 +- src/traffic-control/wscript | 6 +- 49 files changed, 883 insertions(+), 1153 deletions(-) create mode 100644 aqm-eval-output/AggressiveTransportSender/data/AdaptiveRedQueueDisc-gnu-delay create mode 100644 aqm-eval-output/AggressiveTransportSender/data/AdaptiveRedQueueDisc-gnu-goodput create mode 100644 aqm-eval-output/AggressiveTransportSender/data/CoDelQueueDisc-gnu-delay create mode 100644 aqm-eval-output/AggressiveTransportSender/data/CoDelQueueDisc-gnu-goodput create mode 100644 aqm-eval-output/AggressiveTransportSender/data/CobaltQueueDisc-gnu-delay create mode 100644 aqm-eval-output/AggressiveTransportSender/data/CobaltQueueDisc-gnu-goodput create mode 100644 aqm-eval-output/AggressiveTransportSender/data/FengAdaptiveRedQueueDisc-gnu-delay create mode 100644 aqm-eval-output/AggressiveTransportSender/data/FengAdaptiveRedQueueDisc-gnu-goodput create mode 100644 aqm-eval-output/AggressiveTransportSender/data/NonLinearRedQueueDisc-gnu-delay create mode 100644 aqm-eval-output/AggressiveTransportSender/data/NonLinearRedQueueDisc-gnu-goodput create mode 100644 aqm-eval-output/AggressiveTransportSender/data/PfifoFastQueueDisc-gnu-delay create mode 100644 aqm-eval-output/AggressiveTransportSender/data/PfifoFastQueueDisc-gnu-goodput create mode 100644 aqm-eval-output/AggressiveTransportSender/data/PieQueueDisc-gnu-delay create mode 100644 aqm-eval-output/AggressiveTransportSender/data/PieQueueDisc-gnu-goodput create mode 100644 aqm-eval-output/AggressiveTransportSender/data/RedQueueDisc-gnu-delay create mode 100644 aqm-eval-output/AggressiveTransportSender/data/RedQueueDisc-gnu-goodput create mode 100644 aqm-eval-output/AggressiveTransportSender/data/plot-shell create mode 100644 aqm-eval-output/AggressiveTransportSender/graph/AdaptiveRedQueueDisc-delay.png create mode 100644 aqm-eval-output/AggressiveTransportSender/graph/AdaptiveRedQueueDisc-goodput.png create mode 100644 aqm-eval-output/AggressiveTransportSender/graph/CoDelQueueDisc-delay.png create mode 100644 aqm-eval-output/AggressiveTransportSender/graph/CoDelQueueDisc-goodput.png create mode 100644 aqm-eval-output/AggressiveTransportSender/graph/CobaltQueueDisc-delay.png create mode 100644 aqm-eval-output/AggressiveTransportSender/graph/CobaltQueueDisc-goodput.png create mode 100644 aqm-eval-output/AggressiveTransportSender/graph/FengAdaptiveRedQueueDisc-delay.png create mode 100644 aqm-eval-output/AggressiveTransportSender/graph/FengAdaptiveRedQueueDisc-goodput.png create mode 100644 aqm-eval-output/AggressiveTransportSender/graph/NonLinearRedQueueDisc-delay.png create mode 100644 aqm-eval-output/AggressiveTransportSender/graph/NonLinearRedQueueDisc-goodput.png create mode 100644 aqm-eval-output/AggressiveTransportSender/graph/PfifoFastQueueDisc-delay.png create mode 100644 aqm-eval-output/AggressiveTransportSender/graph/PfifoFastQueueDisc-goodput.png create mode 100644 aqm-eval-output/AggressiveTransportSender/graph/PieQueueDisc-delay.png create mode 100644 aqm-eval-output/AggressiveTransportSender/graph/PieQueueDisc-goodput.png create mode 100644 aqm-eval-output/AggressiveTransportSender/graph/RedQueueDisc-delay.png create mode 100644 aqm-eval-output/AggressiveTransportSender/graph/RedQueueDisc-goodput.png create mode 100644 aqm-eval-output/AggressiveTransportSender/graph/qdel-goodput.png create mode 100644 src/aqm-eval-suite/.vscode/c_cpp_properties.json delete mode 100644 src/traffic-control/doc/cobalt.rst diff --git a/aqm-eval-output/AggressiveTransportSender/data/AdaptiveRedQueueDisc-gnu-delay b/aqm-eval-output/AggressiveTransportSender/data/AdaptiveRedQueueDisc-gnu-delay new file mode 100644 index 00000000000..d55184ebfd5 --- /dev/null +++ b/aqm-eval-output/AggressiveTransportSender/data/AdaptiveRedQueueDisc-gnu-delay @@ -0,0 +1,10 @@ +set terminal png +set output "aqm-eval-output/AggressiveTransportSender/graph/AdaptiveRedQueueDisc-delay.png" + set xlabel "Time (Seconds)" font "Verdana,12" +set ylabel "Delay (ms)" font "Verdana,12" +set grid +show grid +set key font "Verdana,12" +set yrange [0:] +set xrange [:300] +plot "aqm-eval-output/AggressiveTransportSender/data/AdaptiveRedQueueDisc-qdel.dat" using 1:2 with lines title "AdaptiveRedQueueDisc" \ No newline at end of file diff --git a/aqm-eval-output/AggressiveTransportSender/data/AdaptiveRedQueueDisc-gnu-goodput b/aqm-eval-output/AggressiveTransportSender/data/AdaptiveRedQueueDisc-gnu-goodput new file mode 100644 index 00000000000..784bd47d640 --- /dev/null +++ b/aqm-eval-output/AggressiveTransportSender/data/AdaptiveRedQueueDisc-gnu-goodput @@ -0,0 +1,8 @@ +set terminal png +set output "aqm-eval-output/AggressiveTransportSender/graph/AdaptiveRedQueueDisc-goodput.png" + set xlabel "Time (Seconds)" font "Verdana,12" +set ylabel "Goodput (Mbps)" font "Verdana,12" +set grid +show grid +set key font "Verdana,12" +plot "aqm-eval-output/AggressiveTransportSender/data/new-AdaptiveRedQueueDisc-goodput.dat" i 0 using 1:2 with lines smooth csplines title "Flow 1" \ No newline at end of file diff --git a/aqm-eval-output/AggressiveTransportSender/data/CoDelQueueDisc-gnu-delay b/aqm-eval-output/AggressiveTransportSender/data/CoDelQueueDisc-gnu-delay new file mode 100644 index 00000000000..ed47b64d62a --- /dev/null +++ b/aqm-eval-output/AggressiveTransportSender/data/CoDelQueueDisc-gnu-delay @@ -0,0 +1,10 @@ +set terminal png +set output "aqm-eval-output/AggressiveTransportSender/graph/CoDelQueueDisc-delay.png" + set xlabel "Time (Seconds)" font "Verdana,12" +set ylabel "Delay (ms)" font "Verdana,12" +set grid +show grid +set key font "Verdana,12" +set yrange [0:] +set xrange [:300] +plot "aqm-eval-output/AggressiveTransportSender/data/CoDelQueueDisc-qdel.dat" using 1:2 with lines title "CoDelQueueDisc" \ No newline at end of file diff --git a/aqm-eval-output/AggressiveTransportSender/data/CoDelQueueDisc-gnu-goodput b/aqm-eval-output/AggressiveTransportSender/data/CoDelQueueDisc-gnu-goodput new file mode 100644 index 00000000000..4a8bd6d1f5d --- /dev/null +++ b/aqm-eval-output/AggressiveTransportSender/data/CoDelQueueDisc-gnu-goodput @@ -0,0 +1,8 @@ +set terminal png +set output "aqm-eval-output/AggressiveTransportSender/graph/CoDelQueueDisc-goodput.png" + set xlabel "Time (Seconds)" font "Verdana,12" +set ylabel "Goodput (Mbps)" font "Verdana,12" +set grid +show grid +set key font "Verdana,12" +plot "aqm-eval-output/AggressiveTransportSender/data/new-CoDelQueueDisc-goodput.dat" i 0 using 1:2 with lines smooth csplines title "Flow 1" \ No newline at end of file diff --git a/aqm-eval-output/AggressiveTransportSender/data/CobaltQueueDisc-gnu-delay b/aqm-eval-output/AggressiveTransportSender/data/CobaltQueueDisc-gnu-delay new file mode 100644 index 00000000000..b83403dd102 --- /dev/null +++ b/aqm-eval-output/AggressiveTransportSender/data/CobaltQueueDisc-gnu-delay @@ -0,0 +1,10 @@ +set terminal png +set output "aqm-eval-output/AggressiveTransportSender/graph/CobaltQueueDisc-delay.png" + set xlabel "Time (Seconds)" font "Verdana,12" +set ylabel "Delay (ms)" font "Verdana,12" +set grid +show grid +set key font "Verdana,12" +set yrange [0:] +set xrange [:300] +plot "aqm-eval-output/AggressiveTransportSender/data/CobaltQueueDisc-qdel.dat" using 1:2 with lines title "CobaltQueueDisc" \ No newline at end of file diff --git a/aqm-eval-output/AggressiveTransportSender/data/CobaltQueueDisc-gnu-goodput b/aqm-eval-output/AggressiveTransportSender/data/CobaltQueueDisc-gnu-goodput new file mode 100644 index 00000000000..115e7f1e2b1 --- /dev/null +++ b/aqm-eval-output/AggressiveTransportSender/data/CobaltQueueDisc-gnu-goodput @@ -0,0 +1,8 @@ +set terminal png +set output "aqm-eval-output/AggressiveTransportSender/graph/CobaltQueueDisc-goodput.png" + set xlabel "Time (Seconds)" font "Verdana,12" +set ylabel "Goodput (Mbps)" font "Verdana,12" +set grid +show grid +set key font "Verdana,12" +plot "aqm-eval-output/AggressiveTransportSender/data/new-CobaltQueueDisc-goodput.dat" i 0 using 1:2 with lines smooth csplines title "Flow 1" \ No newline at end of file diff --git a/aqm-eval-output/AggressiveTransportSender/data/FengAdaptiveRedQueueDisc-gnu-delay b/aqm-eval-output/AggressiveTransportSender/data/FengAdaptiveRedQueueDisc-gnu-delay new file mode 100644 index 00000000000..a778907fd11 --- /dev/null +++ b/aqm-eval-output/AggressiveTransportSender/data/FengAdaptiveRedQueueDisc-gnu-delay @@ -0,0 +1,10 @@ +set terminal png +set output "aqm-eval-output/AggressiveTransportSender/graph/FengAdaptiveRedQueueDisc-delay.png" + set xlabel "Time (Seconds)" font "Verdana,12" +set ylabel "Delay (ms)" font "Verdana,12" +set grid +show grid +set key font "Verdana,12" +set yrange [0:] +set xrange [:300] +plot "aqm-eval-output/AggressiveTransportSender/data/FengAdaptiveRedQueueDisc-qdel.dat" using 1:2 with lines title "FengAdaptiveRedQueueDisc" \ No newline at end of file diff --git a/aqm-eval-output/AggressiveTransportSender/data/FengAdaptiveRedQueueDisc-gnu-goodput b/aqm-eval-output/AggressiveTransportSender/data/FengAdaptiveRedQueueDisc-gnu-goodput new file mode 100644 index 00000000000..9e7a5aacc63 --- /dev/null +++ b/aqm-eval-output/AggressiveTransportSender/data/FengAdaptiveRedQueueDisc-gnu-goodput @@ -0,0 +1,8 @@ +set terminal png +set output "aqm-eval-output/AggressiveTransportSender/graph/FengAdaptiveRedQueueDisc-goodput.png" + set xlabel "Time (Seconds)" font "Verdana,12" +set ylabel "Goodput (Mbps)" font "Verdana,12" +set grid +show grid +set key font "Verdana,12" +plot "aqm-eval-output/AggressiveTransportSender/data/new-FengAdaptiveRedQueueDisc-goodput.dat" i 0 using 1:2 with lines smooth csplines title "Flow 1" \ No newline at end of file diff --git a/aqm-eval-output/AggressiveTransportSender/data/NonLinearRedQueueDisc-gnu-delay b/aqm-eval-output/AggressiveTransportSender/data/NonLinearRedQueueDisc-gnu-delay new file mode 100644 index 00000000000..08d401d2177 --- /dev/null +++ b/aqm-eval-output/AggressiveTransportSender/data/NonLinearRedQueueDisc-gnu-delay @@ -0,0 +1,10 @@ +set terminal png +set output "aqm-eval-output/AggressiveTransportSender/graph/NonLinearRedQueueDisc-delay.png" + set xlabel "Time (Seconds)" font "Verdana,12" +set ylabel "Delay (ms)" font "Verdana,12" +set grid +show grid +set key font "Verdana,12" +set yrange [0:] +set xrange [:300] +plot "aqm-eval-output/AggressiveTransportSender/data/NonLinearRedQueueDisc-qdel.dat" using 1:2 with lines title "NonLinearRedQueueDisc" \ No newline at end of file diff --git a/aqm-eval-output/AggressiveTransportSender/data/NonLinearRedQueueDisc-gnu-goodput b/aqm-eval-output/AggressiveTransportSender/data/NonLinearRedQueueDisc-gnu-goodput new file mode 100644 index 00000000000..51ee6203121 --- /dev/null +++ b/aqm-eval-output/AggressiveTransportSender/data/NonLinearRedQueueDisc-gnu-goodput @@ -0,0 +1,8 @@ +set terminal png +set output "aqm-eval-output/AggressiveTransportSender/graph/NonLinearRedQueueDisc-goodput.png" + set xlabel "Time (Seconds)" font "Verdana,12" +set ylabel "Goodput (Mbps)" font "Verdana,12" +set grid +show grid +set key font "Verdana,12" +plot "aqm-eval-output/AggressiveTransportSender/data/new-NonLinearRedQueueDisc-goodput.dat" i 0 using 1:2 with lines smooth csplines title "Flow 1" \ No newline at end of file diff --git a/aqm-eval-output/AggressiveTransportSender/data/PfifoFastQueueDisc-gnu-delay b/aqm-eval-output/AggressiveTransportSender/data/PfifoFastQueueDisc-gnu-delay new file mode 100644 index 00000000000..2a54d58852b --- /dev/null +++ b/aqm-eval-output/AggressiveTransportSender/data/PfifoFastQueueDisc-gnu-delay @@ -0,0 +1,10 @@ +set terminal png +set output "aqm-eval-output/AggressiveTransportSender/graph/PfifoFastQueueDisc-delay.png" + set xlabel "Time (Seconds)" font "Verdana,12" +set ylabel "Delay (ms)" font "Verdana,12" +set grid +show grid +set key font "Verdana,12" +set yrange [0:] +set xrange [:300] +plot "aqm-eval-output/AggressiveTransportSender/data/PfifoFastQueueDisc-qdel.dat" using 1:2 with lines title "PfifoFastQueueDisc" \ No newline at end of file diff --git a/aqm-eval-output/AggressiveTransportSender/data/PfifoFastQueueDisc-gnu-goodput b/aqm-eval-output/AggressiveTransportSender/data/PfifoFastQueueDisc-gnu-goodput new file mode 100644 index 00000000000..eb049ba8ffc --- /dev/null +++ b/aqm-eval-output/AggressiveTransportSender/data/PfifoFastQueueDisc-gnu-goodput @@ -0,0 +1,8 @@ +set terminal png +set output "aqm-eval-output/AggressiveTransportSender/graph/PfifoFastQueueDisc-goodput.png" + set xlabel "Time (Seconds)" font "Verdana,12" +set ylabel "Goodput (Mbps)" font "Verdana,12" +set grid +show grid +set key font "Verdana,12" +plot "aqm-eval-output/AggressiveTransportSender/data/new-PfifoFastQueueDisc-goodput.dat" i 0 using 1:2 with lines smooth csplines title "Flow 1" \ No newline at end of file diff --git a/aqm-eval-output/AggressiveTransportSender/data/PieQueueDisc-gnu-delay b/aqm-eval-output/AggressiveTransportSender/data/PieQueueDisc-gnu-delay new file mode 100644 index 00000000000..8d0ce3edd7c --- /dev/null +++ b/aqm-eval-output/AggressiveTransportSender/data/PieQueueDisc-gnu-delay @@ -0,0 +1,10 @@ +set terminal png +set output "aqm-eval-output/AggressiveTransportSender/graph/PieQueueDisc-delay.png" + set xlabel "Time (Seconds)" font "Verdana,12" +set ylabel "Delay (ms)" font "Verdana,12" +set grid +show grid +set key font "Verdana,12" +set yrange [0:] +set xrange [:300] +plot "aqm-eval-output/AggressiveTransportSender/data/PieQueueDisc-qdel.dat" using 1:2 with lines title "PieQueueDisc" \ No newline at end of file diff --git a/aqm-eval-output/AggressiveTransportSender/data/PieQueueDisc-gnu-goodput b/aqm-eval-output/AggressiveTransportSender/data/PieQueueDisc-gnu-goodput new file mode 100644 index 00000000000..27f72912867 --- /dev/null +++ b/aqm-eval-output/AggressiveTransportSender/data/PieQueueDisc-gnu-goodput @@ -0,0 +1,8 @@ +set terminal png +set output "aqm-eval-output/AggressiveTransportSender/graph/PieQueueDisc-goodput.png" + set xlabel "Time (Seconds)" font "Verdana,12" +set ylabel "Goodput (Mbps)" font "Verdana,12" +set grid +show grid +set key font "Verdana,12" +plot "aqm-eval-output/AggressiveTransportSender/data/new-PieQueueDisc-goodput.dat" i 0 using 1:2 with lines smooth csplines title "Flow 1" \ No newline at end of file diff --git a/aqm-eval-output/AggressiveTransportSender/data/RedQueueDisc-gnu-delay b/aqm-eval-output/AggressiveTransportSender/data/RedQueueDisc-gnu-delay new file mode 100644 index 00000000000..c4b54de7963 --- /dev/null +++ b/aqm-eval-output/AggressiveTransportSender/data/RedQueueDisc-gnu-delay @@ -0,0 +1,10 @@ +set terminal png +set output "aqm-eval-output/AggressiveTransportSender/graph/RedQueueDisc-delay.png" + set xlabel "Time (Seconds)" font "Verdana,12" +set ylabel "Delay (ms)" font "Verdana,12" +set grid +show grid +set key font "Verdana,12" +set yrange [0:] +set xrange [:300] +plot "aqm-eval-output/AggressiveTransportSender/data/RedQueueDisc-qdel.dat" using 1:2 with lines title "RedQueueDisc" \ No newline at end of file diff --git a/aqm-eval-output/AggressiveTransportSender/data/RedQueueDisc-gnu-goodput b/aqm-eval-output/AggressiveTransportSender/data/RedQueueDisc-gnu-goodput new file mode 100644 index 00000000000..2bde2ade48b --- /dev/null +++ b/aqm-eval-output/AggressiveTransportSender/data/RedQueueDisc-gnu-goodput @@ -0,0 +1,8 @@ +set terminal png +set output "aqm-eval-output/AggressiveTransportSender/graph/RedQueueDisc-goodput.png" + set xlabel "Time (Seconds)" font "Verdana,12" +set ylabel "Goodput (Mbps)" font "Verdana,12" +set grid +show grid +set key font "Verdana,12" +plot "aqm-eval-output/AggressiveTransportSender/data/new-RedQueueDisc-goodput.dat" i 0 using 1:2 with lines smooth csplines title "Flow 1" \ No newline at end of file diff --git a/aqm-eval-output/AggressiveTransportSender/data/plot-shell b/aqm-eval-output/AggressiveTransportSender/data/plot-shell new file mode 100644 index 00000000000..7167baf6c00 --- /dev/null +++ b/aqm-eval-output/AggressiveTransportSender/data/plot-shell @@ -0,0 +1,25 @@ +set terminal png size 600, 350 +set size .9, 1 +set output "aqm-eval-output/AggressiveTransportSender/graph/qdel-goodput.png" + set xlabel "Queue Delay (ms)" font "Verdana" +set ylabel "Goodput (Mbps)" font "Verdana" +set xrange[] reverse +set grid +show grid +set label "" at 72.06835290016018,0.7867839260302462 point lt 1 pt 1 center font "Verdana" tc lt 1 offset 1.5,0.4 +set label "DropTail" at graph 1.03,0.96 point lt 1 pt 1 font "Verdana,12" tc lt 1 offset 0.7, -0.2 +set label "" at 2.431904950121579,0.7230681669476516 point lt 2 pt 2 center font "Verdana" tc lt 2 offset 1.5,0.4 +set label "CoDel" at graph 1.03,0.9 point lt 2 pt 2 font "Verdana,12" tc lt 2 offset 0.7, -0.2 +set label "" at 19.08199634253437,0.7351984735537219 point lt 3 pt 3 center font "Verdana" tc lt 3 offset 1.5,0.4 +set label "PIE" at graph 1.03,0.84 point lt 3 pt 3 font "Verdana,12" tc lt 3 offset 0.7, -0.2 +set label "" at 50.088985730296265,0.8121450662276379 point lt 4 pt 4 center font "Verdana" tc lt 4 offset 1.5,0.4 +set label "RED" at graph 1.03,0.78 point lt 4 pt 4 font "Verdana,12" tc lt 4 offset 0.7, -0.2 +set label "" at 27.44747594008444,0.7416029147450488 point lt 5 pt 5 center font "Verdana" tc lt 5 offset 1.5,0.4 +set label "ARED" at graph 1.03,0.72 point lt 5 pt 5 font "Verdana,12" tc lt 5 offset 0.7, -0.2 +set label "" at 50.711097209133456,0.7591207397362596 point lt 6 pt 6 center font "Verdana" tc lt 6 offset 1.5,0.4 +set label "FRED" at graph 1.03,0.66 point lt 6 pt 6 font "Verdana,12" tc lt 6 offset 0.7, -0.2 +set label "" at 51.375889290678344,0.8062692176578442 point lt 7 pt 7 center font "Verdana" tc lt 7 offset 1.5,0.4 +set label "NLRED" at graph 1.03,0.6 point lt 7 pt 7 font "Verdana,12" tc lt 7 offset 0.7, -0.2 +set label "" at 0.9186746462718389,0.9397544572402379 point lt 8 pt 8 center font "Verdana" tc lt 8 offset 1.5,0.4 +set label "Cobalt" at graph 1.03,0.54 point lt 8 pt 8 font "Verdana,12" tc lt 8 offset 0.7, -0.2 +plot "aqm-eval-output/AggressiveTransportSender/data/PfifoFastQueueDisc-ellipse.dat" notitle with lines,"aqm-eval-output/AggressiveTransportSender/data/CoDelQueueDisc-ellipse.dat" notitle with lines,"aqm-eval-output/AggressiveTransportSender/data/PieQueueDisc-ellipse.dat" notitle with lines,"aqm-eval-output/AggressiveTransportSender/data/RedQueueDisc-ellipse.dat" notitle with lines,"aqm-eval-output/AggressiveTransportSender/data/AdaptiveRedQueueDisc-ellipse.dat" notitle with lines,"aqm-eval-output/AggressiveTransportSender/data/FengAdaptiveRedQueueDisc-ellipse.dat" notitle with lines,"aqm-eval-output/AggressiveTransportSender/data/NonLinearRedQueueDisc-ellipse.dat" notitle with lines,"aqm-eval-output/AggressiveTransportSender/data/CobaltQueueDisc-ellipse.dat" notitle with lines \ No newline at end of file diff --git a/aqm-eval-output/AggressiveTransportSender/graph/AdaptiveRedQueueDisc-delay.png b/aqm-eval-output/AggressiveTransportSender/graph/AdaptiveRedQueueDisc-delay.png new file mode 100644 index 0000000000000000000000000000000000000000..09fd332c825182a7af90c3fe3c4b2a4494d79dd3 GIT binary patch literal 7316 zcmdUUcT`hbx9{8u0Yd0Vs4CbHq>7;kLJlAxf}mLF1hCQ-0co;NP>LvW1P@IiiWCbF zrT4_6=uw)0g4C!-ib{wAqA28T&iBq8-+h0)@!lPGyfI$N*n6+N)|~6N=5NkD*W4*i zdu+r+6h#0)Y?rOoJ^&mFfN+HISPM=<^A&bMakAgPlh5ayo11%kdykEcwYIhv6cnso zySAmJg~3;e*G`0;QUy8?bcRB*Zc8a8)?&f)WU2Y6)z z`1tsvM~^x1w(>K1V&0L5>+tbW;l=Gydi((i>Tk~@X=zIyTFq!N2c$LHHO zcCyI6duO+=<4n=vdSd=Ev&jIQTB-vQRX&zjUe1`(+J$l&r&RYD@|gL zdZLUi4WXg~x|H#1{~K3hy%=1%x%C%>n9l9tiAFoeny90ClZLBEDjADtMMiW^06Zal zN&BVs#y2UZte7=5*-kDEX`Jfr@^qrNgbV)G7S4-QXu~Eyez7>Ykj7=PD7r) zjyiht%`DCenNrx;x3|cupcRv(a=|L(FklCRX z;yDs0i*}O;Kq~!h>5GtGQqYgxQHnX|rjv^$ z^_I3))jS}2tGQB;Z)80^;mXSS3OzdN(ptuE{C}LQ}kb556xB_qhy~vT$%Yk8dK-#A+|?QnPPXcvsfx! zi52~#YIx5LZE~Qsesk{P%h2Gqt|I~-zI!bGyymMPxZBw~5a(nW@L}uH_s+Jt{aw7H z3i1Is-bV89?qKs<0Z$5uvOjXf0y-B5f5S8CGjAQLEacFHI;P}9Q;dnnln#(c|B}JH z{;i-wWx&8y074uC#GlX2uZzhp&YFvD&U{{1vNsgAW%W(73`Tjn`41G^e;>G#{sZyI zUG#k}Y!qRY+-V&c;hqHo3_nAHc(S-aL)aFU5cl3uw?_b@ZzKzHJ0M__vsy^-ijw@@{hlWZ_i-*LJvAaBukOyfs3dG4}lN{Ot$dwVMW&h>u(O zT}Dcxs18M|Qq@R}zcX|nB#RSyp>VHqGEWZ24t=w(w-mS%DopeN{;qC#Mzn$sE zO-%P0x3(%KC(P&aQF{{H&{zo_|Ap2HChbR&W5V*;%&F&rF|t#!lodTYMHt^NM9xlM z=v^3`zgg{V*>IakO02R)wvAPkwfgV3AJYjSx3n$^fkoxyWyBLYB0KJm#k$LoFLM2V z!#}0OKDa+-yglyjmqn#npmjFseAK3(U$-33Sw8FcVly~=+5|V`F33~0$92&DKgOEZ ztIS!vzzsZWTS{=BYnbt)Y7saSvlj}w8o!*~8k8g&B_^B+r;PJs@E0Z;mFiMN}$n|55cH$$lh0aCnB&uW`6fxV>MpB9NBL3>N*@L9LVlfv{~V#P(fSrdcr5up z(#`f^M#{AW;Hanjlb7Y4kb!3hwW_Xkk@9kxw5Q3+)N;Y*PRWwVJUN5EMTw~#vvB_(WAEEik}=!-1|tFE!g68C$6`Mg_lLaGF8sIeoQab7ZNgQv z=!06)_+OD`t6!0}fRHlYqVV_xl6UeKM}By(DJ?0AWis1xuMwlmiN_>QB703o_E#}z z>pMrVwEllsGf6Wc=T{o+243Y@aZXMV;ii8@=97a^b4Sq z<$LAPW~GmDVtxS+>8k6moulrQ6=y_s4;DIFa84-nk_!^26ql}1)QQ3ZsPPI$HavJ` zx^!o^8R1ugWf~pHd{-FZcu=^E2&#oNAQ)agJ5K-C;))0|eXi#tfolWV1BI9

+M* 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 Q1NPaqbB|TI1&#hc08^`}y#N3J literal 0 HcmV?d00001 diff --git a/aqm-eval-output/AggressiveTransportSender/graph/AdaptiveRedQueueDisc-goodput.png b/aqm-eval-output/AggressiveTransportSender/graph/AdaptiveRedQueueDisc-goodput.png new file mode 100644 index 0000000000000000000000000000000000000000..f785a15d19bba840e56aa26a259db1f29481356c GIT binary patch literal 6074 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 literal 0 HcmV?d00001 diff --git a/aqm-eval-output/AggressiveTransportSender/graph/CoDelQueueDisc-delay.png b/aqm-eval-output/AggressiveTransportSender/graph/CoDelQueueDisc-delay.png new file mode 100644 index 0000000000000000000000000000000000000000..6f7fb552cd30d4a9e5fd80ca453cea49680ef2cb GIT binary patch literal 5678 zcmc&&2T)Vnx=upCP!pPSNI(q=3Y-K%sz8tqfxI2O^JeawbI;s)bLQSjGCOPSwfFkV_x;~m>z1{pu^``0 zJ_rONXli0)3xU7@2n5PNaDhEAr0Qp|aoF12?j)PdHZU-7cXy}L>0~lFFE3A4R<^0B zDW8odurX9hMKilOznaQqGpRMXY&M0>2G|q|JKu+$k7eg$*Z>9qAOMyPU@4rx7%@N$ z{6g%#)Dx{SgZYE^Aha3c47(7L51a zXO{MjCe9=>4;}>F`TqTTXJ;pcLaC~%%E-uwh=}m;@UXD3(A3o2xpODzK8Eq0&4v^z zD@U+7iaYcY7#12kHU z8(N@$T}Dt-C6)SY(2v3V`NO(C)*mm2pq!#xJBU0Thu-)aH14vEQAJdveOw67w3 zvRhzv#goI5K9T}!At>wI6POhRWA1>a%(R$6*-*?%d?ZY(z)j!hVaPO1QUlUCBKH2~ z1mi^1)T@9)B1kg_m<*qVu~ORT)lm;|rvAnl@eZ`!SEeE?ciW3a;hg=w4*p2q@uHkb zwEOqRqUhPKsJ^w>u2ioQlJXeQJIu)Q-OEn{X1oXqI8^v%hW6vEI`7@ry*Spt3WiM~Z1TEqR8w3AnV%G0vIu z_nDt|q59cIWS(=iAX`oj^e*d%NzD!iRLbXHnQVRh*-p;x!~JzJa>MwyDjO?dW>dIS zW>czbX108eW61J=vRct=e%&_@)XjG8dx2u^R_*vv5#wihb!ssEvU4_JSBIx2Z;-n| zu5?iQlGDVX|2rMiB!1mtjps=ju6K7mRDfEfF-|%^BdCAXy>qLV)lqf6M-jWR(i(Fu z;r<_bHFr|(1yhccJ%qwiZ*MdL!{cg4=lU+aq*cv*b63ipU8jiEDz@OR@CuGu4wLGJzPdl=46(oqdF(BU|w zu@U8JFzVZIa(OCe+;{Y&gsOxOZ8fk>>FkhgcOYFQE?_dWpN_hYygPJ9 zcj%k`+?B$|V-7TpdEI=%yG~hx|64TnX&>Fn2#FIkZf-91j2~PHS@zg{Cf@#RTF``^E)RT1i!NXTRXCE8|>B@f#HyGdiUuv4Xqt8PJ~Krt2m zs7R^JmbhGCEPg>4W&V$mG_eax&Fk+U-mXL-_JVx5tpI&`<#y#gM%cJbs}mfa0U4^!zwqR|DvW3fa_zh+=4$47RfQng5W550q0RCj-74kLhb<1IiZmegiY4O! ztO!U(Cy~U=B1tpeKVoF;@0`SF@Pd3))=eP)R9tFi=%w7PQzuKRWIDIx+%&tMMsr?TFkoX!OMR2!~|LgkX}|Cj4O zQu)>UAHit@CYuKsXsjqWh!^J;G&pJ%&NX4v+V>7I9-ZT+(k8e>Fc-k`-YxT)*)^@hzcs6mtJd zKm4h@NW-$&#M2mwI^W|$;bSdBwG|>7oB8k)^0T^Fz5TBz$V>XjzNWlwMwsz=zVTPF zW=BO|NiuCKdnLJK`u4&;4#X-zhlu};-29s<_}if4RSIV>AcCI$Z7=)_EV>y{)B@(n z%0`nbQOKsSDvMJZ2xsnqPp*`ZkfM1DdelBHVU)*nzCNuD#r)YK&x-}~ztsSQ^I#@E_-XTb+>2pN=~kbfT;2|Ikk4l3aK&Z z*-_}wo(WjTW!yUYqAv8H*g(-w8g|Y-m)B-zpc!^yR5I;>%kE7MD2w z@nVf1@Jov67dWoRcX8DPdTpG~LLgviBWbq_Nw0*VuA*}~@>o}pF z5dF~PZP~Ofia%LjIA@qSTnYA4#pBJ5#s;=b+DK-FTzEMQhCDJcTx?+FOgs1zxLg== zJW}H4wG#3TA%jvONQz-=}j^lcM3FEc6&~L{ceFRma zm0N&Tr{BG0nDBe;Im^ai5bUJE1pEr0*MvC&RI0OXlp^ot*-kA1(Kqak0QKfTZShC& z7V~0&M!(&!&vWCGJa#OriFf+^P%sE$!v}!f0Tr7Vcrw+c#czzR|^o=54!{u`Mb=-m*otW=`1PAzQHpnM@14I=Mj

1(3?Mex0E*y>nRjetd7X5cF z=l(NENS;Tmq)eY{dvvYY)BNLlpU|_jCX~E1k4r)98m_4#y?b3vg{7fRS^bZ%lSP@; ztCJ4QrMeobV}g9Cj2z?h2{=Lbg*t;b?%wpH(}zAp0o~-a$H_wQF|&?kkNvzsXAM}p zuPic`<~}_%or-y?u#&GOrLdv`tvRIu>xe+a0;VoCa0#VAPjf>G)%_%9S{_bVF1d$2 z?#|j0gQgeucBve>qZm0+#3;jl!5`U_>SB~+5`Vi*E zNYT9@s-Ae!l=4V~wQx76Rir^8+l`34zVyY6d3qa~fzyDET0B?5p80qV$_^9t-k0M@ zxx4&gd6Q<46A3Gd=;BE}6##%c%RDz%y`!p($0DrK4zgNvKTJjm^n?-WjY2`)#|g}7 zn*SM?o7OE6RuZ232Z5$N^cDjeyyFrytk;;o*UFZt)T~(tZk3braEs4UfgxH+Oo{`t z<=ar8>6F&Zk?Y7{k?PMIUa+l2)zz$7IANx{RD!NAAnT@=`ywP=nNbikHK3m2pdNkq zI+^dY>BsFFn*m^A^4u;WV*$Ku_@^QoLZ`S_KLHB$u;Z3aAbPPc@v)qn#5KCOs=Ma_ z$Wwv}qhC`FyzWO+wEyfJfwODkhR$1AIQm&uc4ZCT#Ie{i8A_oY)P4^~q+D`V4apx@ zIXWuAoIbfmxB2v?%JuNAgT|w8bN%P5NyP)GkC*T>+2APsM$#%bAv7sGy1n6xH!a~o zXHxLxRAyf52kmY}h$RYKBc zpxvUzBj)wdAEp$ggYHXV0_h}bS+QNF3h7JMG3lNcrqssQGE5mlp0C`@69cn~cUg^+T-8UaBw(Xn{(DZ#uVx+l{)g-cD>ki^C0!CAmc6_? z?8*&^gP!U_+egm@#s4^Dr8*Hr_uc?S*n7DNRT8qup}*wJ*b+5vshwR{J|i&iy}#mj1G& zV1x5VL~ZN!3rN}g(SLgO^B2cLTen#4tUw+@&HQ7YsH5SeeQv$Z*Nw^6HuiDbTo--y z;?Rt}!;WpX@O$Ob)#nn+7Z*1tRUBYT5mULdh}v6Lf9!fI+t3M*gyI+vv_P8t(NiPRw|!qzNcuPjxU5XgwqQwmha3hKO6tD@I7dU z!P2`!E!XR0SuQ1en&m_SM-pZx)9!Usm6%yOHSx%H8_fpg`b&m(I0}T&d+q z-zXjZg~{0|T`+jE+yt2?`#rCIU7W%%0m=5|%fNvk=@YiZp)OBop6U*yVNt#18$`x~~6q|L^~GCt6t;a&heE zfWcr~#zxpvFc<=W!QkU47U&6rTX7I-9JMmDH2^^njYhki1HpV8n2!Mg3;@6Y90=gZ%v%gUzz_Yw z?0i*HtuWMlYC5cMfv^BRgyjR`D=VY5S2-JNd>21n`+PfU1GoShz!m`j#9M*FH^1Zmy=LwtxSA$bHQCI}n6Dl$XbY z{g5{pfH{XM4j=;{48VY7ab53;wl)|U1A{FrkfHgY=gfbw{QP|Ab!dt=!-LAu9X#Ze zg$)ezamW*Dum>7B1;b!_UNOJ$423-+FqlA%F;>?$BInCJ_S+@3ysYRcts(A_iUv?R zM(VIgJ+GuzM$g`vTGz<&q%Z>oU5|AdALb_LT@Kq)N1=+v#UB%Zd=3Ob{_ixFt^l!f z!!p~a>x?o&?v2N5sNiUWJ;O&!96AnBH^?bLuHJVU2J2M(n4V&O_3t&+W4R1VtWCG^N%PC|Upy^Aw z&4$R`6U%80M)ZeI0oTRY=Jl67u~vg0g%dX36e@SdA>j&0sacbLrQl{65_^Gd!39B{ z(#rtJlrLO=E-3grOK9ZCUg=iW7@n2b{u7R?nLudoGAbhBCOS0N+5_HV$iu_?OrSzJ zN1-@K{(jJRPdx#+gtiFW*TLSdcTai5nu&uMW24WIXAvd&TDj+OE#E0DJbCr=X2XSb z;v&N-AX@4$;^1$8Sl;vMFJcRscr0B$u~-_`v{lA^Ru5y;eVQE9(P25sy|D87*(XXi zfI@wa>|@!Z?beIl^k`&{ki&)FF3eC>&cErA>D7M{Lz)(>fyeu!XDk&J24!#cviux7 zK&4h}mC&MKu3^+uxAJrzg=*J4$hQ1FpT3ziAd{cHn%Q?5$WID_U+1sKE6GcsjMC*> zS&?%PmLAUJ6AJv+7kEwBe zl*!SKS^#$diL|@MdB@91!ekGE_u>9?&X|flP*SwAc0McRk!FJ@p1OWSS=^Bgt}8Hw z_~>MxkaiisJ~=78g8BVHCRUvBVKwDIOj`D9*%Q6R0nKd9ass; z9Pe1^*?5gHQMFcUXWji`#Xp8OAoLWaK1E#ITI~tz?(qGLV_J!yyL!FknpJO|CPz%n zJ-$!cY_H&Q%=P2Dn7EAC$QzK#r-{cLPUSW0@9fgXfumy~*6%+GFKwMlObhN&$2}X{ zRl2sO!G7$X(6-3I6Bjr4VvQ7WqnxX24GjKi#@Iog(%`omxT)x-2=LKWe@uZ+5Y5b} z7PRRbJIl)#uL_3mjf5=Cq5X$X&N|UxN z!t#6<-Idn6hfXN;qs1~@G2pZPtco48PBrJl^msXHslK`xee1PVpd>TQpM!ODU@F`% zr||bPlezxn>%l9@01I^yeG`9Tt58I2B60@&GD-hR`xZQBSo5v%%-CEt{cGFW-d&#| zVp%)hp{~RJab;6|djUS5vp*8Xg0S~!%M6mQ^c zba}yQ_*%3?JmR1hMVn&zB7pJab=HE5{o?YwM^wk~nvGKi(hZx-^UJiE*vpZpZ#@GT zW(oB5*#eg$19kr*DIx_ z6{TI}tfRBf1p}!i#O)MX(^D|o;(W-6w0g4NixhLg(27^T2@d-2qpf1&&np^ye+rHk z$wra3!V=r3mFlNyUX3A7SB-0;!D9INX>`9*xDDSRL1hA~O;d*5d5#Hn!Qr1cjlSRUH6>&Bj zzI!w?$vgb#0Z-O)UaG5W;H(r_oOD{r`ER?+fRY#UDlXcdb#Aj3gXKF%Mx|- z>}$IE7)6}ZuNRRO7N-d+x0qCY!;xGZs4pv|&T8|VIcN6`7JI|IjRNx|6=Voo!NiQF zB+l;9Cs3{#OHAeb#GPOqq_`WwTcxLnqjwYqn1p|`LYkIX1z~mb(fPO+=-|5|kS+h2F&(-r?P?w&YJ%AN^3WBK12TTtb}2>3TEY z93pl2l$ykjABT1L5QBfaq%lpk*tnbeIgBVdFlV8L;5~XPM&=c*;zd~UrH8)U!w(Sp zQr{pBMn};sEVIMD#SX|I^rTkIj1E|cmQmNAb_~>T?Cec9%*d+X;qJH?*L?Qbfxd5Z z`uGF@8;gkuI`s8dBR)ilHMufkOhMdHcEzl%h;4U<5PX8=3G2041Fm@O@wPIGsO#s^ zcgg57^g;F`t#2f)Evi$tno7jujmS~2#dck79Ite7#fhXo=59lVC~Tvaf9MeE@=M+9 zbX#7F$IUb%DLAmh?h)LG!<}E z8E>X7{DGPWSC-6FrSCiz(1UM|y-t26{lY{C!7H#ga~!EnD`xt7jk^U1{V5`DY{`G) zGu|0+2I=SG2`Lea+vD=RTqS#X4tdqUOB$lcJ6nqd=N*czbFQ1b^@VPZ+NQ1bD?2mS z^G))aT@e@WZ1d7X7%TUlWS8-|dg*saU38-y2fUT7joGgX*8$f_E}q#qJ|4I`w7TeY zyT0_z&8FB7GLW4KTREviYe)Ul)S=k5eb8T06G_-L*Y*ZJ6`EM)b^vpSxOO!*l30RF`k zR@Z3q3#!`y3lmyy?3>sR-fNQwtQ$QWxoRVMhePfKx8PeYzd4Ua)_^WZKj+?Kv0rC2 zC3O3P-qdgyE|NIf)WywmYHi+EXwGa8vn4`_O?e*PQ>;{SA4ytZg;H|A=20FcEgttQ zc46c-H3^kBDojzPB`a-BaK|c-zss&FZ~PGMe@OgVTMC<~I_&MsD&re$Oz$sDcA$b} zq}uoPLfLOLd+B#4C~QKy7%Kx;!c^R8OLiHPhe%2pmzo6r2G*3B6erVq;u3}*AX|(! z?(!ICqfnBqUV2MR1qqSH4-E!U3GTp;3rp{xbd;AKSqtjCbNQcd+_O1W{8b9dS$C`q z&ThT0t0i$h@=M$geEC#eQ(IPI-R4!6m+T;n`x6#7fUe~aFU)&oq=inNMYQVkY^=L7vbT;PKm11+G6!YQzmSovVbl!FJ)e1kiok;t@=K|jweX%zzKP28D zTLqX~mAl@nw{7%8Lj09wtg=(19dvdOgEFkHo~?A4l5Ao_aQ_HtF3;gzrPSuc`R>qe zE|5<nXd8_2vUg{rayMQiX#A@waA8*QUxIe0m5v4TN*g}$LQnpBM{Uw3)xUY zl{%jdKN+M4F_?UCGYZA`uhtb%Qoa7)$m)M0qW_;|&!5a24X+>k`k`5=1frk2X965u z>U+t>wN97{iwp2GD$cZ4S@Z8$%sSQwDnH}%80PPPX~xDLV#1>0BP4=>%92#3F5W0d zBIktYP~g`5Sk&=;ELt;HUAKb1e>F-ytaC8&LS^h9Yc86W9`GsGzz@pRPq~cx*?vMG zRtV|(#7$4V2EgFc+03XDkS`TSq11U&<` zR|l#_gcAVO;Aa4l-Bmc9JA%ZkJ@~can_p7BSXZpsM)3JHSPP({N6^rhhzg0RQdM=dso--mM zb=y1Xh_SQXwZYEAZZloh6bGVQv3s-5>(kIZrP#d2o*479WB4zWsjLlQ;@#hxx<^jB zoUUpWJ7HUGJm|w0>P?&t@wIzPk*@>Zuzk++Jk6L3YR=O9cxud^oLr*575lz)VAV4A zXt7a^{gt!CG|q^agjsKAr#NE5&yKGAs$Io)`q->04(r6h;-JvtswHbe)eBt=7>s8c zd0{B&_qWKPLg2T~hYj8$s?EiA1~+|(dbVj*`@@8@u)YF?NZ$-!ZjE#2hFFRmtBRFQ z5$&#-RND7g-cFdqRnFE5k2ip$;*tKr$nkqYo~;^_k?WztFqgfcvcx%C-! z2c;cLvR4TzVh_XypNF$g+DGqUv~FZZ9-iGOw!76%q4?Z*(O_>!mu!&Cr1&ImL=zW; z*&1R}FHXN~)z1@Wu7;wg#PbY2TY}xlwHq#HN`9H$IBn-|BnKHF3Jvb;r8nzgQpYc7 zI2qf6j|{;> zvL`GrbFty}egAMvF3Dr%fy&s$1vexd&D*1K3ngTs={G9w)^{6^k7+qco;mNrH~>e# zPpU6`2X9Sr@ZuWgi1=11Q-mR>C~D(q_E#7VL&83Oa!*@q9295juJQ#8HYw9L)ugu0 zSK*~|gRL{Bgn6&y6;MJt({8507F7Z~i;}+Zw^4x)luP8(9q}(6271b{z8$acO@G(Q z*>8UpUs6Ey7z~an7jsR{R9|#R=a@kfEzsL*y5y8n7i)8Eiq@e25Zk;{Y8qMJH1c;y+zeWd3i1VGG*Qz&<{TgCYgZ!K!X7EW{FQGe`b zg6rE&n|O6sr=ok64PH}D4EN2a{;iEO?L&DmIJ#1~c_Na(BGvqOYUM zTH!O&w}Z&4$&?d$yRj|D9?aF;NxFPqj_->WwAqvKZ2#bF6`w&V^f-N82M(R#cp;QfL`nogXrTz6cY=53&HLuNZ{8o@y!XwUBy-N$XRW>0TKl(tYh~ZH zJz>6;ZwDU$09!4NnVtjyBnSYAAv6y>f)rHgf*%gsS~-|O5M*d*=guu~xiARVN-L>{>a#0b*$}(6DieZe5ClRr8kFq|W#gf290cM(5CHKIh^KLH zablnt`~^;Vs>R#l7}<;jppzBBf^vXtP;POtzdDMaQsv1WyU$DtSq1$dGk^_(P`E85 z_84gU1Oe~|if)?(fK~tiw{Q0afEWOPRAZcW#q0v0aNr{R1VG(DF^dIN*0UH9LlDG1 z#V(|e#k1ns2M@yTjE;`Bw6xG@wDR)uCr_S)hlgLjeA(LC`p}_6J9g}V-Ny}eKoF3# zcW*fK1@;C9a@SDDgESBVKpaGqGx8XI{~n;>0D#4!!Rx`}+zXJMoeitQOT6ptQibmj z0Vhw`1Gq8zW%vQ(d+fA700{iS{UH+f2}l8en5>1Vk;9Gj=?wnB*V;n7=IDwCQ_Uq5kipj}#NH-Eyz={$lDq6%D{bXxGPsjLk>hBK6P zFkf*^Q3LhJBIo}ae(krP-c>x&=jVNW$pP7bF{0Ubb&r`5ES^QW(Koc7IUkG(g` zSGCSI?$p1`JZC}s`0{+*w?Jk=+mhB5e=4T>PUpL`iX)r1BrKMdZm+ty&LdRfICZl> z@a({ERs5^l5y{<=N;W@YgX=k$4?9U&B2#mE)|$>pJh#kTsJD^m&+$9)dtgHG!-FA2 zYl*(64^2{C6&9JJ%_FUK*T?-Dac9#^Px!FY`KVqVt{uiSQK8~)t#{8KFP(Jy(NRHi zyCAc)Rm+?E)iN-JH2_2 z=&J#g58os_wjt6cV~Wd~KVI_OJyh#2Y&&3_?$>3J=aRZd0NHhqXhZY3oE(;7Dtcu# z{yU*cyu(n!HzYXKfPiuhIvWT2JEAiNHD2GuB3k|S*OQJY=8Oy|oCzVDi}tQObj6%4 zI@LIwtD>eWd%VO-fZS?Ex}7z>_!hmq)$4?DrVL`#>IFr#!`sH#xR;L*sz7FuSz+23 ziyG^)*_WW9c`&E^v`B{+W=5*BQZp5hl zbc+H6fN5C zyiy;YKABUkGzr#Od<0`alaN<$nr^SWG?8eEwa{FdsHFB(vBIjwl6Q?=r(Iev(Li5K z9h)@Vdd>nz#x4{4tEBFLzn_O06?&=pl6ZW+XD$wd?{{~i|c z(&Juf!jRtm{PQZv2n#r)&RgJqOFgfG)fU|SN-_q-i@=%ZEE1oZD`|;odwXYZ(=NFb z6r6@hs290=nodT{t3SI}ibgB`i>G_3IMit_TfI9`%BZ`LA|!j{64l zY`1H4Mxh@6^6`sCqw{g!oktxGY(vy5z)Vr9Aa~gMK$1v$wD76>`nSP4%z*`u*Roo* zX|X>v_teKL@6GlnUA>T1;rT9>P(ItCh%|nd4`#?xHO@(XQ>XiA?d*Ml>SUO%=nN_2 zrTVTtk0mi~c+Kan^$APbHPSoL6Yp-FRceam6iUT;!_=hoq5>SKDHXGPWrJ*khjz&+ z@bOQ)op3MQ%{7E0jjfJtU9dS=9tt; zZBk~_??hj<`6A>4d#VM6MH0}S^WRQV9cd4UfKJ9*JF`(%U>ohl?#%lQ}w`Wkc8Op~?Ot2d(C@bLD;qYaZd zR4g@kwqj&MIDA`w)KS;~WJC#smOL-?p@O>=4L^18_Ff`)z|V2! zYZU4nlo+3zax($n+W+`^5G1Ys$9s$S7(bgX1_R0Azr?i_&zyGlHU5=Ag<(D^t(f=Y zS$syg4UH_&Iv}Hfr;-vQ>wf<^>g|U%k*Tzm>HJa}uP`byk;mugM4Dn~_y-1T9(+b&D`-U4*i}@9o>zv!tR(E~C54;rlQfzL!8<(l^r*Oo9d0UaHCx z`x2@xq_EB#Q~JeCEcCNtX5v4YwvKQ+=6O@) zZCEg?xt0v=U-`6Xfg1zeGegVZ))yb5X2W@E#my#x_0oov@cIEwVWG(9NYcD8w`#di zQCf4~e166-e?gGAg*fGQ*HFp|6P3uLrR0Ytd@O~jQ%?HK9n}T%&OPD^5i8 z6@46h;+?K|0*YEW8_`bKdkog2Alt(Cu@-eog33W|{s(fa3A|_qvX&k&B42V>&Bsb( z=Po6L$!c$OYZDPRu6Ey)Xi1F!B2hb4|J&kRfn(k3^^vF6a8YY$qe{G~<9*t$Vj2Tx zNNV*~5%gflZaS9*p3{#URc&lVez1QG&NrE)q0tR(?U7R?qt=aTQc1uVC=Xq9t!hD# zf9MRoZ@;u$bKkHN^OKyuZ|T`WsO@{ktbCOjj#_3;V}7f`q{XI{%~unLL8$ z){+9AhTU2lPPHP>G%W4z<&crx5uS~o-Rd8~Irs0=6#R>OjQ@k_LRArN zRvIIYvgaoS+DAKWQ1FVWu5mam3adwnu<=mfxQxsu#U65fMIdi(N>h=51uQ69- zuHv41wg*za6Jp&7V~MrMjpih=5EO($*Ys8l$C~S|kiU|P!`3U7zn%^ybEXpG82dld zUb9G_aVjh2hD?^f!8Uc`B3gUuyDHLvCM<*)cgqv=Jy}f7;z1VV^J!=BY7M^?TP_dV zi$Ak@iq(xkaOPfuHpP*^)aV5S!T|9%f9jRd&LofC=EIG-UV*Ydn1k3dTTZ%5WqaLr z6NM_Tpzi+P82i;I9{qhlDg&`2haB~26PgN!+(0r4^E z=KHc9H(je|1rINk`S|ywJ2F+O zr_vU3`iLs&6rIz~dBfPUy#6vGC+5%Fu>0Gli)QRyKkpxO%eYP}^ZC4Fr>IOEp4y;( z2l3{l{sv;*>D+yE1{Mw{F%Q|k{W6AGH_+;=Szmwrf=y5M~ z#dxfhJSV&IZ&c>LJB<0;bDFip#hERU2J?BFA{B|%N|fTxMRP;j;r_9-f%R3r7`Y+K z+_?MG!nOu}^hUcnRgIOrLEqg&>?+pE15gb^7Bu$*(lc3cI|BCMd-_ttbkWO?CWT7` z2O0ySGfJC|-<6@pvQ~ARR%oqV-IF6sQ4x>V)}gtA$Coevj5JN&DS{Y1?UB`Ro@Shl%RJS9C=@oQ8LTJsj~aW?5$rQ1s;K{nhEl~6FoL8nCI=_p_&w~-{+ZI74=7waYi_I~Pq*R3<8G3Z%| zB#eO(=w=JF%9?6+zjfnM_eg)mmP6adRoik~15&r?UpC2j! literal 0 HcmV?d00001 diff --git a/aqm-eval-output/AggressiveTransportSender/graph/CobaltQueueDisc-goodput.png b/aqm-eval-output/AggressiveTransportSender/graph/CobaltQueueDisc-goodput.png new file mode 100644 index 0000000000000000000000000000000000000000..21a8231febe6de380887994e3fe3199644f987ea GIT binary patch literal 5726 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 literal 0 HcmV?d00001 diff --git a/aqm-eval-output/AggressiveTransportSender/graph/NonLinearRedQueueDisc-delay.png b/aqm-eval-output/AggressiveTransportSender/graph/NonLinearRedQueueDisc-delay.png new file mode 100644 index 0000000000000000000000000000000000000000..5a630fb5b0522e899b143750d715d6459c8c2380 GIT binary patch literal 8011 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 literal 0 HcmV?d00001 diff --git a/aqm-eval-output/AggressiveTransportSender/graph/NonLinearRedQueueDisc-goodput.png b/aqm-eval-output/AggressiveTransportSender/graph/NonLinearRedQueueDisc-goodput.png new file mode 100644 index 0000000000000000000000000000000000000000..5057164d2b79ddcaa260661924ec6375e7416867 GIT binary patch literal 6038 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 P(J;hN*Houe+Zp#yXnik~ literal 0 HcmV?d00001 diff --git a/aqm-eval-output/AggressiveTransportSender/graph/PfifoFastQueueDisc-delay.png b/aqm-eval-output/AggressiveTransportSender/graph/PfifoFastQueueDisc-delay.png new file mode 100644 index 0000000000000000000000000000000000000000..3b6a396e9a5b1fe8ce646f3039279deb2cb948b8 GIT binary patch literal 6571 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 literal 0 HcmV?d00001 diff --git a/aqm-eval-output/AggressiveTransportSender/graph/PieQueueDisc-delay.png b/aqm-eval-output/AggressiveTransportSender/graph/PieQueueDisc-delay.png new file mode 100644 index 0000000000000000000000000000000000000000..effeff7f1b747883ec0ef37565cee007006e4bcf GIT binary patch literal 7128 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 TGb|W=xdaYd*qWD^ktzQL9&(5r literal 0 HcmV?d00001 diff --git a/aqm-eval-output/AggressiveTransportSender/graph/PieQueueDisc-goodput.png b/aqm-eval-output/AggressiveTransportSender/graph/PieQueueDisc-goodput.png new file mode 100644 index 0000000000000000000000000000000000000000..729c23574db3894a5183cf086c07252e099e00ac GIT binary patch literal 6201 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 UmNIU{=TU&Ry56H=RVd=W07v76JOBUy literal 0 HcmV?d00001 diff --git a/src/aqm-eval-suite/.vscode/c_cpp_properties.json b/src/aqm-eval-suite/.vscode/c_cpp_properties.json new file mode 100644 index 00000000000..602edc56ddf --- /dev/null +++ b/src/aqm-eval-suite/.vscode/c_cpp_properties.json @@ -0,0 +1,19 @@ +{ + "configurations": [ + { + "name": "Win32", + "includePath": [ + "${workspaceFolder}/**" + ], + "defines": [ + "_DEBUG", + "UNICODE", + "_UNICODE" + ], + "compilerPath": "/usr/bin/gcc", + "cStandard": "c11", + "cppStandard": "c++17" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/src/aqm-eval-suite/examples/aqm-eval-suite-runner.cc b/src/aqm-eval-suite/examples/aqm-eval-suite-runner.cc index 3cd2daada48..81444320e35 100644 --- a/src/aqm-eval-suite/examples/aqm-eval-suite-runner.cc +++ b/src/aqm-eval-suite/examples/aqm-eval-suite-runner.cc @@ -38,10 +38,11 @@ std::vector AQM = { "Red", "AdaptiveRed", "FengAdaptiveRed", -"NonLinearRed" +"NonLinearRed", +"Cobalt" }; std::string queueDisc = "QueueDisc"; -uint32_t nAQM = 7; +uint32_t nAQM = 8; std::string AggressiveTcp = ""; std::string QueueDiscMode = "QUEUE_DISC_MODE_PACKETS"; std::string isBql = "false"; diff --git a/src/aqm-eval-suite/helper/aqm-eval-suite-helper.cc b/src/aqm-eval-suite/helper/aqm-eval-suite-helper.cc index 618fc4a6ae4..5aa3126a760 100644 --- a/src/aqm-eval-suite/helper/aqm-eval-suite-helper.cc +++ b/src/aqm-eval-suite/helper/aqm-eval-suite-helper.cc @@ -26,16 +26,11 @@ namespace ns3 { ScenarioImpl::ScenarioImpl () { - m_AQM = { - "ns3::PfifoFastQueueDisc", - "ns3::RedQueueDisc", - "ns3::AdaptiveRedQueueDisc", - "ns3::FengAdaptiveRedQueueDisc", - "ns3::NonLinearRedQueueDisc", - "ns3::CoDelQueueDisc", - "ns3::PieQueueDisc" - }; - m_nAQM = 7; + m_AQM = {"ns3::PfifoFastQueueDisc", "ns3::RedQueueDisc", + "ns3::AdaptiveRedQueueDisc", "ns3::FengAdaptiveRedQueueDisc", + "ns3::NonLinearRedQueueDisc", "ns3::CoDelQueueDisc", + "ns3::PieQueueDisc", "ns3::CobaltQueueDisc"}; + m_nAQM = 8; } ScenarioImpl::~ScenarioImpl () @@ -56,9 +51,11 @@ ScenarioImpl::DestroyTrace (EvaluationTopology et) } void -ScenarioImpl::ConfigureQueueDisc (uint32_t limit, uint32_t pktsize, std::string linkbw, std::string linkdel, std::string mode) +ScenarioImpl::ConfigureQueueDisc (uint32_t limit, uint32_t pktsize, std::string linkbw, + std::string linkdel, std::string mode) { - Config::SetDefault ("ns3::PfifoFastQueueDisc::MaxSize", StringValue (std::to_string (limit) + "p")); + Config::SetDefault ("ns3::PfifoFastQueueDisc::MaxSize", + StringValue (std::to_string (limit) + "p")); Config::SetDefault ("ns3::RedQueueDisc::MeanPktSize", UintegerValue (pktsize)); Config::SetDefault ("ns3::RedQueueDisc::LinkBandwidth", StringValue (linkbw)); @@ -79,11 +76,13 @@ ScenarioImpl::ConfigureQueueDisc (uint32_t limit, uint32_t pktsize, std::string } else { - Config::SetDefault ("ns3::RedQueueDisc::MaxSize",StringValue (std::to_string (limit * pktsize) + "B")); + Config::SetDefault ("ns3::RedQueueDisc::MaxSize", + StringValue (std::to_string (limit * pktsize) + "B")); Config::SetDefault ("ns3::RedQueueDisc::MinTh", DoubleValue (5 * pktsize)); Config::SetDefault ("ns3::RedQueueDisc::MaxTh", DoubleValue (15 * pktsize)); - Config::SetDefault ("ns3::PieQueueDisc::MaxSize", StringValue (std::to_string (limit * pktsize) + "B")); + Config::SetDefault ("ns3::PieQueueDisc::MaxSize", + StringValue (std::to_string (limit * pktsize) + "B")); } } diff --git a/src/aqm-eval-suite/utils/ellipsemaker b/src/aqm-eval-suite/utils/ellipsemaker index cdb364fa9fe..dc532d97de0 100644 --- a/src/aqm-eval-suite/utils/ellipsemaker +++ b/src/aqm-eval-suite/utils/ellipsemaker @@ -1,6 +1,6 @@ #!/usr/bin/python -import sys; +import sys import numpy as np samples = [] @@ -9,37 +9,43 @@ scenario_name = sys.argv[1] queuedisc_name = sys.argv[2] queuedisc_index = sys.argv[3] -input_file = open("aqm-eval-output/"+scenario_name+"/data/"+queuedisc_name+"-result.dat", "r") +input_file = open("aqm-eval-output/"+scenario_name + + "/data/"+queuedisc_name+"-result.dat", "r") lines = input_file.readlines() -output_file_name = "aqm-eval-output/"+scenario_name+"/data/"+queuedisc_name+"-ellipse.dat" -output_file = open(output_file_name, "w") +output_file_name = "aqm-eval-output/"+scenario_name + \ + "/data/"+queuedisc_name+"-ellipse.dat" +output_file = open(output_file_name, "w") -qdisc_label = {'PfifoFast': 'DropTail', 'CoDel': 'CoDel', 'Pie': 'PIE', 'Red': 'RED', 'AdaptiveRed': 'ARED', 'FengAdaptiveRed': 'FRED', 'NonLinearRed':'NLRED'} +qdisc_label = {'PfifoFast': 'DropTail', 'CoDel': 'CoDel', 'Pie': 'PIE', 'Red': 'RED', + 'AdaptiveRed': 'ARED', 'FengAdaptiveRed': 'FRED', 'NonLinearRed': 'NLRED', 'Cobalt': 'Cobalt'} for line in lines: - fields = line.split( ' ' ) - delay, throughput = (float(fields[ 0 ]))/1000.0, (float(fields[ 1 ]))/(1024.0*128.0) - samples.append( [ delay, throughput ] ) + fields = line.split(' ') + delay, throughput = (float(fields[0])) / \ + 1000.0, (float(fields[1]))/(1024.0*128.0) + samples.append([delay, throughput]) -samples = np.matrix( samples ) +samples = np.matrix(samples) # taken from https://github.com/joferkington/oost_paper_code/blob/master/error_ellipse.py + def get_ellipse(points, nstd=1): def eigsorted(cov): vals, vecs = np.linalg.eigh(cov) order = vals.argsort()[::-1] - return vals[order], vecs[:,order] + return vals[order], vecs[:, order] cov = np.cov(points, rowvar=False) vals, vecs = eigsorted(cov) - theta = np.degrees(np.arctan2(*vecs[:,0][::-1])) + theta = np.degrees(np.arctan2(*vecs[:, 0][::-1])) # Width and height are "full" widths, not radius # width, height = 2 * nstd * np.sqrt(vals) - width = nstd[0,0] * np.sqrt(vals[0]) - height = nstd[0,1] * np.sqrt(vals[1]) - return [ width, height, theta ] + width = nstd[0, 0] * np.sqrt(vals[0]) + height = nstd[0, 1] * np.sqrt(vals[1]) + return [width, height, theta] + def get_ellipse_coords(a=0.0, b=0.0, x=0.0, y=0.0, angle=0.0, k=2): """ Draws an ellipse using (360*k + 1) discrete points; based on pseudo code @@ -66,21 +72,24 @@ def get_ellipse_coords(a=0.0, b=0.0, x=0.0, y=0.0, angle=0.0, k=2): return pts -means = np.mean( samples, axis=0 ) -center_x = means[ 0, 0 ] -center_y = means[ 0, 1 ] -width, height, theta = get_ellipse( samples, np.std( samples, axis=0 )) -#print center_x, center_y -#print width, height, theta +means = np.mean(samples, axis=0) +center_x = means[0, 0] +center_y = means[0, 1] +width, height, theta = get_ellipse(samples, np.std(samples, axis=0)) + +# print center_x, center_y +# print width, height, theta -for i in get_ellipse_coords(width, height, center_x, center_y, -theta, 10 ): - output_file.write(str(i[ 0 ]*1000.0)+' '+str(i[ 1 ])+'\n') +for i in get_ellipse_coords(width, height, center_x, center_y, -theta, 10): + output_file.write(str(i[0]*1000.0)+' '+str(i[1])+'\n') output_file.close() input_file.close() -gnu_file = open("aqm-eval-output/"+scenario_name+"/data/plot-shell", "a") -gnu_file.write ("set label \"\" at "+str(center_x*1000.0)+","+str(center_y)+" point lt "+queuedisc_index+" pt "+queuedisc_index+" center font \"Verdana\" tc lt "+queuedisc_index+" offset 1.5,0.4\n") -gnu_file.write ("set label \""+qdisc_label[queuedisc_name[:-9]]+"\" at graph "+str(1.03)+","+str(0.96 - (0.06 * (float(queuedisc_index) - 1)))+" point lt "+queuedisc_index+" pt "+queuedisc_index+" font \"Verdana,12\" tc lt "+queuedisc_index+" offset 0.7, -0.2\n") +gnu_file = open("aqm-eval-output/"+scenario_name+"/data/plot-shell", "a") +gnu_file.write("set label \"\" at "+str(center_x*1000.0)+","+str(center_y)+" point lt "+queuedisc_index + + " pt "+queuedisc_index+" center font \"Verdana\" tc lt "+queuedisc_index+" offset 1.5,0.4\n") +gnu_file.write("set label \""+qdisc_label[queuedisc_name[:-9]]+"\" at graph "+str(1.03)+","+str(0.96 - (0.06 * (float(queuedisc_index) - 1)) + )+" point lt "+queuedisc_index+" pt "+queuedisc_index+" font \"Verdana,12\" tc lt "+queuedisc_index+" offset 0.7, -0.2\n") gnu_file.close() diff --git a/src/traffic-control/bindings/callbacks_list.py b/src/traffic-control/bindings/callbacks_list.py index 092c411b80b..75154d6b0f5 100644 --- a/src/traffic-control/bindings/callbacks_list.py +++ b/src/traffic-control/bindings/callbacks_list.py @@ -4,7 +4,6 @@ ['void', 'ns3::Time', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['void', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['void', 'ns3::Ptr', 'const char *', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], - ['void', 'long', 'long', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['void', 'bool', 'bool', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['void', 'ns3::Ptr', 'ns3::Ptr', 'unsigned short', 'const ns3::Address &', 'const ns3::Address &', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['void', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], diff --git a/src/traffic-control/bindings/modulegen__gcc_ILP32.py b/src/traffic-control/bindings/modulegen__gcc_ILP32.py index 78e688cdc3d..d437e721209 100644 --- a/src/traffic-control/bindings/modulegen__gcc_ILP32.py +++ b/src/traffic-control/bindings/modulegen__gcc_ILP32.py @@ -32,9 +32,9 @@ def register_types(module): module.add_class('AttributeConstructionList', import_from_module='ns.core') ## attribute-construction-list.h (module 'core'): ns3::AttributeConstructionList::Item [struct] module.add_class('Item', import_from_module='ns.core', outer_class=root_module['ns3::AttributeConstructionList']) - typehandlers.add_type_alias('std::list< ns3::AttributeConstructionList::Item > const_iterator', 'ns3::AttributeConstructionList::CIterator') - typehandlers.add_type_alias('std::list< ns3::AttributeConstructionList::Item > const_iterator*', 'ns3::AttributeConstructionList::CIterator*') - typehandlers.add_type_alias('std::list< ns3::AttributeConstructionList::Item > const_iterator&', 'ns3::AttributeConstructionList::CIterator&') + typehandlers.add_type_alias(u'std::list< ns3::AttributeConstructionList::Item > const_iterator', u'ns3::AttributeConstructionList::CIterator') + typehandlers.add_type_alias(u'std::list< ns3::AttributeConstructionList::Item > const_iterator*', u'ns3::AttributeConstructionList::CIterator*') + typehandlers.add_type_alias(u'std::list< ns3::AttributeConstructionList::Item > const_iterator&', u'ns3::AttributeConstructionList::CIterator&') ## buffer.h (module 'network'): ns3::Buffer [class] module.add_class('Buffer', import_from_module='ns.network') ## buffer.h (module 'network'): ns3::Buffer::Iterator [class] @@ -119,9 +119,9 @@ def register_types(module): module.add_class('Ipv6Prefix', import_from_module='ns.network') ## mac48-address.h (module 'network'): ns3::Mac48Address [class] module.add_class('Mac48Address', import_from_module='ns.network') - typehandlers.add_type_alias('void ( * ) ( ns3::Mac48Address )', 'ns3::Mac48Address::TracedCallback') - typehandlers.add_type_alias('void ( * ) ( ns3::Mac48Address )*', 'ns3::Mac48Address::TracedCallback*') - typehandlers.add_type_alias('void ( * ) ( ns3::Mac48Address )&', 'ns3::Mac48Address::TracedCallback&') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Mac48Address )', u'ns3::Mac48Address::TracedCallback') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Mac48Address )*', u'ns3::Mac48Address::TracedCallback*') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Mac48Address )&', u'ns3::Mac48Address::TracedCallback&') ## mac48-address.h (module 'network'): ns3::Mac48Address [class] root_module['ns3::Mac48Address'].implicitly_converts_to(root_module['ns3::Address']) ## mac8-address.h (module 'network'): ns3::Mac8Address [class] @@ -130,11 +130,11 @@ def register_types(module): root_module['ns3::Mac8Address'].implicitly_converts_to(root_module['ns3::Address']) ## net-device-container.h (module 'network'): ns3::NetDeviceContainer [class] module.add_class('NetDeviceContainer', import_from_module='ns.network') - typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::NetDevice > > const_iterator', 'ns3::NetDeviceContainer::Iterator') - typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::NetDevice > > const_iterator*', 'ns3::NetDeviceContainer::Iterator*') - typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::NetDevice > > const_iterator&', 'ns3::NetDeviceContainer::Iterator&') + typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::NetDevice > > const_iterator', u'ns3::NetDeviceContainer::Iterator') + typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::NetDevice > > const_iterator*', u'ns3::NetDeviceContainer::Iterator*') + typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::NetDevice > > const_iterator&', u'ns3::NetDeviceContainer::Iterator&') ## object-base.h (module 'core'): ns3::ObjectBase [class] - module.add_class('ObjectBase', import_from_module='ns.core', allow_subclassing=True) + module.add_class('ObjectBase', allow_subclassing=True, import_from_module='ns.core') ## object.h (module 'core'): ns3::ObjectDeleter [struct] module.add_class('ObjectDeleter', import_from_module='ns.core') ## object-factory.h (module 'core'): ns3::ObjectFactory [class] @@ -157,17 +157,17 @@ def register_types(module): module.add_class('TagData', import_from_module='ns.network', outer_class=root_module['ns3::PacketTagList']) ## queue-disc-container.h (module 'traffic-control'): ns3::QueueDiscContainer [class] module.add_class('QueueDiscContainer') - typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::QueueDisc > > const_iterator', 'ns3::QueueDiscContainer::ConstIterator') - typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::QueueDisc > > const_iterator*', 'ns3::QueueDiscContainer::ConstIterator*') - typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::QueueDisc > > const_iterator&', 'ns3::QueueDiscContainer::ConstIterator&') + typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::QueueDisc > > const_iterator', u'ns3::QueueDiscContainer::ConstIterator') + typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::QueueDisc > > const_iterator*', u'ns3::QueueDiscContainer::ConstIterator*') + typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::QueueDisc > > const_iterator&', u'ns3::QueueDiscContainer::ConstIterator&') ## traffic-control-helper.h (module 'traffic-control'): ns3::QueueDiscFactory [class] module.add_class('QueueDiscFactory') ## queue-size.h (module 'network'): ns3::QueueSize [class] module.add_class('QueueSize', import_from_module='ns.network') ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount [class] - module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::ObjectBase'], template_parameters=['ns3::Object', 'ns3::ObjectBase', 'ns3::ObjectDeleter']) + module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Object', 'ns3::ObjectBase', 'ns3::ObjectDeleter'], parent=root_module['ns3::ObjectBase'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) ## simulator.h (module 'core'): ns3::Simulator [class] - module.add_class('Simulator', import_from_module='ns.core', destructor_visibility='private') + module.add_class('Simulator', destructor_visibility='private', import_from_module='ns.core') ## simulator.h (module 'core'): ns3::Simulator [enumeration] module.add_enum('', ['NO_CONTEXT'], outer_class=root_module['ns3::Simulator'], import_from_module='ns.core') ## tag.h (module 'network'): ns3::Tag [class] @@ -183,21 +183,19 @@ def register_types(module): ## timer.h (module 'core'): ns3::Timer::State [enumeration] module.add_enum('State', ['RUNNING', 'EXPIRED', 'SUSPENDED'], outer_class=root_module['ns3::Timer'], import_from_module='ns.core') ## timer-impl.h (module 'core'): ns3::TimerImpl [class] - module.add_class('TimerImpl', import_from_module='ns.core', allow_subclassing=True) + module.add_class('TimerImpl', allow_subclassing=True, import_from_module='ns.core') ## traced-value.h (module 'core'): ns3::TracedValue [class] module.add_class('TracedValue', import_from_module='ns.core', template_parameters=['bool']) - ## traced-value.h (module 'core'): ns3::TracedValue [class] - module.add_class('TracedValue', import_from_module='ns.core', template_parameters=['long']) ## traced-value.h (module 'core'): ns3::TracedValue [class] module.add_class('TracedValue', import_from_module='ns.core', template_parameters=['unsigned int']) ## traffic-control-helper.h (module 'traffic-control'): ns3::TrafficControlHelper [class] module.add_class('TrafficControlHelper') - typehandlers.add_type_alias('std::vector< unsigned short >', 'ns3::TrafficControlHelper::ClassIdList') - typehandlers.add_type_alias('std::vector< unsigned short >*', 'ns3::TrafficControlHelper::ClassIdList*') - typehandlers.add_type_alias('std::vector< unsigned short >&', 'ns3::TrafficControlHelper::ClassIdList&') - typehandlers.add_type_alias('std::vector< unsigned short >', 'ns3::TrafficControlHelper::HandleList') - typehandlers.add_type_alias('std::vector< unsigned short >*', 'ns3::TrafficControlHelper::HandleList*') - typehandlers.add_type_alias('std::vector< unsigned short >&', 'ns3::TrafficControlHelper::HandleList&') + typehandlers.add_type_alias(u'std::vector< unsigned short >', u'ns3::TrafficControlHelper::ClassIdList') + typehandlers.add_type_alias(u'std::vector< unsigned short >*', u'ns3::TrafficControlHelper::ClassIdList*') + typehandlers.add_type_alias(u'std::vector< unsigned short >&', u'ns3::TrafficControlHelper::ClassIdList&') + typehandlers.add_type_alias(u'std::vector< unsigned short >', u'ns3::TrafficControlHelper::HandleList') + typehandlers.add_type_alias(u'std::vector< unsigned short >*', u'ns3::TrafficControlHelper::HandleList*') + typehandlers.add_type_alias(u'std::vector< unsigned short >&', u'ns3::TrafficControlHelper::HandleList&') ## type-id.h (module 'core'): ns3::TypeId [class] module.add_class('TypeId', import_from_module='ns.core') ## type-id.h (module 'core'): ns3::TypeId::AttributeFlag [enumeration] @@ -208,9 +206,9 @@ def register_types(module): module.add_class('AttributeInformation', import_from_module='ns.core', outer_class=root_module['ns3::TypeId']) ## type-id.h (module 'core'): ns3::TypeId::TraceSourceInformation [struct] module.add_class('TraceSourceInformation', import_from_module='ns.core', outer_class=root_module['ns3::TypeId']) - typehandlers.add_type_alias('uint32_t', 'ns3::TypeId::hash_t') - typehandlers.add_type_alias('uint32_t*', 'ns3::TypeId::hash_t*') - typehandlers.add_type_alias('uint32_t&', 'ns3::TypeId::hash_t&') + typehandlers.add_type_alias(u'uint32_t', u'ns3::TypeId::hash_t') + typehandlers.add_type_alias(u'uint32_t*', u'ns3::TypeId::hash_t*') + typehandlers.add_type_alias(u'uint32_t&', u'ns3::TypeId::hash_t&') ## empty.h (module 'core'): ns3::empty [class] module.add_class('empty', import_from_module='ns.core') ## int64x64-128.h (module 'core'): ns3::int64x64_t [class] @@ -233,12 +231,12 @@ def register_types(module): module.add_enum('WakeMode', ['WAKE_ROOT', 'WAKE_CHILD'], outer_class=root_module['ns3::QueueDisc']) ## queue-disc.h (module 'traffic-control'): ns3::QueueDisc::Stats [struct] module.add_class('Stats', outer_class=root_module['ns3::QueueDisc']) - typehandlers.add_type_alias('std::function< void ( ns3::Ptr< ns3::QueueDiscItem > ) >', 'ns3::QueueDisc::SendCallback') - typehandlers.add_type_alias('std::function< void ( ns3::Ptr< ns3::QueueDiscItem > ) >*', 'ns3::QueueDisc::SendCallback*') - typehandlers.add_type_alias('std::function< void ( ns3::Ptr< ns3::QueueDiscItem > ) >&', 'ns3::QueueDisc::SendCallback&') - typehandlers.add_type_alias('ns3::Queue< ns3::QueueDiscItem >', 'ns3::QueueDisc::InternalQueue') - typehandlers.add_type_alias('ns3::Queue< ns3::QueueDiscItem >*', 'ns3::QueueDisc::InternalQueue*') - typehandlers.add_type_alias('ns3::Queue< ns3::QueueDiscItem >&', 'ns3::QueueDisc::InternalQueue&') + typehandlers.add_type_alias(u'std::function< void ( ns3::Ptr< ns3::QueueDiscItem > ) >', u'ns3::QueueDisc::SendCallback') + typehandlers.add_type_alias(u'std::function< void ( ns3::Ptr< ns3::QueueDiscItem > ) >*', u'ns3::QueueDisc::SendCallback*') + typehandlers.add_type_alias(u'std::function< void ( ns3::Ptr< ns3::QueueDiscItem > ) >&', u'ns3::QueueDisc::SendCallback&') + typehandlers.add_type_alias(u'ns3::Queue< ns3::QueueDiscItem >', u'ns3::QueueDisc::InternalQueue') + typehandlers.add_type_alias(u'ns3::Queue< ns3::QueueDiscItem >*', u'ns3::QueueDisc::InternalQueue*') + typehandlers.add_type_alias(u'ns3::Queue< ns3::QueueDiscItem >&', u'ns3::QueueDisc::InternalQueue&') ## queue-disc.h (module 'traffic-control'): ns3::QueueDiscClass [class] module.add_class('QueueDiscClass', parent=root_module['ns3::Object']) ## random-variable-stream.h (module 'core'): ns3::RandomVariableStream [class] @@ -252,43 +250,43 @@ def register_types(module): ## random-variable-stream.h (module 'core'): ns3::SequentialRandomVariable [class] module.add_class('SequentialRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::AttributeAccessor', 'ns3::empty', 'ns3::DefaultDeleter']) + module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::AttributeAccessor', '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 (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::AttributeChecker', 'ns3::empty', 'ns3::DefaultDeleter']) + module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::AttributeChecker', '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 (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::AttributeValue', 'ns3::empty', 'ns3::DefaultDeleter']) + module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', 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 (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::CallbackImplBase', 'ns3::empty', 'ns3::DefaultDeleter']) + module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', 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 (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::EventImpl', 'ns3::empty', 'ns3::DefaultDeleter']) + module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', 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 (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::Hash::Implementation', 'ns3::empty', 'ns3::DefaultDeleter']) + module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Hash::Implementation', '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 (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::NixVector', 'ns3::empty', 'ns3::DefaultDeleter']) + module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::NixVector', '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 (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::Packet', 'ns3::empty', 'ns3::DefaultDeleter']) + module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Packet', '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 (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::QueueItem', 'ns3::empty', 'ns3::DefaultDeleter']) + module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::QueueItem', '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 (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::TraceSourceAccessor', 'ns3::empty', 'ns3::DefaultDeleter']) + module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::TraceSourceAccessor', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) ## tbf-queue-disc.h (module 'traffic-control'): ns3::TbfQueueDisc [class] module.add_class('TbfQueueDisc', parent=root_module['ns3::QueueDisc']) ## nstime.h (module 'core'): ns3::Time [class] module.add_class('Time', import_from_module='ns.core') ## nstime.h (module 'core'): ns3::Time::Unit [enumeration] module.add_enum('Unit', ['Y', 'D', 'H', 'MIN', 'S', 'MS', 'US', 'NS', 'PS', 'FS', 'LAST'], outer_class=root_module['ns3::Time'], import_from_module='ns.core') - typehandlers.add_type_alias('void ( * ) ( ns3::Time )', 'ns3::Time::TracedCallback') - typehandlers.add_type_alias('void ( * ) ( ns3::Time )*', 'ns3::Time::TracedCallback*') - typehandlers.add_type_alias('void ( * ) ( ns3::Time )&', 'ns3::Time::TracedCallback&') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Time )', u'ns3::Time::TracedCallback') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Time )*', u'ns3::Time::TracedCallback*') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Time )&', u'ns3::Time::TracedCallback&') ## nstime.h (module 'core'): ns3::Time [class] root_module['ns3::Time'].implicitly_converts_to(root_module['ns3::int64x64_t']) ## trace-source-accessor.h (module 'core'): ns3::TraceSourceAccessor [class] module.add_class('TraceSourceAccessor', import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::TraceSourceAccessor, ns3::empty, ns3::DefaultDeleter >']) ## traffic-control-layer.h (module 'traffic-control'): ns3::TrafficControlLayer [class] module.add_class('TrafficControlLayer', parent=root_module['ns3::Object']) - typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::QueueDisc > >', 'ns3::TrafficControlLayer::QueueDiscVector') - typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::QueueDisc > >*', 'ns3::TrafficControlLayer::QueueDiscVector*') - typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::QueueDisc > >&', 'ns3::TrafficControlLayer::QueueDiscVector&') + typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::QueueDisc > >', u'ns3::TrafficControlLayer::QueueDiscVector') + typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::QueueDisc > >*', u'ns3::TrafficControlLayer::QueueDiscVector*') + typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::QueueDisc > >&', u'ns3::TrafficControlLayer::QueueDiscVector&') ## trailer.h (module 'network'): ns3::Trailer [class] module.add_class('Trailer', import_from_module='ns.network', parent=root_module['ns3::Chunk']) ## random-variable-stream.h (module 'core'): ns3::TriangularRandomVariable [class] @@ -304,9 +302,9 @@ def register_types(module): ## attribute.h (module 'core'): ns3::AttributeAccessor [class] module.add_class('AttributeAccessor', import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::AttributeAccessor, ns3::empty, ns3::DefaultDeleter >']) ## attribute.h (module 'core'): ns3::AttributeChecker [class] - module.add_class('AttributeChecker', import_from_module='ns.core', automatic_type_narrowing=True, allow_subclassing=False, parent=root_module['ns3::SimpleRefCount< ns3::AttributeChecker, ns3::empty, ns3::DefaultDeleter >']) + module.add_class('AttributeChecker', allow_subclassing=False, automatic_type_narrowing=True, import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::AttributeChecker, ns3::empty, ns3::DefaultDeleter >']) ## attribute.h (module 'core'): ns3::AttributeValue [class] - module.add_class('AttributeValue', import_from_module='ns.core', automatic_type_narrowing=True, allow_subclassing=False, parent=root_module['ns3::SimpleRefCount< ns3::AttributeValue, ns3::empty, ns3::DefaultDeleter >']) + module.add_class('AttributeValue', allow_subclassing=False, automatic_type_narrowing=True, import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::AttributeValue, ns3::empty, ns3::DefaultDeleter >']) ## boolean.h (module 'core'): ns3::BooleanChecker [class] module.add_class('BooleanChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker']) ## boolean.h (module 'core'): ns3::BooleanValue [class] @@ -319,8 +317,6 @@ def register_types(module): module.add_class('CallbackValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) ## codel-queue-disc.h (module 'traffic-control'): ns3::CoDelQueueDisc [class] module.add_class('CoDelQueueDisc', parent=root_module['ns3::QueueDisc']) - ## cobalt-queue-disc.h (module 'traffic-control'): ns3::CobaltQueueDisc [class] - module.add_class('CobaltQueueDisc', parent=root_module['ns3::QueueDisc']) ## random-variable-stream.h (module 'core'): ns3::ConstantRandomVariable [class] module.add_class('ConstantRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## data-rate.h (module 'network'): ns3::DataRateChecker [class] @@ -389,25 +385,25 @@ def register_types(module): module.add_class('NetDevice', import_from_module='ns.network', parent=root_module['ns3::Object']) ## net-device.h (module 'network'): ns3::NetDevice::PacketType [enumeration] module.add_enum('PacketType', ['PACKET_HOST', 'NS3_PACKET_HOST', 'PACKET_BROADCAST', 'NS3_PACKET_BROADCAST', 'PACKET_MULTICAST', 'NS3_PACKET_MULTICAST', 'PACKET_OTHERHOST', 'NS3_PACKET_OTHERHOST'], outer_class=root_module['ns3::NetDevice'], import_from_module='ns.network') - typehandlers.add_type_alias('void ( * ) ( )', 'ns3::NetDevice::LinkChangeTracedCallback') - typehandlers.add_type_alias('void ( * ) ( )*', 'ns3::NetDevice::LinkChangeTracedCallback*') - typehandlers.add_type_alias('void ( * ) ( )&', 'ns3::NetDevice::LinkChangeTracedCallback&') - typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::NetDevice::ReceiveCallback') - typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::NetDevice::ReceiveCallback*') - typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::NetDevice::ReceiveCallback&') - typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >', 'ns3::NetDevice::PromiscReceiveCallback') - typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::NetDevice::PromiscReceiveCallback*') - typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::NetDevice::PromiscReceiveCallback&') + typehandlers.add_type_alias(u'void ( * ) ( )', u'ns3::NetDevice::LinkChangeTracedCallback') + typehandlers.add_type_alias(u'void ( * ) ( )*', u'ns3::NetDevice::LinkChangeTracedCallback*') + typehandlers.add_type_alias(u'void ( * ) ( )&', u'ns3::NetDevice::LinkChangeTracedCallback&') + typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::NetDevice::ReceiveCallback') + typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::NetDevice::ReceiveCallback*') + typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::NetDevice::ReceiveCallback&') + typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >', u'ns3::NetDevice::PromiscReceiveCallback') + typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::NetDevice::PromiscReceiveCallback*') + typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::NetDevice::PromiscReceiveCallback&') ## nix-vector.h (module 'network'): ns3::NixVector [class] module.add_class('NixVector', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::NixVector, ns3::empty, ns3::DefaultDeleter >']) ## node.h (module 'network'): ns3::Node [class] module.add_class('Node', import_from_module='ns.network', parent=root_module['ns3::Object']) - typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >', 'ns3::Node::ProtocolHandler') - typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::Node::ProtocolHandler*') - typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::Node::ProtocolHandler&') - typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::Node::DeviceAdditionListener') - typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::Node::DeviceAdditionListener*') - typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::Node::DeviceAdditionListener&') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >', u'ns3::Node::ProtocolHandler') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::Node::ProtocolHandler*') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::Node::ProtocolHandler&') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::Node::DeviceAdditionListener') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::Node::DeviceAdditionListener*') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::Node::DeviceAdditionListener&') ## random-variable-stream.h (module 'core'): ns3::NormalRandomVariable [class] module.add_class('NormalRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## object-factory.h (module 'core'): ns3::ObjectFactoryChecker [class] @@ -416,24 +412,24 @@ def register_types(module): module.add_class('ObjectFactoryValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) ## packet.h (module 'network'): ns3::Packet [class] module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const > )', 'ns3::Packet::TracedCallback') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const > )*', 'ns3::Packet::TracedCallback*') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const > )&', 'ns3::Packet::TracedCallback&') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )', 'ns3::Packet::AddressTracedCallback') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )*', 'ns3::Packet::AddressTracedCallback*') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )&', 'ns3::Packet::AddressTracedCallback&') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )', 'ns3::Packet::TwoAddressTracedCallback') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )*', 'ns3::Packet::TwoAddressTracedCallback*') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )&', 'ns3::Packet::TwoAddressTracedCallback&') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )', 'ns3::Packet::Mac48AddressTracedCallback') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )*', 'ns3::Packet::Mac48AddressTracedCallback*') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )&', 'ns3::Packet::Mac48AddressTracedCallback&') - typehandlers.add_type_alias('void ( * ) ( uint32_t, uint32_t )', 'ns3::Packet::SizeTracedCallback') - typehandlers.add_type_alias('void ( * ) ( uint32_t, uint32_t )*', 'ns3::Packet::SizeTracedCallback*') - typehandlers.add_type_alias('void ( * ) ( uint32_t, uint32_t )&', 'ns3::Packet::SizeTracedCallback&') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, double )', 'ns3::Packet::SinrTracedCallback') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, double )*', 'ns3::Packet::SinrTracedCallback*') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, double )&', 'ns3::Packet::SinrTracedCallback&') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > )', u'ns3::Packet::TracedCallback') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > )*', u'ns3::Packet::TracedCallback*') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > )&', u'ns3::Packet::TracedCallback&') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )', u'ns3::Packet::AddressTracedCallback') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )*', u'ns3::Packet::AddressTracedCallback*') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )&', u'ns3::Packet::AddressTracedCallback&') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )', u'ns3::Packet::TwoAddressTracedCallback') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )*', u'ns3::Packet::TwoAddressTracedCallback*') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )&', u'ns3::Packet::TwoAddressTracedCallback&') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )', u'ns3::Packet::Mac48AddressTracedCallback') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )*', u'ns3::Packet::Mac48AddressTracedCallback*') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )&', u'ns3::Packet::Mac48AddressTracedCallback&') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t )', u'ns3::Packet::SizeTracedCallback') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t )*', u'ns3::Packet::SizeTracedCallback*') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t )&', u'ns3::Packet::SizeTracedCallback&') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, double )', u'ns3::Packet::SinrTracedCallback') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, double )*', u'ns3::Packet::SinrTracedCallback*') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, double )&', u'ns3::Packet::SinrTracedCallback&') ## random-variable-stream.h (module 'core'): ns3::ParetoRandomVariable [class] module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## pfifo-fast-queue-disc.h (module 'traffic-control'): ns3::PfifoFastQueueDisc [class] @@ -452,9 +448,9 @@ def register_types(module): module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) ## queue-item.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::QueueItem const > )', 'ns3::QueueItem::TracedCallback') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::QueueItem const > )*', 'ns3::QueueItem::TracedCallback*') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::QueueItem const > )&', 'ns3::QueueItem::TracedCallback&') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::QueueItem const > )', u'ns3::QueueItem::TracedCallback') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::QueueItem const > )*', u'ns3::QueueItem::TracedCallback*') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::QueueItem const > )&', u'ns3::QueueItem::TracedCallback&') ## queue-size.h (module 'network'): ns3::QueueSizeChecker [class] module.add_class('QueueSizeChecker', import_from_module='ns.network', parent=root_module['ns3::AttributeChecker']) ## queue-size.h (module 'network'): ns3::QueueSizeValue [class] @@ -476,34 +472,32 @@ def register_types(module): ## address.h (module 'network'): ns3::AddressValue [class] module.add_class('AddressValue', import_from_module='ns.network', parent=root_module['ns3::AttributeValue']) ## callback.h (module 'core'): ns3::CallbackImpl [class] - module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['ns3::ObjectBase *', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) + module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['ns3::ObjectBase *', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) ## callback.h (module 'core'): ns3::CallbackImpl [class] - module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'bool', 'bool', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) - ## callback.h (module 'core'): ns3::CallbackImpl [class] - module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'long', 'long', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) + module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'bool', 'bool', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) ## callback.h (module 'core'): ns3::CallbackImpl, const char *, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> [class] - module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'ns3::Ptr', 'const char *', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) + module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Ptr', 'const char *', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) ## callback.h (module 'core'): ns3::CallbackImpl, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> [class] - module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) + module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) ## callback.h (module 'core'): ns3::CallbackImpl, ns3::Ptr, unsigned short, const ns3::Address &, const ns3::Address &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty> [class] - module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'ns3::Ptr', 'ns3::Ptr', 'unsigned short', 'const ns3::Address &', 'const ns3::Address &', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty']) + module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Ptr', 'ns3::Ptr', 'unsigned short', 'const ns3::Address &', 'const ns3::Address &', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) ## callback.h (module 'core'): ns3::CallbackImpl, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> [class] - module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) + module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) ## callback.h (module 'core'): ns3::CallbackImpl [class] - module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'ns3::Time', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) + module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Time', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) ## callback.h (module 'core'): ns3::CallbackImpl [class] - module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'unsigned int', 'unsigned int', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) + module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'unsigned int', 'unsigned int', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) ## queue-item.h (module 'network'): ns3::QueueDiscItem [class] module.add_class('QueueDiscItem', import_from_module='ns.network', parent=root_module['ns3::QueueItem']) - module.add_container('std::vector< ns3::Ptr< ns3::QueueDisc > >', 'ns3::Ptr< ns3::QueueDisc >', container_type='vector') - module.add_container('std::vector< unsigned short >', 'short unsigned int', container_type='vector') - module.add_container('ns3::TrafficControlHelper::ClassIdList', 'short unsigned int', container_type='vector') - module.add_container('ns3::TrafficControlHelper::HandleList', 'short unsigned int', container_type='vector') - module.add_container('std::map< std::string, unsigned int >', ('std::string', 'unsigned int'), container_type='map') - module.add_container('std::map< std::string, unsigned long long >', ('std::string', 'long unsigned int'), container_type='map') - typehandlers.add_type_alias('std::array< unsigned short, 16 >', 'ns3::Priomap') - typehandlers.add_type_alias('std::array< unsigned short, 16 >*', 'ns3::Priomap*') - typehandlers.add_type_alias('std::array< unsigned short, 16 >&', 'ns3::Priomap&') + module.add_container('std::vector< ns3::Ptr< ns3::QueueDisc > >', 'ns3::Ptr< ns3::QueueDisc >', container_type=u'vector') + module.add_container('std::vector< unsigned short >', 'short unsigned int', container_type=u'vector') + module.add_container('ns3::TrafficControlHelper::ClassIdList', 'short unsigned int', container_type=u'vector') + module.add_container('ns3::TrafficControlHelper::HandleList', 'short unsigned int', container_type=u'vector') + module.add_container('std::map< std::string, unsigned int >', ('std::string', 'unsigned int'), container_type=u'map') + module.add_container('std::map< std::string, unsigned long long >', ('std::string', 'long unsigned int'), container_type=u'map') + typehandlers.add_type_alias(u'std::array< unsigned short, 16 >', u'ns3::Priomap') + typehandlers.add_type_alias(u'std::array< unsigned short, 16 >*', u'ns3::Priomap*') + typehandlers.add_type_alias(u'std::array< unsigned short, 16 >&', u'ns3::Priomap&') ## Register a nested module for the namespace FatalImpl @@ -538,12 +532,12 @@ def register_types_ns3_Hash(module): ## hash-function.h (module 'core'): ns3::Hash::Implementation [class] module.add_class('Implementation', import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::Hash::Implementation, ns3::empty, ns3::DefaultDeleter >']) - typehandlers.add_type_alias('uint32_t ( * ) ( char const *, std::size_t const )', 'ns3::Hash::Hash32Function_ptr') - typehandlers.add_type_alias('uint32_t ( * ) ( char const *, std::size_t const )*', 'ns3::Hash::Hash32Function_ptr*') - typehandlers.add_type_alias('uint32_t ( * ) ( char const *, std::size_t const )&', 'ns3::Hash::Hash32Function_ptr&') - typehandlers.add_type_alias('uint64_t ( * ) ( char const *, std::size_t const )', 'ns3::Hash::Hash64Function_ptr') - typehandlers.add_type_alias('uint64_t ( * ) ( char const *, std::size_t const )*', 'ns3::Hash::Hash64Function_ptr*') - typehandlers.add_type_alias('uint64_t ( * ) ( char const *, std::size_t const )&', 'ns3::Hash::Hash64Function_ptr&') + typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, std::size_t const )', u'ns3::Hash::Hash32Function_ptr') + typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, std::size_t const )*', u'ns3::Hash::Hash32Function_ptr*') + typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, std::size_t const )&', u'ns3::Hash::Hash32Function_ptr&') + typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, std::size_t const )', u'ns3::Hash::Hash64Function_ptr') + typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, std::size_t const )*', u'ns3::Hash::Hash64Function_ptr*') + typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, std::size_t const )&', u'ns3::Hash::Hash64Function_ptr&') ## Register a nested module for the namespace Function @@ -566,36 +560,36 @@ def register_types_ns3_Hash_Function(module): def register_types_ns3_TracedValueCallback(module): root_module = module.get_root() - typehandlers.add_type_alias('void ( * ) ( bool, bool )', 'ns3::TracedValueCallback::Bool') - typehandlers.add_type_alias('void ( * ) ( bool, bool )*', 'ns3::TracedValueCallback::Bool*') - typehandlers.add_type_alias('void ( * ) ( bool, bool )&', 'ns3::TracedValueCallback::Bool&') - typehandlers.add_type_alias('void ( * ) ( int8_t, int8_t )', 'ns3::TracedValueCallback::Int8') - typehandlers.add_type_alias('void ( * ) ( int8_t, int8_t )*', 'ns3::TracedValueCallback::Int8*') - typehandlers.add_type_alias('void ( * ) ( int8_t, int8_t )&', 'ns3::TracedValueCallback::Int8&') - typehandlers.add_type_alias('void ( * ) ( uint8_t, uint8_t )', 'ns3::TracedValueCallback::Uint8') - typehandlers.add_type_alias('void ( * ) ( uint8_t, uint8_t )*', 'ns3::TracedValueCallback::Uint8*') - typehandlers.add_type_alias('void ( * ) ( uint8_t, uint8_t )&', 'ns3::TracedValueCallback::Uint8&') - typehandlers.add_type_alias('void ( * ) ( int16_t, int16_t )', 'ns3::TracedValueCallback::Int16') - typehandlers.add_type_alias('void ( * ) ( int16_t, int16_t )*', 'ns3::TracedValueCallback::Int16*') - typehandlers.add_type_alias('void ( * ) ( int16_t, int16_t )&', 'ns3::TracedValueCallback::Int16&') - typehandlers.add_type_alias('void ( * ) ( uint16_t, uint16_t )', 'ns3::TracedValueCallback::Uint16') - typehandlers.add_type_alias('void ( * ) ( uint16_t, uint16_t )*', 'ns3::TracedValueCallback::Uint16*') - typehandlers.add_type_alias('void ( * ) ( uint16_t, uint16_t )&', 'ns3::TracedValueCallback::Uint16&') - typehandlers.add_type_alias('void ( * ) ( int32_t, int32_t )', 'ns3::TracedValueCallback::Int32') - typehandlers.add_type_alias('void ( * ) ( int32_t, int32_t )*', 'ns3::TracedValueCallback::Int32*') - typehandlers.add_type_alias('void ( * ) ( int32_t, int32_t )&', 'ns3::TracedValueCallback::Int32&') - typehandlers.add_type_alias('void ( * ) ( uint32_t, uint32_t )', 'ns3::TracedValueCallback::Uint32') - typehandlers.add_type_alias('void ( * ) ( uint32_t, uint32_t )*', 'ns3::TracedValueCallback::Uint32*') - typehandlers.add_type_alias('void ( * ) ( uint32_t, uint32_t )&', 'ns3::TracedValueCallback::Uint32&') - typehandlers.add_type_alias('void ( * ) ( double, double )', 'ns3::TracedValueCallback::Double') - typehandlers.add_type_alias('void ( * ) ( double, double )*', 'ns3::TracedValueCallback::Double*') - typehandlers.add_type_alias('void ( * ) ( double, double )&', 'ns3::TracedValueCallback::Double&') - typehandlers.add_type_alias('void ( * ) ( )', 'ns3::TracedValueCallback::Void') - typehandlers.add_type_alias('void ( * ) ( )*', 'ns3::TracedValueCallback::Void*') - typehandlers.add_type_alias('void ( * ) ( )&', 'ns3::TracedValueCallback::Void&') - typehandlers.add_type_alias('void ( * ) ( ns3::Time, ns3::Time )', 'ns3::TracedValueCallback::Time') - typehandlers.add_type_alias('void ( * ) ( ns3::Time, ns3::Time )*', 'ns3::TracedValueCallback::Time*') - typehandlers.add_type_alias('void ( * ) ( ns3::Time, ns3::Time )&', 'ns3::TracedValueCallback::Time&') + typehandlers.add_type_alias(u'void ( * ) ( bool, bool )', u'ns3::TracedValueCallback::Bool') + typehandlers.add_type_alias(u'void ( * ) ( bool, bool )*', u'ns3::TracedValueCallback::Bool*') + typehandlers.add_type_alias(u'void ( * ) ( bool, bool )&', u'ns3::TracedValueCallback::Bool&') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t )', u'ns3::TracedValueCallback::Int8') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t )*', u'ns3::TracedValueCallback::Int8*') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t )&', u'ns3::TracedValueCallback::Int8&') + typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t )', u'ns3::TracedValueCallback::Uint8') + typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t )*', u'ns3::TracedValueCallback::Uint8*') + typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t )&', u'ns3::TracedValueCallback::Uint8&') + typehandlers.add_type_alias(u'void ( * ) ( int16_t, int16_t )', u'ns3::TracedValueCallback::Int16') + typehandlers.add_type_alias(u'void ( * ) ( int16_t, int16_t )*', u'ns3::TracedValueCallback::Int16*') + typehandlers.add_type_alias(u'void ( * ) ( int16_t, int16_t )&', u'ns3::TracedValueCallback::Int16&') + typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t )', u'ns3::TracedValueCallback::Uint16') + typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t )*', u'ns3::TracedValueCallback::Uint16*') + typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t )&', u'ns3::TracedValueCallback::Uint16&') + typehandlers.add_type_alias(u'void ( * ) ( int32_t, int32_t )', u'ns3::TracedValueCallback::Int32') + typehandlers.add_type_alias(u'void ( * ) ( int32_t, int32_t )*', u'ns3::TracedValueCallback::Int32*') + typehandlers.add_type_alias(u'void ( * ) ( int32_t, int32_t )&', u'ns3::TracedValueCallback::Int32&') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t )', u'ns3::TracedValueCallback::Uint32') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t )*', u'ns3::TracedValueCallback::Uint32*') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t )&', u'ns3::TracedValueCallback::Uint32&') + typehandlers.add_type_alias(u'void ( * ) ( double, double )', u'ns3::TracedValueCallback::Double') + typehandlers.add_type_alias(u'void ( * ) ( double, double )*', u'ns3::TracedValueCallback::Double*') + typehandlers.add_type_alias(u'void ( * ) ( double, double )&', u'ns3::TracedValueCallback::Double&') + typehandlers.add_type_alias(u'void ( * ) ( )', u'ns3::TracedValueCallback::Void') + typehandlers.add_type_alias(u'void ( * ) ( )*', u'ns3::TracedValueCallback::Void*') + typehandlers.add_type_alias(u'void ( * ) ( )&', u'ns3::TracedValueCallback::Void&') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Time, ns3::Time )', u'ns3::TracedValueCallback::Time') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Time, ns3::Time )*', u'ns3::TracedValueCallback::Time*') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Time, ns3::Time )&', u'ns3::TracedValueCallback::Time&') def register_types_ns3_internal(module): root_module = module.get_root() @@ -661,7 +655,6 @@ def register_methods(root_module): register_Ns3Timer_methods(root_module, root_module['ns3::Timer']) register_Ns3TimerImpl_methods(root_module, root_module['ns3::TimerImpl']) register_Ns3TracedValue__Bool_methods(root_module, root_module['ns3::TracedValue< bool >']) - register_Ns3TracedValue__Long_methods(root_module, root_module['ns3::TracedValue< long >']) register_Ns3TracedValue__Unsigned_int_methods(root_module, root_module['ns3::TracedValue< unsigned int >']) register_Ns3TrafficControlHelper_methods(root_module, root_module['ns3::TrafficControlHelper']) register_Ns3TypeId_methods(root_module, root_module['ns3::TypeId']) @@ -709,7 +702,6 @@ def register_methods(root_module): register_Ns3CallbackImplBase_methods(root_module, root_module['ns3::CallbackImplBase']) register_Ns3CallbackValue_methods(root_module, root_module['ns3::CallbackValue']) register_Ns3CoDelQueueDisc_methods(root_module, root_module['ns3::CoDelQueueDisc']) - register_Ns3CobaltQueueDisc_methods(root_module, root_module['ns3::CobaltQueueDisc']) register_Ns3ConstantRandomVariable_methods(root_module, root_module['ns3::ConstantRandomVariable']) register_Ns3DataRateChecker_methods(root_module, root_module['ns3::DataRateChecker']) register_Ns3DataRateValue_methods(root_module, root_module['ns3::DataRateValue']) @@ -767,7 +759,6 @@ def register_methods(root_module): register_Ns3AddressValue_methods(root_module, root_module['ns3::AddressValue']) register_Ns3CallbackImpl__Ns3ObjectBase___star___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< ns3::ObjectBase *, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) register_Ns3CallbackImpl__Void_Bool_Bool_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, bool, bool, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) - register_Ns3CallbackImpl__Void_Long_Long_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, long, long, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) register_Ns3CallbackImpl__Void_Ns3Ptr__lt__const_ns3QueueDiscItem__gt___Const_char___star___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, ns3::Ptr, const char *, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) register_Ns3CallbackImpl__Void_Ns3Ptr__lt__const_ns3QueueDiscItem__gt___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, ns3::Ptr, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) register_Ns3CallbackImpl__Void_Ns3Ptr__lt__ns3NetDevice__gt___Ns3Ptr__lt__const_ns3Packet__gt___Unsigned_short_Const_ns3Address___amp___Const_ns3Address___amp___Ns3NetDevicePacketType_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, ns3::Ptr, ns3::Ptr, unsigned short, const ns3::Address &, const ns3::Address &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >']) @@ -1287,7 +1278,7 @@ def register_Ns3DataRate_methods(root_module, cls): cls.add_method('CalculateTxTime', 'double', [param('uint32_t', 'bytes')], - is_const=True, deprecated=True) + deprecated=True, is_const=True) ## data-rate.h (module 'network'): uint64_t ns3::DataRate::GetBitRate() const [member function] cls.add_method('GetBitRate', 'uint64_t', @@ -1798,7 +1789,7 @@ def register_Ns3Ipv6Address_methods(root_module, cls): cls.add_method('IsAllHostsMulticast', 'bool', [], - is_const=True, deprecated=True) + deprecated=True, is_const=True) ## ipv6-address.h (module 'network'): bool ns3::Ipv6Address::IsAllNodesMulticast() const [member function] cls.add_method('IsAllNodesMulticast', 'bool', @@ -2165,7 +2156,7 @@ def register_Ns3ObjectBase_methods(root_module, cls): cls.add_method('GetInstanceTypeId', 'ns3::TypeId', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## object-base.h (module 'core'): static ns3::TypeId ns3::ObjectBase::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -2204,7 +2195,7 @@ def register_Ns3ObjectBase_methods(root_module, cls): cls.add_method('NotifyConstructionCompleted', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) return def register_Ns3ObjectDeleter_methods(root_module, cls): @@ -2237,11 +2228,6 @@ def register_Ns3ObjectFactory_methods(root_module, cls): 'ns3::TypeId', [], is_const=True) - ## object-factory.h (module 'core'): bool ns3::ObjectFactory::IsTypeIdSet() const [member function] - cls.add_method('IsTypeIdSet', - 'bool', - [], - is_const=True) ## object-factory.h (module 'core'): void ns3::ObjectFactory::Set(std::string name, ns3::AttributeValue const & value) [member function] cls.add_method('Set', 'void', @@ -2648,12 +2634,12 @@ def register_Ns3Tag_methods(root_module, cls): cls.add_method('Deserialize', 'void', [param('ns3::TagBuffer', 'i')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## tag.h (module 'network'): uint32_t ns3::Tag::GetSerializedSize() const [member function] cls.add_method('GetSerializedSize', 'uint32_t', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## tag.h (module 'network'): static ns3::TypeId ns3::Tag::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -2663,12 +2649,12 @@ def register_Ns3Tag_methods(root_module, cls): cls.add_method('Print', 'void', [param('std::ostream &', 'os')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## tag.h (module 'network'): void ns3::Tag::Serialize(ns3::TagBuffer i) const [member function] cls.add_method('Serialize', 'void', [param('ns3::TagBuffer', 'i')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) return def register_Ns3TagBuffer_methods(root_module, cls): @@ -2818,12 +2804,12 @@ def register_Ns3TimerImpl_methods(root_module, cls): cls.add_method('Invoke', 'void', [], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## timer-impl.h (module 'core'): ns3::EventId ns3::TimerImpl::Schedule(ns3::Time const & delay) [member function] cls.add_method('Schedule', 'ns3::EventId', [param('ns3::Time const &', 'delay')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) return def register_Ns3TracedValue__Bool_methods(root_module, cls): @@ -2860,40 +2846,6 @@ def register_Ns3TracedValue__Bool_methods(root_module, cls): [param('bool const &', 'v')]) return -def register_Ns3TracedValue__Long_methods(root_module, cls): - ## traced-value.h (module 'core'): ns3::TracedValue::TracedValue() [constructor] - cls.add_constructor([]) - ## traced-value.h (module 'core'): ns3::TracedValue::TracedValue(ns3::TracedValue const & o) [constructor] - cls.add_constructor([param('ns3::TracedValue< long > const &', 'o')]) - ## traced-value.h (module 'core'): ns3::TracedValue::TracedValue(long int const & v) [constructor] - cls.add_constructor([param('long int const &', 'v')]) - ## traced-value.h (module 'core'): void ns3::TracedValue::Connect(ns3::CallbackBase const & cb, std::string path) [member function] - cls.add_method('Connect', - 'void', - [param('ns3::CallbackBase const &', 'cb'), param('std::string', 'path')]) - ## traced-value.h (module 'core'): void ns3::TracedValue::ConnectWithoutContext(ns3::CallbackBase const & cb) [member function] - cls.add_method('ConnectWithoutContext', - 'void', - [param('ns3::CallbackBase const &', 'cb')]) - ## traced-value.h (module 'core'): void ns3::TracedValue::Disconnect(ns3::CallbackBase const & cb, std::string path) [member function] - cls.add_method('Disconnect', - 'void', - [param('ns3::CallbackBase const &', 'cb'), param('std::string', 'path')]) - ## traced-value.h (module 'core'): void ns3::TracedValue::DisconnectWithoutContext(ns3::CallbackBase const & cb) [member function] - cls.add_method('DisconnectWithoutContext', - 'void', - [param('ns3::CallbackBase const &', 'cb')]) - ## traced-value.h (module 'core'): long int ns3::TracedValue::Get() const [member function] - cls.add_method('Get', - 'long int', - [], - is_const=True) - ## traced-value.h (module 'core'): void ns3::TracedValue::Set(long int const & v) [member function] - cls.add_method('Set', - 'void', - [param('long int const &', 'v')]) - return - def register_Ns3TracedValue__Unsigned_int_methods(root_module, cls): ## traced-value.h (module 'core'): ns3::TracedValue::TracedValue() [constructor] cls.add_constructor([]) @@ -2953,10 +2905,10 @@ def register_Ns3TrafficControlHelper_methods(root_module, cls): cls.add_method('AddQueueDiscClasses', 'ns3::TrafficControlHelper::ClassIdList', [param('uint16_t', 'handle'), param('uint16_t', 'count'), param('std::string', 'type'), param('std::string', 'n01', default_value='""'), param('ns3::AttributeValue const &', 'v01', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n02', default_value='""'), param('ns3::AttributeValue const &', 'v02', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n03', default_value='""'), param('ns3::AttributeValue const &', 'v03', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n04', default_value='""'), param('ns3::AttributeValue const &', 'v04', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n05', default_value='""'), param('ns3::AttributeValue const &', 'v05', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n06', default_value='""'), param('ns3::AttributeValue const &', 'v06', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n07', default_value='""'), param('ns3::AttributeValue const &', 'v07', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n08', default_value='""'), param('ns3::AttributeValue const &', 'v08', default_value='ns3::EmptyAttributeValue()')]) - ## traffic-control-helper.h (module 'traffic-control'): static ns3::TrafficControlHelper ns3::TrafficControlHelper::Default(std::size_t nTxQueues=1) [member function] + ## traffic-control-helper.h (module 'traffic-control'): static ns3::TrafficControlHelper ns3::TrafficControlHelper::Default() [member function] cls.add_method('Default', 'ns3::TrafficControlHelper', - [param('std::size_t', 'nTxQueues', default_value='1')], + [], is_static=True) ## traffic-control-helper.h (module 'traffic-control'): ns3::QueueDiscContainer ns3::TrafficControlHelper::Install(ns3::NetDeviceContainer c) [member function] cls.add_method('Install', @@ -3209,11 +3161,11 @@ def register_Ns3Empty_methods(root_module, cls): return def register_Ns3Int64x64_t_methods(root_module, cls): - cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::int64x64_t'], param('ns3::Time const &', 'right')) - cls.add_binary_numeric_operator('+', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', 'right')) - cls.add_binary_numeric_operator('-', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', 'right')) - cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', 'right')) - cls.add_binary_numeric_operator('/', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', 'right')) + cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::int64x64_t'], param('ns3::Time const &', u'right')) + cls.add_binary_numeric_operator('+', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) + cls.add_binary_numeric_operator('-', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) + cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) + cls.add_binary_numeric_operator('/', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) cls.add_binary_comparison_operator('!=') cls.add_binary_comparison_operator('<=') cls.add_binary_comparison_operator('>=') @@ -3221,10 +3173,10 @@ def register_Ns3Int64x64_t_methods(root_module, cls): cls.add_binary_comparison_operator('==') cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('>') - cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', 'right')) - cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', 'right')) - cls.add_inplace_numeric_operator('*=', param('ns3::int64x64_t const &', 'right')) - cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', 'right')) + cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', u'right')) + cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', u'right')) + cls.add_inplace_numeric_operator('*=', param('ns3::int64x64_t const &', u'right')) + cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', u'right')) cls.add_unary_numeric_operator('-') ## int64x64-128.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor] cls.add_constructor([]) @@ -3285,7 +3237,7 @@ def register_Ns3Chunk_methods(root_module, cls): cls.add_method('Deserialize', 'uint32_t', [param('ns3::Buffer::Iterator', 'start')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## chunk.h (module 'network'): uint32_t ns3::Chunk::Deserialize(ns3::Buffer::Iterator start, ns3::Buffer::Iterator end) [member function] cls.add_method('Deserialize', 'uint32_t', @@ -3300,7 +3252,7 @@ def register_Ns3Chunk_methods(root_module, cls): cls.add_method('Print', 'void', [param('std::ostream &', 'os')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) return def register_Ns3Header_methods(root_module, cls): @@ -3313,12 +3265,12 @@ def register_Ns3Header_methods(root_module, cls): cls.add_method('Deserialize', 'uint32_t', [param('ns3::Buffer::Iterator', 'start')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## header.h (module 'network'): uint32_t ns3::Header::GetSerializedSize() const [member function] cls.add_method('GetSerializedSize', 'uint32_t', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## header.h (module 'network'): static ns3::TypeId ns3::Header::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -3328,12 +3280,12 @@ def register_Ns3Header_methods(root_module, cls): cls.add_method('Print', 'void', [param('std::ostream &', 'os')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## header.h (module 'network'): void ns3::Header::Serialize(ns3::Buffer::Iterator start) const [member function] cls.add_method('Serialize', 'void', [param('ns3::Buffer::Iterator', 'start')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) return def register_Ns3Object_methods(root_module, cls): @@ -3378,17 +3330,17 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) ## object.h (module 'core'): void ns3::Object::DoInitialize() [member function] cls.add_method('DoInitialize', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) ## object.h (module 'core'): void ns3::Object::NotifyNewAggregate() [member function] cls.add_method('NotifyNewAggregate', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) return def register_Ns3ObjectAggregateIterator_methods(root_module, cls): @@ -3428,12 +3380,12 @@ def register_Ns3PacketFilter_methods(root_module, cls): cls.add_method('CheckProtocol', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_const=True, is_virtual=True, is_pure_virtual=True, visibility='private') + is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True) ## packet-filter.h (module 'traffic-control'): int32_t ns3::PacketFilter::DoClassify(ns3::Ptr item) const [member function] cls.add_method('DoClassify', 'int32_t', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_const=True, is_virtual=True, is_pure_virtual=True, visibility='private') + is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True) return def register_Ns3QueueDisc_methods(root_module, cls): @@ -3576,12 +3528,12 @@ def register_Ns3QueueDisc_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) ## queue-disc.h (module 'traffic-control'): void ns3::QueueDisc::DoInitialize() [member function] cls.add_method('DoInitialize', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) ## queue-disc.h (module 'traffic-control'): void ns3::QueueDisc::DropAfterDequeue(ns3::Ptr item, char const * reason) [member function] cls.add_method('DropAfterDequeue', 'void', @@ -3601,27 +3553,27 @@ def register_Ns3QueueDisc_methods(root_module, cls): cls.add_method('CheckConfig', 'bool', [], - is_virtual=True, is_pure_virtual=True, visibility='private') + is_pure_virtual=True, visibility='private', is_virtual=True) ## queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::QueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - is_virtual=True, is_pure_virtual=True, visibility='private') + is_pure_virtual=True, visibility='private', is_virtual=True) ## queue-disc.h (module 'traffic-control'): bool ns3::QueueDisc::DoEnqueue(ns3::Ptr item) [member function] cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_virtual=True, is_pure_virtual=True, visibility='private') + is_pure_virtual=True, visibility='private', is_virtual=True) ## queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::QueueDisc::DoPeek() [member function] cls.add_method('DoPeek', 'ns3::Ptr< ns3::QueueDiscItem const >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## queue-disc.h (module 'traffic-control'): void ns3::QueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - is_virtual=True, is_pure_virtual=True, visibility='private') + is_pure_virtual=True, visibility='private', is_virtual=True) return def register_Ns3QueueDiscStats_methods(root_module, cls): @@ -3728,7 +3680,7 @@ def register_Ns3QueueDiscClass_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) return def register_Ns3RandomVariableStream_methods(root_module, cls): @@ -3761,12 +3713,12 @@ def register_Ns3RandomVariableStream_methods(root_module, cls): cls.add_method('GetValue', 'double', [], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## random-variable-stream.h (module 'core'): uint32_t ns3::RandomVariableStream::GetInteger() [member function] cls.add_method('GetInteger', 'uint32_t', [], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## random-variable-stream.h (module 'core'): ns3::RngStream * ns3::RandomVariableStream::Peek() const [member function] cls.add_method('Peek', 'ns3::RngStream *', @@ -3834,32 +3786,32 @@ def register_Ns3RedQueueDisc_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) ## red-queue-disc.h (module 'traffic-control'): bool ns3::RedQueueDisc::DoEnqueue(ns3::Ptr item) [member function] cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## red-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::RedQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## red-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::RedQueueDisc::DoPeek() [member function] cls.add_method('DoPeek', 'ns3::Ptr< ns3::QueueDiscItem const >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## red-queue-disc.h (module 'traffic-control'): bool ns3::RedQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## red-queue-disc.h (module 'traffic-control'): void ns3::RedQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) return def register_Ns3SequentialRandomVariable_methods(root_module, cls): @@ -4030,27 +3982,27 @@ def register_Ns3TbfQueueDisc_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) ## tbf-queue-disc.h (module 'traffic-control'): bool ns3::TbfQueueDisc::DoEnqueue(ns3::Ptr item) [member function] cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## tbf-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::TbfQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## tbf-queue-disc.h (module 'traffic-control'): bool ns3::TbfQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## tbf-queue-disc.h (module 'traffic-control'): void ns3::TbfQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) return def register_Ns3Time_methods(root_module, cls): @@ -4060,15 +4012,15 @@ 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_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right')) - cls.add_binary_numeric_operator('-', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right')) - cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('int64_t const &', 'right')) - cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::int64x64_t const &', 'right')) - cls.add_binary_numeric_operator('/', root_module['ns3::int64x64_t'], root_module['ns3::Time'], param('ns3::Time const &', 'right')) - cls.add_binary_numeric_operator('/', root_module['ns3::Time'], root_module['ns3::Time'], param('int64_t const &', 'right')) - cls.add_binary_numeric_operator('/', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::int64x64_t const &', 'right')) - cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right')) - cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', '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('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() ## nstime.h (module 'core'): ns3::Time::Time() [constructor] cls.add_constructor([]) @@ -4263,22 +4215,22 @@ def register_Ns3TraceSourceAccessor_methods(root_module, cls): cls.add_method('Connect', 'bool', [param('ns3::ObjectBase *', 'obj', transfer_ownership=False), param('std::string', 'context'), param('ns3::CallbackBase const &', 'cb')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## trace-source-accessor.h (module 'core'): bool ns3::TraceSourceAccessor::ConnectWithoutContext(ns3::ObjectBase * obj, ns3::CallbackBase const & cb) const [member function] cls.add_method('ConnectWithoutContext', 'bool', [param('ns3::ObjectBase *', 'obj', transfer_ownership=False), param('ns3::CallbackBase const &', 'cb')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## trace-source-accessor.h (module 'core'): bool ns3::TraceSourceAccessor::Disconnect(ns3::ObjectBase * obj, std::string context, ns3::CallbackBase const & cb) const [member function] cls.add_method('Disconnect', 'bool', [param('ns3::ObjectBase *', 'obj', transfer_ownership=False), param('std::string', 'context'), param('ns3::CallbackBase const &', 'cb')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## trace-source-accessor.h (module 'core'): bool ns3::TraceSourceAccessor::DisconnectWithoutContext(ns3::ObjectBase * obj, ns3::CallbackBase const & cb) const [member function] cls.add_method('DisconnectWithoutContext', 'bool', [param('ns3::ObjectBase *', 'obj', transfer_ownership=False), param('ns3::CallbackBase const &', 'cb')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) return def register_Ns3TrafficControlLayer_methods(root_module, cls): @@ -4336,17 +4288,17 @@ def register_Ns3TrafficControlLayer_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) ## traffic-control-layer.h (module 'traffic-control'): void ns3::TrafficControlLayer::DoInitialize() [member function] cls.add_method('DoInitialize', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) ## traffic-control-layer.h (module 'traffic-control'): void ns3::TrafficControlLayer::NotifyNewAggregate() [member function] cls.add_method('NotifyNewAggregate', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) return def register_Ns3Trailer_methods(root_module, cls): @@ -4359,7 +4311,7 @@ def register_Ns3Trailer_methods(root_module, cls): cls.add_method('Deserialize', 'uint32_t', [param('ns3::Buffer::Iterator', 'end')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## trailer.h (module 'network'): uint32_t ns3::Trailer::Deserialize(ns3::Buffer::Iterator start, ns3::Buffer::Iterator end) [member function] cls.add_method('Deserialize', 'uint32_t', @@ -4369,7 +4321,7 @@ def register_Ns3Trailer_methods(root_module, cls): cls.add_method('GetSerializedSize', 'uint32_t', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## trailer.h (module 'network'): static ns3::TypeId ns3::Trailer::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -4379,12 +4331,12 @@ def register_Ns3Trailer_methods(root_module, cls): cls.add_method('Print', 'void', [param('std::ostream &', 'os')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## trailer.h (module 'network'): void ns3::Trailer::Serialize(ns3::Buffer::Iterator start) const [member function] cls.add_method('Serialize', 'void', [param('ns3::Buffer::Iterator', 'start')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) return def register_Ns3TriangularRandomVariable_methods(root_module, cls): @@ -4591,22 +4543,22 @@ def register_Ns3AttributeAccessor_methods(root_module, cls): cls.add_method('Get', 'bool', [param('ns3::ObjectBase const *', 'object'), param('ns3::AttributeValue &', 'attribute')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## attribute.h (module 'core'): bool ns3::AttributeAccessor::HasGetter() const [member function] cls.add_method('HasGetter', 'bool', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## attribute.h (module 'core'): bool ns3::AttributeAccessor::HasSetter() const [member function] cls.add_method('HasSetter', 'bool', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## attribute.h (module 'core'): bool ns3::AttributeAccessor::Set(ns3::ObjectBase * object, ns3::AttributeValue const & value) const [member function] cls.add_method('Set', 'bool', [param('ns3::ObjectBase *', 'object', transfer_ownership=False), param('ns3::AttributeValue const &', 'value')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) return def register_Ns3AttributeChecker_methods(root_module, cls): @@ -4618,17 +4570,17 @@ def register_Ns3AttributeChecker_methods(root_module, cls): cls.add_method('Check', 'bool', [param('ns3::AttributeValue const &', 'value')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## attribute.h (module 'core'): bool ns3::AttributeChecker::Copy(ns3::AttributeValue const & source, ns3::AttributeValue & destination) const [member function] cls.add_method('Copy', 'bool', [param('ns3::AttributeValue const &', 'source'), param('ns3::AttributeValue &', 'destination')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## attribute.h (module 'core'): ns3::Ptr ns3::AttributeChecker::Create() const [member function] cls.add_method('Create', 'ns3::Ptr< ns3::AttributeValue >', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## attribute.h (module 'core'): ns3::Ptr ns3::AttributeChecker::CreateValidValue(ns3::AttributeValue const & value) const [member function] cls.add_method('CreateValidValue', 'ns3::Ptr< ns3::AttributeValue >', @@ -4638,17 +4590,17 @@ def register_Ns3AttributeChecker_methods(root_module, cls): cls.add_method('GetUnderlyingTypeInformation', 'std::string', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## attribute.h (module 'core'): std::string ns3::AttributeChecker::GetValueTypeName() const [member function] cls.add_method('GetValueTypeName', 'std::string', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## attribute.h (module 'core'): bool ns3::AttributeChecker::HasUnderlyingTypeInformation() const [member function] cls.add_method('HasUnderlyingTypeInformation', 'bool', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) return def register_Ns3AttributeValue_methods(root_module, cls): @@ -4660,17 +4612,17 @@ def register_Ns3AttributeValue_methods(root_module, cls): cls.add_method('Copy', 'ns3::Ptr< ns3::AttributeValue >', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## attribute.h (module 'core'): bool ns3::AttributeValue::DeserializeFromString(std::string value, ns3::Ptr checker) [member function] cls.add_method('DeserializeFromString', 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## attribute.h (module 'core'): std::string ns3::AttributeValue::SerializeToString(ns3::Ptr checker) const [member function] cls.add_method('SerializeToString', 'std::string', [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) return def register_Ns3BooleanChecker_methods(root_module, cls): @@ -4730,12 +4682,12 @@ def register_Ns3CallbackImplBase_methods(root_module, cls): cls.add_method('GetTypeid', 'std::string', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## callback.h (module 'core'): bool ns3::CallbackImplBase::IsEqual(ns3::Ptr other) const [member function] cls.add_method('IsEqual', 'bool', [param('ns3::Ptr< ns3::CallbackImplBase const >', 'other')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::Demangle(std::string const & mangled) [member function] cls.add_method('Demangle', 'std::string', @@ -4745,67 +4697,62 @@ def register_Ns3CallbackImplBase_methods(root_module, cls): cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, template_parameters=['ns3::ObjectBase*'], visibility='protected') - ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] - cls.add_method('GetCppTypeid', - 'std::string', - [], - is_static=True, template_parameters=['void'], visibility='protected') + is_static=True, visibility='protected', template_parameters=[u'ns3::ObjectBase*']) ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, template_parameters=['unsigned int'], visibility='protected') + is_static=True, visibility='protected', template_parameters=[u'void']) ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, template_parameters=['long'], visibility='protected') + is_static=True, visibility='protected', template_parameters=[u'unsigned int']) ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, template_parameters=['bool'], visibility='protected') + is_static=True, visibility='protected', template_parameters=[u'bool']) ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, template_parameters=['ns3::Time'], visibility='protected') + is_static=True, visibility='protected', template_parameters=[u'ns3::Time']) ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, template_parameters=['ns3::Ptr '], visibility='protected') + is_static=True, visibility='protected', template_parameters=[u'ns3::Ptr ']) ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, template_parameters=['char const*'], visibility='protected') + is_static=True, visibility='protected', template_parameters=[u'char const*']) ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, template_parameters=['ns3::Ptr '], visibility='protected') + is_static=True, visibility='protected', template_parameters=[u'ns3::Ptr ']) ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, template_parameters=['ns3::Ptr '], visibility='protected') + is_static=True, visibility='protected', template_parameters=[u'ns3::Ptr ']) ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, template_parameters=['unsigned short'], visibility='protected') + is_static=True, visibility='protected', template_parameters=[u'unsigned short']) ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, template_parameters=['ns3::Address const&'], visibility='protected') + is_static=True, visibility='protected', template_parameters=[u'ns3::Address const&']) ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, template_parameters=['ns3::NetDevice::PacketType'], visibility='protected') + is_static=True, visibility='protected', template_parameters=[u'ns3::NetDevice::PacketType']) return def register_Ns3CallbackValue_methods(root_module, cls): @@ -4864,92 +4811,22 @@ def register_Ns3CoDelQueueDisc_methods(root_module, cls): cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## codel-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::CoDelQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## codel-queue-disc.h (module 'traffic-control'): bool ns3::CoDelQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## codel-queue-disc.h (module 'traffic-control'): void ns3::CoDelQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - is_virtual=True, visibility='private') - return - -def register_Ns3CobaltQueueDisc_methods(root_module, cls): - ## cobalt-queue-disc.h (module 'traffic-control'): static ns3::TypeId ns3::CobaltQueueDisc::GetTypeId() [member function] - cls.add_method('GetTypeId', - 'ns3::TypeId', - [], - is_static=True) - ## cobalt-queue-disc.h (module 'traffic-control'): ns3::CobaltQueueDisc::CobaltQueueDisc() [constructor] - cls.add_constructor([]) - ## cobalt-queue-disc.h (module 'traffic-control'): ns3::Time ns3::CobaltQueueDisc::GetTarget() [member function] - cls.add_method('GetTarget', - 'ns3::Time', - []) - ## cobalt-queue-disc.h (module 'traffic-control'): ns3::Time ns3::CobaltQueueDisc::GetInterval() [member function] - cls.add_method('GetInterval', - 'ns3::Time', - []) - ## cobalt-queue-disc.h (module 'traffic-control'): int64_t ns3::CobaltQueueDisc::GetDropNext() [member function] - cls.add_method('GetDropNext', - 'int64_t', - []) - ## cobalt-queue-disc.h (module 'traffic-control'): ns3::CobaltQueueDisc::TARGET_EXCEEDED_DROP [variable] - cls.add_static_attribute('TARGET_EXCEEDED_DROP', 'char const * const', is_const=True) - ## cobalt-queue-disc.h (module 'traffic-control'): ns3::CobaltQueueDisc::OVERLIMIT_DROP [variable] - cls.add_static_attribute('OVERLIMIT_DROP', 'char const * const', is_const=True) - ## cobalt-queue-disc.h (module 'traffic-control'): ns3::CobaltQueueDisc::FORCED_MARK [variable] - cls.add_static_attribute('FORCED_MARK', 'char const * const', is_const=True) - ## cobalt-queue-disc.h (module 'traffic-control'): double ns3::CobaltQueueDisc::GetPdrop() [member function] - cls.add_method('GetPdrop', - 'double', - []) - ## cobalt-queue-disc.h (module 'traffic-control'): int64_t ns3::CobaltQueueDisc::AssignStreams(int64_t stream) [member function] - cls.add_method('AssignStreams', - 'int64_t', - [param('int64_t', 'stream')]) - ## cobalt-queue-disc.h (module 'traffic-control'): int64_t ns3::CobaltQueueDisc::Time2CoDel(ns3::Time t) [member function] - cls.add_method('Time2CoDel', - 'int64_t', - [param('ns3::Time', 't')]) - ## cobalt-queue-disc.h (module 'traffic-control'): void ns3::CobaltQueueDisc::DoDispose() [member function] - cls.add_method('DoDispose', - 'void', - [], - is_virtual=True, visibility='protected') - ## cobalt-queue-disc.h (module 'traffic-control'): bool ns3::CobaltQueueDisc::DoEnqueue(ns3::Ptr item) [member function] - cls.add_method('DoEnqueue', - 'bool', - [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_virtual=True, visibility='private') - ## cobalt-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::CobaltQueueDisc::DoDequeue() [member function] - cls.add_method('DoDequeue', - 'ns3::Ptr< ns3::QueueDiscItem >', - [], - is_virtual=True, visibility='private') - ## cobalt-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::CobaltQueueDisc::DoPeek() [member function] - cls.add_method('DoPeek', - 'ns3::Ptr< ns3::QueueDiscItem const >', - [], - is_virtual=True, visibility='private') - ## cobalt-queue-disc.h (module 'traffic-control'): bool ns3::CobaltQueueDisc::CheckConfig() [member function] - cls.add_method('CheckConfig', - 'bool', - [], - is_virtual=True, visibility='private') - ## cobalt-queue-disc.h (module 'traffic-control'): void ns3::CobaltQueueDisc::InitializeParams() [member function] - cls.add_method('InitializeParams', - 'void', - [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) return def register_Ns3ConstantRandomVariable_methods(root_module, cls): @@ -5108,12 +4985,12 @@ def register_Ns3EmpiricalRandomVariable_methods(root_module, cls): cls.add_method('Interpolate', 'double', [param('double', 'c1'), param('double', 'c2'), param('double', 'v1'), param('double', 'v2'), param('double', 'r')], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## random-variable-stream.h (module 'core'): void ns3::EmpiricalRandomVariable::Validate() [member function] cls.add_method('Validate', 'void', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) return def register_Ns3EmptyAttributeAccessor_methods(root_module, cls): @@ -5189,17 +5066,17 @@ def register_Ns3EmptyAttributeValue_methods(root_module, cls): cls.add_method('Copy', 'ns3::Ptr< ns3::AttributeValue >', [], - is_const=True, is_virtual=True, visibility='private') + is_const=True, visibility='private', is_virtual=True) ## attribute.h (module 'core'): bool ns3::EmptyAttributeValue::DeserializeFromString(std::string value, ns3::Ptr checker) [member function] cls.add_method('DeserializeFromString', 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## attribute.h (module 'core'): std::string ns3::EmptyAttributeValue::SerializeToString(ns3::Ptr checker) const [member function] cls.add_method('SerializeToString', 'std::string', [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], - is_const=True, is_virtual=True, visibility='private') + is_const=True, visibility='private', is_virtual=True) return def register_Ns3EnumChecker_methods(root_module, cls): @@ -5339,7 +5216,7 @@ def register_Ns3EventImpl_methods(root_module, cls): cls.add_method('Notify', 'void', [], - is_virtual=True, is_pure_virtual=True, visibility='protected') + is_pure_virtual=True, visibility='protected', is_virtual=True) return def register_Ns3ExponentialRandomVariable_methods(root_module, cls): @@ -5394,27 +5271,27 @@ def register_Ns3FifoQueueDisc_methods(root_module, cls): cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## fifo-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::FifoQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## fifo-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::FifoQueueDisc::DoPeek() [member function] cls.add_method('DoPeek', 'ns3::Ptr< ns3::QueueDiscItem const >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## fifo-queue-disc.h (module 'traffic-control'): bool ns3::FifoQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## fifo-queue-disc.h (module 'traffic-control'): void ns3::FifoQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) return def register_Ns3FqCoDelFlow_methods(root_module, cls): @@ -5476,22 +5353,22 @@ def register_Ns3FqCoDelQueueDisc_methods(root_module, cls): cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## fq-codel-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::FqCoDelQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## fq-codel-queue-disc.h (module 'traffic-control'): bool ns3::FqCoDelQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## fq-codel-queue-disc.h (module 'traffic-control'): void ns3::FqCoDelQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) return def register_Ns3GammaRandomVariable_methods(root_module, cls): @@ -5820,27 +5697,27 @@ def register_Ns3MqQueueDisc_methods(root_module, cls): cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## mq-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::MqQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## mq-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::MqQueueDisc::DoPeek() [member function] cls.add_method('DoPeek', 'ns3::Ptr< ns3::QueueDiscItem const >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## mq-queue-disc.h (module 'traffic-control'): bool ns3::MqQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## mq-queue-disc.h (module 'traffic-control'): void ns3::MqQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) return def register_Ns3NetDevice_methods(root_module, cls): @@ -5852,47 +5729,47 @@ def register_Ns3NetDevice_methods(root_module, cls): cls.add_method('AddLinkChangeCallback', 'void', [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## net-device.h (module 'network'): ns3::Address ns3::NetDevice::GetAddress() const [member function] cls.add_method('GetAddress', 'ns3::Address', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): ns3::Address ns3::NetDevice::GetBroadcast() const [member function] cls.add_method('GetBroadcast', 'ns3::Address', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDevice::GetChannel() const [member function] cls.add_method('GetChannel', 'ns3::Ptr< ns3::Channel >', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): uint32_t ns3::NetDevice::GetIfIndex() const [member function] cls.add_method('GetIfIndex', 'uint32_t', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): uint16_t ns3::NetDevice::GetMtu() const [member function] cls.add_method('GetMtu', 'uint16_t', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): ns3::Address ns3::NetDevice::GetMulticast(ns3::Ipv4Address multicastGroup) const [member function] cls.add_method('GetMulticast', 'ns3::Address', [param('ns3::Ipv4Address', 'multicastGroup')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): ns3::Address ns3::NetDevice::GetMulticast(ns3::Ipv6Address addr) const [member function] cls.add_method('GetMulticast', 'ns3::Address', [param('ns3::Ipv6Address', 'addr')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDevice::GetNode() const [member function] cls.add_method('GetNode', 'ns3::Ptr< ns3::Node >', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDevice::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -5902,77 +5779,77 @@ def register_Ns3NetDevice_methods(root_module, cls): cls.add_method('IsBridge', 'bool', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::IsBroadcast() const [member function] cls.add_method('IsBroadcast', 'bool', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::IsLinkUp() const [member function] cls.add_method('IsLinkUp', 'bool', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::IsMulticast() const [member function] cls.add_method('IsMulticast', 'bool', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::IsPointToPoint() const [member function] cls.add_method('IsPointToPoint', 'bool', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::NeedsArp() const [member function] cls.add_method('NeedsArp', 'bool', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::Send(ns3::Ptr packet, ns3::Address const & dest, uint16_t protocolNumber) [member function] cls.add_method('Send', 'bool', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::SendFrom(ns3::Ptr packet, ns3::Address const & source, ns3::Address const & dest, uint16_t protocolNumber) [member function] cls.add_method('SendFrom', 'bool', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::NetDevice::SetAddress(ns3::Address address) [member function] cls.add_method('SetAddress', 'void', [param('ns3::Address', 'address')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::NetDevice::SetIfIndex(uint32_t const index) [member function] cls.add_method('SetIfIndex', 'void', [param('uint32_t const', 'index')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::SetMtu(uint16_t const mtu) [member function] cls.add_method('SetMtu', 'bool', [param('uint16_t const', 'mtu')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::NetDevice::SetNode(ns3::Ptr node) [member function] cls.add_method('SetNode', 'void', [param('ns3::Ptr< ns3::Node >', 'node')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::NetDevice::SetPromiscReceiveCallback(ns3::NetDevice::PromiscReceiveCallback cb) [member function] cls.add_method('SetPromiscReceiveCallback', 'void', [param('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >', 'cb')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::NetDevice::SetReceiveCallback(ns3::NetDevice::ReceiveCallback cb) [member function] cls.add_method('SetReceiveCallback', 'void', [param('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::SupportsSendFrom() const [member function] cls.add_method('SupportsSendFrom', 'bool', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) return def register_Ns3NixVector_methods(root_module, cls): @@ -6099,12 +5976,12 @@ def register_Ns3Node_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) ## node.h (module 'network'): void ns3::Node::DoInitialize() [member function] cls.add_method('DoInitialize', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) return def register_Ns3NormalRandomVariable_methods(root_module, cls): @@ -6213,11 +6090,6 @@ def register_Ns3Packet_methods(root_module, cls): 'void', [param('ns3::Tag const &', 'tag')], is_const=True) - ## packet.h (module 'network'): void ns3::Packet::AddByteTag(ns3::Tag const & tag, uint32_t start, uint32_t end) const [member function] - cls.add_method('AddByteTag', - 'void', - [param('ns3::Tag const &', 'tag'), param('uint32_t', 'start'), param('uint32_t', 'end')], - is_const=True) ## packet.h (module 'network'): void ns3::Packet::AddHeader(ns3::Header const & header) [member function] cls.add_method('AddHeader', 'void', @@ -6403,7 +6275,7 @@ def register_Ns3ParetoRandomVariable_methods(root_module, cls): cls.add_method('GetMean', 'double', [], - is_const=True, deprecated=True) + deprecated=True, is_const=True) ## random-variable-stream.h (module 'core'): double ns3::ParetoRandomVariable::GetScale() const [member function] cls.add_method('GetScale', 'double', @@ -6453,27 +6325,27 @@ def register_Ns3PfifoFastQueueDisc_methods(root_module, cls): cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## pfifo-fast-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::PfifoFastQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## pfifo-fast-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::PfifoFastQueueDisc::DoPeek() [member function] cls.add_method('DoPeek', 'ns3::Ptr< ns3::QueueDiscItem const >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## pfifo-fast-queue-disc.h (module 'traffic-control'): bool ns3::PfifoFastQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## pfifo-fast-queue-disc.h (module 'traffic-control'): void ns3::PfifoFastQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) return def register_Ns3PieQueueDisc_methods(root_module, cls): @@ -6500,27 +6372,27 @@ def register_Ns3PieQueueDisc_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) ## pie-queue-disc.h (module 'traffic-control'): bool ns3::PieQueueDisc::DoEnqueue(ns3::Ptr item) [member function] cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## pie-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::PieQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## pie-queue-disc.h (module 'traffic-control'): bool ns3::PieQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## pie-queue-disc.h (module 'traffic-control'): void ns3::PieQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) return def register_Ns3PrioQueueDisc_methods(root_module, cls): @@ -6544,27 +6416,27 @@ def register_Ns3PrioQueueDisc_methods(root_module, cls): cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## prio-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::PrioQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## prio-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::PrioQueueDisc::DoPeek() [member function] cls.add_method('DoPeek', 'ns3::Ptr< ns3::QueueDiscItem const >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## prio-queue-disc.h (module 'traffic-control'): bool ns3::PrioQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## prio-queue-disc.h (module 'traffic-control'): void ns3::PrioQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) return def register_Ns3PriomapChecker_methods(root_module, cls): @@ -6878,7 +6750,7 @@ def register_Ns3CallbackImpl__Ns3ObjectBase___star___Ns3Empty_Ns3Empty_Ns3Empty_ cls.add_method('operator()', 'ns3::ObjectBase *', [], - custom_name='__call__', is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') return def register_Ns3CallbackImpl__Void_Bool_Bool_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -6900,29 +6772,7 @@ def register_Ns3CallbackImpl__Void_Bool_Bool_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty cls.add_method('operator()', 'void', [param('bool', 'arg0'), param('bool', 'arg1')], - custom_name='__call__', is_virtual=True, is_pure_virtual=True) - return - -def register_Ns3CallbackImpl__Void_Long_Long_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): - ## callback.h (module 'core'): ns3::CallbackImpl::CallbackImpl() [constructor] - cls.add_constructor([]) - ## callback.h (module 'core'): ns3::CallbackImpl::CallbackImpl(ns3::CallbackImpl const & arg0) [constructor] - cls.add_constructor([param('ns3::CallbackImpl< void, long, long, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty > const &', 'arg0')]) - ## callback.h (module 'core'): static std::string ns3::CallbackImpl::DoGetTypeid() [member function] - cls.add_method('DoGetTypeid', - 'std::string', - [], - is_static=True) - ## callback.h (module 'core'): std::string ns3::CallbackImpl::GetTypeid() const [member function] - cls.add_method('GetTypeid', - 'std::string', - [], - is_const=True, is_virtual=True) - ## callback.h (module 'core'): void ns3::CallbackImpl::operator()(long int arg0, long int arg1) [member operator] - cls.add_method('operator()', - 'void', - [param('long int', 'arg0'), param('long int', 'arg1')], - custom_name='__call__', is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') return def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__const_ns3QueueDiscItem__gt___Const_char___star___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -6944,7 +6794,7 @@ def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__const_ns3QueueDiscItem__gt___Cons cls.add_method('operator()', 'void', [param('ns3::Ptr< ns3::QueueDiscItem const >', 'arg0'), param('char const *', 'arg1')], - custom_name='__call__', is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') return def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__const_ns3QueueDiscItem__gt___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -6966,7 +6816,7 @@ def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__const_ns3QueueDiscItem__gt___Ns3E cls.add_method('operator()', 'void', [param('ns3::Ptr< ns3::QueueDiscItem const >', 'arg0')], - custom_name='__call__', is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') return def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__ns3NetDevice__gt___Ns3Ptr__lt__const_ns3Packet__gt___Unsigned_short_Const_ns3Address___amp___Const_ns3Address___amp___Ns3NetDevicePacketType_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -6988,7 +6838,7 @@ def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__ns3NetDevice__gt___Ns3Ptr__lt__co cls.add_method('operator()', 'void', [param('ns3::Ptr< ns3::NetDevice >', 'arg0'), param('ns3::Ptr< ns3::Packet const >', 'arg1'), param('short unsigned int', 'arg2'), param('ns3::Address const &', 'arg3'), param('ns3::Address const &', 'arg4'), param('ns3::NetDevice::PacketType', 'arg5')], - custom_name='__call__', is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') return def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__ns3NetDevice__gt___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -7010,7 +6860,7 @@ def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__ns3NetDevice__gt___Ns3Empty_Ns3Em cls.add_method('operator()', 'void', [param('ns3::Ptr< ns3::NetDevice >', 'arg0')], - custom_name='__call__', is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') return def register_Ns3CallbackImpl__Void_Ns3Time_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -7032,7 +6882,7 @@ def register_Ns3CallbackImpl__Void_Ns3Time_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_N cls.add_method('operator()', 'void', [param('ns3::Time', 'arg0')], - custom_name='__call__', is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') return def register_Ns3CallbackImpl__Void_Unsigned_int_Unsigned_int_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -7054,7 +6904,7 @@ def register_Ns3CallbackImpl__Void_Unsigned_int_Unsigned_int_Ns3Empty_Ns3Empty_N cls.add_method('operator()', 'void', [param('unsigned int', 'arg0'), param('unsigned int', 'arg1')], - custom_name='__call__', is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') return def register_Ns3QueueDiscItem_methods(root_module, cls): @@ -7092,7 +6942,7 @@ def register_Ns3QueueDiscItem_methods(root_module, cls): cls.add_method('AddHeader', 'void', [], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## queue-item.h (module 'network'): void ns3::QueueDiscItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', @@ -7102,7 +6952,7 @@ def register_Ns3QueueDiscItem_methods(root_module, cls): cls.add_method('Mark', 'bool', [], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## queue-item.h (module 'network'): uint32_t ns3::QueueDiscItem::Hash(uint32_t perturbation=0) const [member function] cls.add_method('Hash', 'uint32_t', @@ -7119,7 +6969,7 @@ def register_Ns3HashImplementation_methods(root_module, cls): cls.add_method('GetHash32', 'uint32_t', [param('char const *', 'buffer'), param('std::size_t const', 'size')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## hash-function.h (module 'core'): uint64_t ns3::Hash::Implementation::GetHash64(char const * buffer, std::size_t const size) [member function] cls.add_method('GetHash64', 'uint64_t', @@ -7129,7 +6979,7 @@ def register_Ns3HashImplementation_methods(root_module, cls): cls.add_method('clear', 'void', [], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) return def register_Ns3HashFunctionFnv1a_methods(root_module, cls): diff --git a/src/traffic-control/bindings/modulegen__gcc_LP64.py b/src/traffic-control/bindings/modulegen__gcc_LP64.py index d004c5231c0..49471e0fd6f 100644 --- a/src/traffic-control/bindings/modulegen__gcc_LP64.py +++ b/src/traffic-control/bindings/modulegen__gcc_LP64.py @@ -32,9 +32,9 @@ def register_types(module): module.add_class('AttributeConstructionList', import_from_module='ns.core') ## attribute-construction-list.h (module 'core'): ns3::AttributeConstructionList::Item [struct] module.add_class('Item', import_from_module='ns.core', outer_class=root_module['ns3::AttributeConstructionList']) - typehandlers.add_type_alias('std::list< ns3::AttributeConstructionList::Item > const_iterator', 'ns3::AttributeConstructionList::CIterator') - typehandlers.add_type_alias('std::list< ns3::AttributeConstructionList::Item > const_iterator*', 'ns3::AttributeConstructionList::CIterator*') - typehandlers.add_type_alias('std::list< ns3::AttributeConstructionList::Item > const_iterator&', 'ns3::AttributeConstructionList::CIterator&') + typehandlers.add_type_alias(u'std::list< ns3::AttributeConstructionList::Item > const_iterator', u'ns3::AttributeConstructionList::CIterator') + typehandlers.add_type_alias(u'std::list< ns3::AttributeConstructionList::Item > const_iterator*', u'ns3::AttributeConstructionList::CIterator*') + typehandlers.add_type_alias(u'std::list< ns3::AttributeConstructionList::Item > const_iterator&', u'ns3::AttributeConstructionList::CIterator&') ## buffer.h (module 'network'): ns3::Buffer [class] module.add_class('Buffer', import_from_module='ns.network') ## buffer.h (module 'network'): ns3::Buffer::Iterator [class] @@ -119,9 +119,9 @@ def register_types(module): module.add_class('Ipv6Prefix', import_from_module='ns.network') ## mac48-address.h (module 'network'): ns3::Mac48Address [class] module.add_class('Mac48Address', import_from_module='ns.network') - typehandlers.add_type_alias('void ( * ) ( ns3::Mac48Address )', 'ns3::Mac48Address::TracedCallback') - typehandlers.add_type_alias('void ( * ) ( ns3::Mac48Address )*', 'ns3::Mac48Address::TracedCallback*') - typehandlers.add_type_alias('void ( * ) ( ns3::Mac48Address )&', 'ns3::Mac48Address::TracedCallback&') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Mac48Address )', u'ns3::Mac48Address::TracedCallback') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Mac48Address )*', u'ns3::Mac48Address::TracedCallback*') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Mac48Address )&', u'ns3::Mac48Address::TracedCallback&') ## mac48-address.h (module 'network'): ns3::Mac48Address [class] root_module['ns3::Mac48Address'].implicitly_converts_to(root_module['ns3::Address']) ## mac8-address.h (module 'network'): ns3::Mac8Address [class] @@ -130,11 +130,11 @@ def register_types(module): root_module['ns3::Mac8Address'].implicitly_converts_to(root_module['ns3::Address']) ## net-device-container.h (module 'network'): ns3::NetDeviceContainer [class] module.add_class('NetDeviceContainer', import_from_module='ns.network') - typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::NetDevice > > const_iterator', 'ns3::NetDeviceContainer::Iterator') - typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::NetDevice > > const_iterator*', 'ns3::NetDeviceContainer::Iterator*') - typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::NetDevice > > const_iterator&', 'ns3::NetDeviceContainer::Iterator&') + typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::NetDevice > > const_iterator', u'ns3::NetDeviceContainer::Iterator') + typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::NetDevice > > const_iterator*', u'ns3::NetDeviceContainer::Iterator*') + typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::NetDevice > > const_iterator&', u'ns3::NetDeviceContainer::Iterator&') ## object-base.h (module 'core'): ns3::ObjectBase [class] - module.add_class('ObjectBase', import_from_module='ns.core', allow_subclassing=True) + module.add_class('ObjectBase', allow_subclassing=True, import_from_module='ns.core') ## object.h (module 'core'): ns3::ObjectDeleter [struct] module.add_class('ObjectDeleter', import_from_module='ns.core') ## object-factory.h (module 'core'): ns3::ObjectFactory [class] @@ -157,17 +157,17 @@ def register_types(module): module.add_class('TagData', import_from_module='ns.network', outer_class=root_module['ns3::PacketTagList']) ## queue-disc-container.h (module 'traffic-control'): ns3::QueueDiscContainer [class] module.add_class('QueueDiscContainer') - typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::QueueDisc > > const_iterator', 'ns3::QueueDiscContainer::ConstIterator') - typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::QueueDisc > > const_iterator*', 'ns3::QueueDiscContainer::ConstIterator*') - typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::QueueDisc > > const_iterator&', 'ns3::QueueDiscContainer::ConstIterator&') + typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::QueueDisc > > const_iterator', u'ns3::QueueDiscContainer::ConstIterator') + typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::QueueDisc > > const_iterator*', u'ns3::QueueDiscContainer::ConstIterator*') + typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::QueueDisc > > const_iterator&', u'ns3::QueueDiscContainer::ConstIterator&') ## traffic-control-helper.h (module 'traffic-control'): ns3::QueueDiscFactory [class] module.add_class('QueueDiscFactory') ## queue-size.h (module 'network'): ns3::QueueSize [class] module.add_class('QueueSize', import_from_module='ns.network') ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount [class] - module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::ObjectBase'], template_parameters=['ns3::Object', 'ns3::ObjectBase', 'ns3::ObjectDeleter']) + module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Object', 'ns3::ObjectBase', 'ns3::ObjectDeleter'], parent=root_module['ns3::ObjectBase'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) ## simulator.h (module 'core'): ns3::Simulator [class] - module.add_class('Simulator', import_from_module='ns.core', destructor_visibility='private') + module.add_class('Simulator', destructor_visibility='private', import_from_module='ns.core') ## simulator.h (module 'core'): ns3::Simulator [enumeration] module.add_enum('', ['NO_CONTEXT'], outer_class=root_module['ns3::Simulator'], import_from_module='ns.core') ## tag.h (module 'network'): ns3::Tag [class] @@ -183,21 +183,19 @@ def register_types(module): ## timer.h (module 'core'): ns3::Timer::State [enumeration] module.add_enum('State', ['RUNNING', 'EXPIRED', 'SUSPENDED'], outer_class=root_module['ns3::Timer'], import_from_module='ns.core') ## timer-impl.h (module 'core'): ns3::TimerImpl [class] - module.add_class('TimerImpl', import_from_module='ns.core', allow_subclassing=True) + module.add_class('TimerImpl', allow_subclassing=True, import_from_module='ns.core') ## traced-value.h (module 'core'): ns3::TracedValue [class] module.add_class('TracedValue', import_from_module='ns.core', template_parameters=['bool']) - ## traced-value.h (module 'core'): ns3::TracedValue [class] - module.add_class('TracedValue', import_from_module='ns.core', template_parameters=['long']) ## traced-value.h (module 'core'): ns3::TracedValue [class] module.add_class('TracedValue', import_from_module='ns.core', template_parameters=['unsigned int']) ## traffic-control-helper.h (module 'traffic-control'): ns3::TrafficControlHelper [class] module.add_class('TrafficControlHelper') - typehandlers.add_type_alias('std::vector< unsigned short >', 'ns3::TrafficControlHelper::ClassIdList') - typehandlers.add_type_alias('std::vector< unsigned short >*', 'ns3::TrafficControlHelper::ClassIdList*') - typehandlers.add_type_alias('std::vector< unsigned short >&', 'ns3::TrafficControlHelper::ClassIdList&') - typehandlers.add_type_alias('std::vector< unsigned short >', 'ns3::TrafficControlHelper::HandleList') - typehandlers.add_type_alias('std::vector< unsigned short >*', 'ns3::TrafficControlHelper::HandleList*') - typehandlers.add_type_alias('std::vector< unsigned short >&', 'ns3::TrafficControlHelper::HandleList&') + typehandlers.add_type_alias(u'std::vector< unsigned short >', u'ns3::TrafficControlHelper::ClassIdList') + typehandlers.add_type_alias(u'std::vector< unsigned short >*', u'ns3::TrafficControlHelper::ClassIdList*') + typehandlers.add_type_alias(u'std::vector< unsigned short >&', u'ns3::TrafficControlHelper::ClassIdList&') + typehandlers.add_type_alias(u'std::vector< unsigned short >', u'ns3::TrafficControlHelper::HandleList') + typehandlers.add_type_alias(u'std::vector< unsigned short >*', u'ns3::TrafficControlHelper::HandleList*') + typehandlers.add_type_alias(u'std::vector< unsigned short >&', u'ns3::TrafficControlHelper::HandleList&') ## type-id.h (module 'core'): ns3::TypeId [class] module.add_class('TypeId', import_from_module='ns.core') ## type-id.h (module 'core'): ns3::TypeId::AttributeFlag [enumeration] @@ -208,9 +206,9 @@ def register_types(module): module.add_class('AttributeInformation', import_from_module='ns.core', outer_class=root_module['ns3::TypeId']) ## type-id.h (module 'core'): ns3::TypeId::TraceSourceInformation [struct] module.add_class('TraceSourceInformation', import_from_module='ns.core', outer_class=root_module['ns3::TypeId']) - typehandlers.add_type_alias('uint32_t', 'ns3::TypeId::hash_t') - typehandlers.add_type_alias('uint32_t*', 'ns3::TypeId::hash_t*') - typehandlers.add_type_alias('uint32_t&', 'ns3::TypeId::hash_t&') + typehandlers.add_type_alias(u'uint32_t', u'ns3::TypeId::hash_t') + typehandlers.add_type_alias(u'uint32_t*', u'ns3::TypeId::hash_t*') + typehandlers.add_type_alias(u'uint32_t&', u'ns3::TypeId::hash_t&') ## empty.h (module 'core'): ns3::empty [class] module.add_class('empty', import_from_module='ns.core') ## int64x64-128.h (module 'core'): ns3::int64x64_t [class] @@ -233,12 +231,12 @@ def register_types(module): module.add_enum('WakeMode', ['WAKE_ROOT', 'WAKE_CHILD'], outer_class=root_module['ns3::QueueDisc']) ## queue-disc.h (module 'traffic-control'): ns3::QueueDisc::Stats [struct] module.add_class('Stats', outer_class=root_module['ns3::QueueDisc']) - typehandlers.add_type_alias('std::function< void ( ns3::Ptr< ns3::QueueDiscItem > ) >', 'ns3::QueueDisc::SendCallback') - typehandlers.add_type_alias('std::function< void ( ns3::Ptr< ns3::QueueDiscItem > ) >*', 'ns3::QueueDisc::SendCallback*') - typehandlers.add_type_alias('std::function< void ( ns3::Ptr< ns3::QueueDiscItem > ) >&', 'ns3::QueueDisc::SendCallback&') - typehandlers.add_type_alias('ns3::Queue< ns3::QueueDiscItem >', 'ns3::QueueDisc::InternalQueue') - typehandlers.add_type_alias('ns3::Queue< ns3::QueueDiscItem >*', 'ns3::QueueDisc::InternalQueue*') - typehandlers.add_type_alias('ns3::Queue< ns3::QueueDiscItem >&', 'ns3::QueueDisc::InternalQueue&') + typehandlers.add_type_alias(u'std::function< void ( ns3::Ptr< ns3::QueueDiscItem > ) >', u'ns3::QueueDisc::SendCallback') + typehandlers.add_type_alias(u'std::function< void ( ns3::Ptr< ns3::QueueDiscItem > ) >*', u'ns3::QueueDisc::SendCallback*') + typehandlers.add_type_alias(u'std::function< void ( ns3::Ptr< ns3::QueueDiscItem > ) >&', u'ns3::QueueDisc::SendCallback&') + typehandlers.add_type_alias(u'ns3::Queue< ns3::QueueDiscItem >', u'ns3::QueueDisc::InternalQueue') + typehandlers.add_type_alias(u'ns3::Queue< ns3::QueueDiscItem >*', u'ns3::QueueDisc::InternalQueue*') + typehandlers.add_type_alias(u'ns3::Queue< ns3::QueueDiscItem >&', u'ns3::QueueDisc::InternalQueue&') ## queue-disc.h (module 'traffic-control'): ns3::QueueDiscClass [class] module.add_class('QueueDiscClass', parent=root_module['ns3::Object']) ## random-variable-stream.h (module 'core'): ns3::RandomVariableStream [class] @@ -252,43 +250,43 @@ def register_types(module): ## random-variable-stream.h (module 'core'): ns3::SequentialRandomVariable [class] module.add_class('SequentialRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::AttributeAccessor', 'ns3::empty', 'ns3::DefaultDeleter']) + module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::AttributeAccessor', '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 (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::AttributeChecker', 'ns3::empty', 'ns3::DefaultDeleter']) + module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::AttributeChecker', '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 (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::AttributeValue', 'ns3::empty', 'ns3::DefaultDeleter']) + module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', 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 (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::CallbackImplBase', 'ns3::empty', 'ns3::DefaultDeleter']) + module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', 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 (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::EventImpl', 'ns3::empty', 'ns3::DefaultDeleter']) + module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', 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 (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::Hash::Implementation', 'ns3::empty', 'ns3::DefaultDeleter']) + module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Hash::Implementation', '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 (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::NixVector', 'ns3::empty', 'ns3::DefaultDeleter']) + module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::NixVector', '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 (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::Packet', 'ns3::empty', 'ns3::DefaultDeleter']) + module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Packet', '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 (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::QueueItem', 'ns3::empty', 'ns3::DefaultDeleter']) + module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::QueueItem', '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 (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::TraceSourceAccessor', 'ns3::empty', 'ns3::DefaultDeleter']) + module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::TraceSourceAccessor', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) ## tbf-queue-disc.h (module 'traffic-control'): ns3::TbfQueueDisc [class] module.add_class('TbfQueueDisc', parent=root_module['ns3::QueueDisc']) ## nstime.h (module 'core'): ns3::Time [class] module.add_class('Time', import_from_module='ns.core') ## nstime.h (module 'core'): ns3::Time::Unit [enumeration] module.add_enum('Unit', ['Y', 'D', 'H', 'MIN', 'S', 'MS', 'US', 'NS', 'PS', 'FS', 'LAST'], outer_class=root_module['ns3::Time'], import_from_module='ns.core') - typehandlers.add_type_alias('void ( * ) ( ns3::Time )', 'ns3::Time::TracedCallback') - typehandlers.add_type_alias('void ( * ) ( ns3::Time )*', 'ns3::Time::TracedCallback*') - typehandlers.add_type_alias('void ( * ) ( ns3::Time )&', 'ns3::Time::TracedCallback&') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Time )', u'ns3::Time::TracedCallback') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Time )*', u'ns3::Time::TracedCallback*') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Time )&', u'ns3::Time::TracedCallback&') ## nstime.h (module 'core'): ns3::Time [class] root_module['ns3::Time'].implicitly_converts_to(root_module['ns3::int64x64_t']) ## trace-source-accessor.h (module 'core'): ns3::TraceSourceAccessor [class] module.add_class('TraceSourceAccessor', import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::TraceSourceAccessor, ns3::empty, ns3::DefaultDeleter >']) ## traffic-control-layer.h (module 'traffic-control'): ns3::TrafficControlLayer [class] module.add_class('TrafficControlLayer', parent=root_module['ns3::Object']) - typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::QueueDisc > >', 'ns3::TrafficControlLayer::QueueDiscVector') - typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::QueueDisc > >*', 'ns3::TrafficControlLayer::QueueDiscVector*') - typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::QueueDisc > >&', 'ns3::TrafficControlLayer::QueueDiscVector&') + typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::QueueDisc > >', u'ns3::TrafficControlLayer::QueueDiscVector') + typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::QueueDisc > >*', u'ns3::TrafficControlLayer::QueueDiscVector*') + typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::QueueDisc > >&', u'ns3::TrafficControlLayer::QueueDiscVector&') ## trailer.h (module 'network'): ns3::Trailer [class] module.add_class('Trailer', import_from_module='ns.network', parent=root_module['ns3::Chunk']) ## random-variable-stream.h (module 'core'): ns3::TriangularRandomVariable [class] @@ -304,9 +302,9 @@ def register_types(module): ## attribute.h (module 'core'): ns3::AttributeAccessor [class] module.add_class('AttributeAccessor', import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::AttributeAccessor, ns3::empty, ns3::DefaultDeleter >']) ## attribute.h (module 'core'): ns3::AttributeChecker [class] - module.add_class('AttributeChecker', import_from_module='ns.core', automatic_type_narrowing=True, allow_subclassing=False, parent=root_module['ns3::SimpleRefCount< ns3::AttributeChecker, ns3::empty, ns3::DefaultDeleter >']) + module.add_class('AttributeChecker', allow_subclassing=False, automatic_type_narrowing=True, import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::AttributeChecker, ns3::empty, ns3::DefaultDeleter >']) ## attribute.h (module 'core'): ns3::AttributeValue [class] - module.add_class('AttributeValue', import_from_module='ns.core', automatic_type_narrowing=True, allow_subclassing=False, parent=root_module['ns3::SimpleRefCount< ns3::AttributeValue, ns3::empty, ns3::DefaultDeleter >']) + module.add_class('AttributeValue', allow_subclassing=False, automatic_type_narrowing=True, import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::AttributeValue, ns3::empty, ns3::DefaultDeleter >']) ## boolean.h (module 'core'): ns3::BooleanChecker [class] module.add_class('BooleanChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker']) ## boolean.h (module 'core'): ns3::BooleanValue [class] @@ -319,8 +317,6 @@ def register_types(module): module.add_class('CallbackValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) ## codel-queue-disc.h (module 'traffic-control'): ns3::CoDelQueueDisc [class] module.add_class('CoDelQueueDisc', parent=root_module['ns3::QueueDisc']) - ## cobalt-queue-disc.h (module 'traffic-control'): ns3::CobaltQueueDisc [class] - module.add_class('CobaltQueueDisc', parent=root_module['ns3::QueueDisc']) ## random-variable-stream.h (module 'core'): ns3::ConstantRandomVariable [class] module.add_class('ConstantRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## data-rate.h (module 'network'): ns3::DataRateChecker [class] @@ -389,25 +385,25 @@ def register_types(module): module.add_class('NetDevice', import_from_module='ns.network', parent=root_module['ns3::Object']) ## net-device.h (module 'network'): ns3::NetDevice::PacketType [enumeration] module.add_enum('PacketType', ['PACKET_HOST', 'NS3_PACKET_HOST', 'PACKET_BROADCAST', 'NS3_PACKET_BROADCAST', 'PACKET_MULTICAST', 'NS3_PACKET_MULTICAST', 'PACKET_OTHERHOST', 'NS3_PACKET_OTHERHOST'], outer_class=root_module['ns3::NetDevice'], import_from_module='ns.network') - typehandlers.add_type_alias('void ( * ) ( )', 'ns3::NetDevice::LinkChangeTracedCallback') - typehandlers.add_type_alias('void ( * ) ( )*', 'ns3::NetDevice::LinkChangeTracedCallback*') - typehandlers.add_type_alias('void ( * ) ( )&', 'ns3::NetDevice::LinkChangeTracedCallback&') - typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::NetDevice::ReceiveCallback') - typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::NetDevice::ReceiveCallback*') - typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::NetDevice::ReceiveCallback&') - typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >', 'ns3::NetDevice::PromiscReceiveCallback') - typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::NetDevice::PromiscReceiveCallback*') - typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::NetDevice::PromiscReceiveCallback&') + typehandlers.add_type_alias(u'void ( * ) ( )', u'ns3::NetDevice::LinkChangeTracedCallback') + typehandlers.add_type_alias(u'void ( * ) ( )*', u'ns3::NetDevice::LinkChangeTracedCallback*') + typehandlers.add_type_alias(u'void ( * ) ( )&', u'ns3::NetDevice::LinkChangeTracedCallback&') + typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::NetDevice::ReceiveCallback') + typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::NetDevice::ReceiveCallback*') + typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::NetDevice::ReceiveCallback&') + typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >', u'ns3::NetDevice::PromiscReceiveCallback') + typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::NetDevice::PromiscReceiveCallback*') + typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::NetDevice::PromiscReceiveCallback&') ## nix-vector.h (module 'network'): ns3::NixVector [class] module.add_class('NixVector', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::NixVector, ns3::empty, ns3::DefaultDeleter >']) ## node.h (module 'network'): ns3::Node [class] module.add_class('Node', import_from_module='ns.network', parent=root_module['ns3::Object']) - typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >', 'ns3::Node::ProtocolHandler') - typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::Node::ProtocolHandler*') - typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::Node::ProtocolHandler&') - typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::Node::DeviceAdditionListener') - typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::Node::DeviceAdditionListener*') - typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::Node::DeviceAdditionListener&') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >', u'ns3::Node::ProtocolHandler') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::Node::ProtocolHandler*') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::Node::ProtocolHandler&') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::Node::DeviceAdditionListener') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::Node::DeviceAdditionListener*') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::Node::DeviceAdditionListener&') ## random-variable-stream.h (module 'core'): ns3::NormalRandomVariable [class] module.add_class('NormalRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## object-factory.h (module 'core'): ns3::ObjectFactoryChecker [class] @@ -416,24 +412,24 @@ def register_types(module): module.add_class('ObjectFactoryValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) ## packet.h (module 'network'): ns3::Packet [class] module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const > )', 'ns3::Packet::TracedCallback') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const > )*', 'ns3::Packet::TracedCallback*') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const > )&', 'ns3::Packet::TracedCallback&') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )', 'ns3::Packet::AddressTracedCallback') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )*', 'ns3::Packet::AddressTracedCallback*') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )&', 'ns3::Packet::AddressTracedCallback&') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )', 'ns3::Packet::TwoAddressTracedCallback') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )*', 'ns3::Packet::TwoAddressTracedCallback*') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )&', 'ns3::Packet::TwoAddressTracedCallback&') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )', 'ns3::Packet::Mac48AddressTracedCallback') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )*', 'ns3::Packet::Mac48AddressTracedCallback*') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )&', 'ns3::Packet::Mac48AddressTracedCallback&') - typehandlers.add_type_alias('void ( * ) ( uint32_t, uint32_t )', 'ns3::Packet::SizeTracedCallback') - typehandlers.add_type_alias('void ( * ) ( uint32_t, uint32_t )*', 'ns3::Packet::SizeTracedCallback*') - typehandlers.add_type_alias('void ( * ) ( uint32_t, uint32_t )&', 'ns3::Packet::SizeTracedCallback&') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, double )', 'ns3::Packet::SinrTracedCallback') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, double )*', 'ns3::Packet::SinrTracedCallback*') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, double )&', 'ns3::Packet::SinrTracedCallback&') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > )', u'ns3::Packet::TracedCallback') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > )*', u'ns3::Packet::TracedCallback*') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > )&', u'ns3::Packet::TracedCallback&') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )', u'ns3::Packet::AddressTracedCallback') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )*', u'ns3::Packet::AddressTracedCallback*') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )&', u'ns3::Packet::AddressTracedCallback&') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )', u'ns3::Packet::TwoAddressTracedCallback') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )*', u'ns3::Packet::TwoAddressTracedCallback*') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )&', u'ns3::Packet::TwoAddressTracedCallback&') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )', u'ns3::Packet::Mac48AddressTracedCallback') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )*', u'ns3::Packet::Mac48AddressTracedCallback*') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )&', u'ns3::Packet::Mac48AddressTracedCallback&') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t )', u'ns3::Packet::SizeTracedCallback') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t )*', u'ns3::Packet::SizeTracedCallback*') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t )&', u'ns3::Packet::SizeTracedCallback&') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, double )', u'ns3::Packet::SinrTracedCallback') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, double )*', u'ns3::Packet::SinrTracedCallback*') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, double )&', u'ns3::Packet::SinrTracedCallback&') ## random-variable-stream.h (module 'core'): ns3::ParetoRandomVariable [class] module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## pfifo-fast-queue-disc.h (module 'traffic-control'): ns3::PfifoFastQueueDisc [class] @@ -452,9 +448,9 @@ def register_types(module): module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) ## queue-item.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::QueueItem const > )', 'ns3::QueueItem::TracedCallback') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::QueueItem const > )*', 'ns3::QueueItem::TracedCallback*') - typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::QueueItem const > )&', 'ns3::QueueItem::TracedCallback&') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::QueueItem const > )', u'ns3::QueueItem::TracedCallback') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::QueueItem const > )*', u'ns3::QueueItem::TracedCallback*') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::QueueItem const > )&', u'ns3::QueueItem::TracedCallback&') ## queue-size.h (module 'network'): ns3::QueueSizeChecker [class] module.add_class('QueueSizeChecker', import_from_module='ns.network', parent=root_module['ns3::AttributeChecker']) ## queue-size.h (module 'network'): ns3::QueueSizeValue [class] @@ -476,34 +472,32 @@ def register_types(module): ## address.h (module 'network'): ns3::AddressValue [class] module.add_class('AddressValue', import_from_module='ns.network', parent=root_module['ns3::AttributeValue']) ## callback.h (module 'core'): ns3::CallbackImpl [class] - module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['ns3::ObjectBase *', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) + module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['ns3::ObjectBase *', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) ## callback.h (module 'core'): ns3::CallbackImpl [class] - module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'bool', 'bool', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) - ## callback.h (module 'core'): ns3::CallbackImpl [class] - module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'long', 'long', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) + module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'bool', 'bool', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) ## callback.h (module 'core'): ns3::CallbackImpl, const char *, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> [class] - module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'ns3::Ptr', 'const char *', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) + module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Ptr', 'const char *', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) ## callback.h (module 'core'): ns3::CallbackImpl, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> [class] - module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) + module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) ## callback.h (module 'core'): ns3::CallbackImpl, ns3::Ptr, unsigned short, const ns3::Address &, const ns3::Address &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty> [class] - module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'ns3::Ptr', 'ns3::Ptr', 'unsigned short', 'const ns3::Address &', 'const ns3::Address &', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty']) + module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Ptr', 'ns3::Ptr', 'unsigned short', 'const ns3::Address &', 'const ns3::Address &', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) ## callback.h (module 'core'): ns3::CallbackImpl, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> [class] - module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) + module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) ## callback.h (module 'core'): ns3::CallbackImpl [class] - module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'ns3::Time', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) + module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Time', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) ## callback.h (module 'core'): ns3::CallbackImpl [class] - module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'unsigned int', 'unsigned int', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) + module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'unsigned int', 'unsigned int', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) ## queue-item.h (module 'network'): ns3::QueueDiscItem [class] module.add_class('QueueDiscItem', import_from_module='ns.network', parent=root_module['ns3::QueueItem']) - module.add_container('std::vector< ns3::Ptr< ns3::QueueDisc > >', 'ns3::Ptr< ns3::QueueDisc >', container_type='vector') - module.add_container('std::vector< unsigned short >', 'short unsigned int', container_type='vector') - module.add_container('ns3::TrafficControlHelper::ClassIdList', 'short unsigned int', container_type='vector') - module.add_container('ns3::TrafficControlHelper::HandleList', 'short unsigned int', container_type='vector') - module.add_container('std::map< std::string, unsigned int >', ('std::string', 'unsigned int'), container_type='map') - module.add_container('std::map< std::string, unsigned long >', ('std::string', 'long unsigned int'), container_type='map') - typehandlers.add_type_alias('std::array< unsigned short, 16 >', 'ns3::Priomap') - typehandlers.add_type_alias('std::array< unsigned short, 16 >*', 'ns3::Priomap*') - typehandlers.add_type_alias('std::array< unsigned short, 16 >&', 'ns3::Priomap&') + module.add_container('std::vector< ns3::Ptr< ns3::QueueDisc > >', 'ns3::Ptr< ns3::QueueDisc >', container_type=u'vector') + module.add_container('std::vector< unsigned short >', 'short unsigned int', container_type=u'vector') + module.add_container('ns3::TrafficControlHelper::ClassIdList', 'short unsigned int', container_type=u'vector') + module.add_container('ns3::TrafficControlHelper::HandleList', 'short unsigned int', container_type=u'vector') + module.add_container('std::map< std::string, unsigned int >', ('std::string', 'unsigned int'), container_type=u'map') + module.add_container('std::map< std::string, unsigned long >', ('std::string', 'long unsigned int'), container_type=u'map') + typehandlers.add_type_alias(u'std::array< unsigned short, 16 >', u'ns3::Priomap') + typehandlers.add_type_alias(u'std::array< unsigned short, 16 >*', u'ns3::Priomap*') + typehandlers.add_type_alias(u'std::array< unsigned short, 16 >&', u'ns3::Priomap&') ## Register a nested module for the namespace FatalImpl @@ -538,12 +532,12 @@ def register_types_ns3_Hash(module): ## hash-function.h (module 'core'): ns3::Hash::Implementation [class] module.add_class('Implementation', import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::Hash::Implementation, ns3::empty, ns3::DefaultDeleter >']) - typehandlers.add_type_alias('uint32_t ( * ) ( char const *, std::size_t const )', 'ns3::Hash::Hash32Function_ptr') - typehandlers.add_type_alias('uint32_t ( * ) ( char const *, std::size_t const )*', 'ns3::Hash::Hash32Function_ptr*') - typehandlers.add_type_alias('uint32_t ( * ) ( char const *, std::size_t const )&', 'ns3::Hash::Hash32Function_ptr&') - typehandlers.add_type_alias('uint64_t ( * ) ( char const *, std::size_t const )', 'ns3::Hash::Hash64Function_ptr') - typehandlers.add_type_alias('uint64_t ( * ) ( char const *, std::size_t const )*', 'ns3::Hash::Hash64Function_ptr*') - typehandlers.add_type_alias('uint64_t ( * ) ( char const *, std::size_t const )&', 'ns3::Hash::Hash64Function_ptr&') + typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, std::size_t const )', u'ns3::Hash::Hash32Function_ptr') + typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, std::size_t const )*', u'ns3::Hash::Hash32Function_ptr*') + typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, std::size_t const )&', u'ns3::Hash::Hash32Function_ptr&') + typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, std::size_t const )', u'ns3::Hash::Hash64Function_ptr') + typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, std::size_t const )*', u'ns3::Hash::Hash64Function_ptr*') + typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, std::size_t const )&', u'ns3::Hash::Hash64Function_ptr&') ## Register a nested module for the namespace Function @@ -566,36 +560,36 @@ def register_types_ns3_Hash_Function(module): def register_types_ns3_TracedValueCallback(module): root_module = module.get_root() - typehandlers.add_type_alias('void ( * ) ( bool, bool )', 'ns3::TracedValueCallback::Bool') - typehandlers.add_type_alias('void ( * ) ( bool, bool )*', 'ns3::TracedValueCallback::Bool*') - typehandlers.add_type_alias('void ( * ) ( bool, bool )&', 'ns3::TracedValueCallback::Bool&') - typehandlers.add_type_alias('void ( * ) ( int8_t, int8_t )', 'ns3::TracedValueCallback::Int8') - typehandlers.add_type_alias('void ( * ) ( int8_t, int8_t )*', 'ns3::TracedValueCallback::Int8*') - typehandlers.add_type_alias('void ( * ) ( int8_t, int8_t )&', 'ns3::TracedValueCallback::Int8&') - typehandlers.add_type_alias('void ( * ) ( uint8_t, uint8_t )', 'ns3::TracedValueCallback::Uint8') - typehandlers.add_type_alias('void ( * ) ( uint8_t, uint8_t )*', 'ns3::TracedValueCallback::Uint8*') - typehandlers.add_type_alias('void ( * ) ( uint8_t, uint8_t )&', 'ns3::TracedValueCallback::Uint8&') - typehandlers.add_type_alias('void ( * ) ( int16_t, int16_t )', 'ns3::TracedValueCallback::Int16') - typehandlers.add_type_alias('void ( * ) ( int16_t, int16_t )*', 'ns3::TracedValueCallback::Int16*') - typehandlers.add_type_alias('void ( * ) ( int16_t, int16_t )&', 'ns3::TracedValueCallback::Int16&') - typehandlers.add_type_alias('void ( * ) ( uint16_t, uint16_t )', 'ns3::TracedValueCallback::Uint16') - typehandlers.add_type_alias('void ( * ) ( uint16_t, uint16_t )*', 'ns3::TracedValueCallback::Uint16*') - typehandlers.add_type_alias('void ( * ) ( uint16_t, uint16_t )&', 'ns3::TracedValueCallback::Uint16&') - typehandlers.add_type_alias('void ( * ) ( int32_t, int32_t )', 'ns3::TracedValueCallback::Int32') - typehandlers.add_type_alias('void ( * ) ( int32_t, int32_t )*', 'ns3::TracedValueCallback::Int32*') - typehandlers.add_type_alias('void ( * ) ( int32_t, int32_t )&', 'ns3::TracedValueCallback::Int32&') - typehandlers.add_type_alias('void ( * ) ( uint32_t, uint32_t )', 'ns3::TracedValueCallback::Uint32') - typehandlers.add_type_alias('void ( * ) ( uint32_t, uint32_t )*', 'ns3::TracedValueCallback::Uint32*') - typehandlers.add_type_alias('void ( * ) ( uint32_t, uint32_t )&', 'ns3::TracedValueCallback::Uint32&') - typehandlers.add_type_alias('void ( * ) ( double, double )', 'ns3::TracedValueCallback::Double') - typehandlers.add_type_alias('void ( * ) ( double, double )*', 'ns3::TracedValueCallback::Double*') - typehandlers.add_type_alias('void ( * ) ( double, double )&', 'ns3::TracedValueCallback::Double&') - typehandlers.add_type_alias('void ( * ) ( )', 'ns3::TracedValueCallback::Void') - typehandlers.add_type_alias('void ( * ) ( )*', 'ns3::TracedValueCallback::Void*') - typehandlers.add_type_alias('void ( * ) ( )&', 'ns3::TracedValueCallback::Void&') - typehandlers.add_type_alias('void ( * ) ( ns3::Time, ns3::Time )', 'ns3::TracedValueCallback::Time') - typehandlers.add_type_alias('void ( * ) ( ns3::Time, ns3::Time )*', 'ns3::TracedValueCallback::Time*') - typehandlers.add_type_alias('void ( * ) ( ns3::Time, ns3::Time )&', 'ns3::TracedValueCallback::Time&') + typehandlers.add_type_alias(u'void ( * ) ( bool, bool )', u'ns3::TracedValueCallback::Bool') + typehandlers.add_type_alias(u'void ( * ) ( bool, bool )*', u'ns3::TracedValueCallback::Bool*') + typehandlers.add_type_alias(u'void ( * ) ( bool, bool )&', u'ns3::TracedValueCallback::Bool&') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t )', u'ns3::TracedValueCallback::Int8') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t )*', u'ns3::TracedValueCallback::Int8*') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t )&', u'ns3::TracedValueCallback::Int8&') + typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t )', u'ns3::TracedValueCallback::Uint8') + typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t )*', u'ns3::TracedValueCallback::Uint8*') + typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t )&', u'ns3::TracedValueCallback::Uint8&') + typehandlers.add_type_alias(u'void ( * ) ( int16_t, int16_t )', u'ns3::TracedValueCallback::Int16') + typehandlers.add_type_alias(u'void ( * ) ( int16_t, int16_t )*', u'ns3::TracedValueCallback::Int16*') + typehandlers.add_type_alias(u'void ( * ) ( int16_t, int16_t )&', u'ns3::TracedValueCallback::Int16&') + typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t )', u'ns3::TracedValueCallback::Uint16') + typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t )*', u'ns3::TracedValueCallback::Uint16*') + typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t )&', u'ns3::TracedValueCallback::Uint16&') + typehandlers.add_type_alias(u'void ( * ) ( int32_t, int32_t )', u'ns3::TracedValueCallback::Int32') + typehandlers.add_type_alias(u'void ( * ) ( int32_t, int32_t )*', u'ns3::TracedValueCallback::Int32*') + typehandlers.add_type_alias(u'void ( * ) ( int32_t, int32_t )&', u'ns3::TracedValueCallback::Int32&') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t )', u'ns3::TracedValueCallback::Uint32') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t )*', u'ns3::TracedValueCallback::Uint32*') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t )&', u'ns3::TracedValueCallback::Uint32&') + typehandlers.add_type_alias(u'void ( * ) ( double, double )', u'ns3::TracedValueCallback::Double') + typehandlers.add_type_alias(u'void ( * ) ( double, double )*', u'ns3::TracedValueCallback::Double*') + typehandlers.add_type_alias(u'void ( * ) ( double, double )&', u'ns3::TracedValueCallback::Double&') + typehandlers.add_type_alias(u'void ( * ) ( )', u'ns3::TracedValueCallback::Void') + typehandlers.add_type_alias(u'void ( * ) ( )*', u'ns3::TracedValueCallback::Void*') + typehandlers.add_type_alias(u'void ( * ) ( )&', u'ns3::TracedValueCallback::Void&') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Time, ns3::Time )', u'ns3::TracedValueCallback::Time') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Time, ns3::Time )*', u'ns3::TracedValueCallback::Time*') + typehandlers.add_type_alias(u'void ( * ) ( ns3::Time, ns3::Time )&', u'ns3::TracedValueCallback::Time&') def register_types_ns3_internal(module): root_module = module.get_root() @@ -661,7 +655,6 @@ def register_methods(root_module): register_Ns3Timer_methods(root_module, root_module['ns3::Timer']) register_Ns3TimerImpl_methods(root_module, root_module['ns3::TimerImpl']) register_Ns3TracedValue__Bool_methods(root_module, root_module['ns3::TracedValue< bool >']) - register_Ns3TracedValue__Long_methods(root_module, root_module['ns3::TracedValue< long >']) register_Ns3TracedValue__Unsigned_int_methods(root_module, root_module['ns3::TracedValue< unsigned int >']) register_Ns3TrafficControlHelper_methods(root_module, root_module['ns3::TrafficControlHelper']) register_Ns3TypeId_methods(root_module, root_module['ns3::TypeId']) @@ -709,7 +702,6 @@ def register_methods(root_module): register_Ns3CallbackImplBase_methods(root_module, root_module['ns3::CallbackImplBase']) register_Ns3CallbackValue_methods(root_module, root_module['ns3::CallbackValue']) register_Ns3CoDelQueueDisc_methods(root_module, root_module['ns3::CoDelQueueDisc']) - register_Ns3CobaltQueueDisc_methods(root_module, root_module['ns3::CobaltQueueDisc']) register_Ns3ConstantRandomVariable_methods(root_module, root_module['ns3::ConstantRandomVariable']) register_Ns3DataRateChecker_methods(root_module, root_module['ns3::DataRateChecker']) register_Ns3DataRateValue_methods(root_module, root_module['ns3::DataRateValue']) @@ -767,7 +759,6 @@ def register_methods(root_module): register_Ns3AddressValue_methods(root_module, root_module['ns3::AddressValue']) register_Ns3CallbackImpl__Ns3ObjectBase___star___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< ns3::ObjectBase *, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) register_Ns3CallbackImpl__Void_Bool_Bool_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, bool, bool, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) - register_Ns3CallbackImpl__Void_Long_Long_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, long, long, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) register_Ns3CallbackImpl__Void_Ns3Ptr__lt__const_ns3QueueDiscItem__gt___Const_char___star___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, ns3::Ptr, const char *, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) register_Ns3CallbackImpl__Void_Ns3Ptr__lt__const_ns3QueueDiscItem__gt___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, ns3::Ptr, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) register_Ns3CallbackImpl__Void_Ns3Ptr__lt__ns3NetDevice__gt___Ns3Ptr__lt__const_ns3Packet__gt___Unsigned_short_Const_ns3Address___amp___Const_ns3Address___amp___Ns3NetDevicePacketType_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, ns3::Ptr, ns3::Ptr, unsigned short, const ns3::Address &, const ns3::Address &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >']) @@ -1287,7 +1278,7 @@ def register_Ns3DataRate_methods(root_module, cls): cls.add_method('CalculateTxTime', 'double', [param('uint32_t', 'bytes')], - is_const=True, deprecated=True) + deprecated=True, is_const=True) ## data-rate.h (module 'network'): uint64_t ns3::DataRate::GetBitRate() const [member function] cls.add_method('GetBitRate', 'uint64_t', @@ -1798,7 +1789,7 @@ def register_Ns3Ipv6Address_methods(root_module, cls): cls.add_method('IsAllHostsMulticast', 'bool', [], - is_const=True, deprecated=True) + deprecated=True, is_const=True) ## ipv6-address.h (module 'network'): bool ns3::Ipv6Address::IsAllNodesMulticast() const [member function] cls.add_method('IsAllNodesMulticast', 'bool', @@ -2165,7 +2156,7 @@ def register_Ns3ObjectBase_methods(root_module, cls): cls.add_method('GetInstanceTypeId', 'ns3::TypeId', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## object-base.h (module 'core'): static ns3::TypeId ns3::ObjectBase::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -2204,7 +2195,7 @@ def register_Ns3ObjectBase_methods(root_module, cls): cls.add_method('NotifyConstructionCompleted', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) return def register_Ns3ObjectDeleter_methods(root_module, cls): @@ -2237,11 +2228,6 @@ def register_Ns3ObjectFactory_methods(root_module, cls): 'ns3::TypeId', [], is_const=True) - ## object-factory.h (module 'core'): bool ns3::ObjectFactory::IsTypeIdSet() const [member function] - cls.add_method('IsTypeIdSet', - 'bool', - [], - is_const=True) ## object-factory.h (module 'core'): void ns3::ObjectFactory::Set(std::string name, ns3::AttributeValue const & value) [member function] cls.add_method('Set', 'void', @@ -2648,12 +2634,12 @@ def register_Ns3Tag_methods(root_module, cls): cls.add_method('Deserialize', 'void', [param('ns3::TagBuffer', 'i')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## tag.h (module 'network'): uint32_t ns3::Tag::GetSerializedSize() const [member function] cls.add_method('GetSerializedSize', 'uint32_t', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## tag.h (module 'network'): static ns3::TypeId ns3::Tag::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -2663,12 +2649,12 @@ def register_Ns3Tag_methods(root_module, cls): cls.add_method('Print', 'void', [param('std::ostream &', 'os')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## tag.h (module 'network'): void ns3::Tag::Serialize(ns3::TagBuffer i) const [member function] cls.add_method('Serialize', 'void', [param('ns3::TagBuffer', 'i')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) return def register_Ns3TagBuffer_methods(root_module, cls): @@ -2818,12 +2804,12 @@ def register_Ns3TimerImpl_methods(root_module, cls): cls.add_method('Invoke', 'void', [], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## timer-impl.h (module 'core'): ns3::EventId ns3::TimerImpl::Schedule(ns3::Time const & delay) [member function] cls.add_method('Schedule', 'ns3::EventId', [param('ns3::Time const &', 'delay')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) return def register_Ns3TracedValue__Bool_methods(root_module, cls): @@ -2860,40 +2846,6 @@ def register_Ns3TracedValue__Bool_methods(root_module, cls): [param('bool const &', 'v')]) return -def register_Ns3TracedValue__Long_methods(root_module, cls): - ## traced-value.h (module 'core'): ns3::TracedValue::TracedValue() [constructor] - cls.add_constructor([]) - ## traced-value.h (module 'core'): ns3::TracedValue::TracedValue(ns3::TracedValue const & o) [constructor] - cls.add_constructor([param('ns3::TracedValue< long > const &', 'o')]) - ## traced-value.h (module 'core'): ns3::TracedValue::TracedValue(long int const & v) [constructor] - cls.add_constructor([param('long int const &', 'v')]) - ## traced-value.h (module 'core'): void ns3::TracedValue::Connect(ns3::CallbackBase const & cb, std::string path) [member function] - cls.add_method('Connect', - 'void', - [param('ns3::CallbackBase const &', 'cb'), param('std::string', 'path')]) - ## traced-value.h (module 'core'): void ns3::TracedValue::ConnectWithoutContext(ns3::CallbackBase const & cb) [member function] - cls.add_method('ConnectWithoutContext', - 'void', - [param('ns3::CallbackBase const &', 'cb')]) - ## traced-value.h (module 'core'): void ns3::TracedValue::Disconnect(ns3::CallbackBase const & cb, std::string path) [member function] - cls.add_method('Disconnect', - 'void', - [param('ns3::CallbackBase const &', 'cb'), param('std::string', 'path')]) - ## traced-value.h (module 'core'): void ns3::TracedValue::DisconnectWithoutContext(ns3::CallbackBase const & cb) [member function] - cls.add_method('DisconnectWithoutContext', - 'void', - [param('ns3::CallbackBase const &', 'cb')]) - ## traced-value.h (module 'core'): long int ns3::TracedValue::Get() const [member function] - cls.add_method('Get', - 'long int', - [], - is_const=True) - ## traced-value.h (module 'core'): void ns3::TracedValue::Set(long int const & v) [member function] - cls.add_method('Set', - 'void', - [param('long int const &', 'v')]) - return - def register_Ns3TracedValue__Unsigned_int_methods(root_module, cls): ## traced-value.h (module 'core'): ns3::TracedValue::TracedValue() [constructor] cls.add_constructor([]) @@ -2953,10 +2905,10 @@ def register_Ns3TrafficControlHelper_methods(root_module, cls): cls.add_method('AddQueueDiscClasses', 'ns3::TrafficControlHelper::ClassIdList', [param('uint16_t', 'handle'), param('uint16_t', 'count'), param('std::string', 'type'), param('std::string', 'n01', default_value='""'), param('ns3::AttributeValue const &', 'v01', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n02', default_value='""'), param('ns3::AttributeValue const &', 'v02', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n03', default_value='""'), param('ns3::AttributeValue const &', 'v03', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n04', default_value='""'), param('ns3::AttributeValue const &', 'v04', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n05', default_value='""'), param('ns3::AttributeValue const &', 'v05', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n06', default_value='""'), param('ns3::AttributeValue const &', 'v06', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n07', default_value='""'), param('ns3::AttributeValue const &', 'v07', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n08', default_value='""'), param('ns3::AttributeValue const &', 'v08', default_value='ns3::EmptyAttributeValue()')]) - ## traffic-control-helper.h (module 'traffic-control'): static ns3::TrafficControlHelper ns3::TrafficControlHelper::Default(std::size_t nTxQueues=1) [member function] + ## traffic-control-helper.h (module 'traffic-control'): static ns3::TrafficControlHelper ns3::TrafficControlHelper::Default() [member function] cls.add_method('Default', 'ns3::TrafficControlHelper', - [param('std::size_t', 'nTxQueues', default_value='1')], + [], is_static=True) ## traffic-control-helper.h (module 'traffic-control'): ns3::QueueDiscContainer ns3::TrafficControlHelper::Install(ns3::NetDeviceContainer c) [member function] cls.add_method('Install', @@ -3209,11 +3161,11 @@ def register_Ns3Empty_methods(root_module, cls): return def register_Ns3Int64x64_t_methods(root_module, cls): - cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::int64x64_t'], param('ns3::Time const &', 'right')) - cls.add_binary_numeric_operator('+', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', 'right')) - cls.add_binary_numeric_operator('-', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', 'right')) - cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', 'right')) - cls.add_binary_numeric_operator('/', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', 'right')) + cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::int64x64_t'], param('ns3::Time const &', u'right')) + cls.add_binary_numeric_operator('+', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) + cls.add_binary_numeric_operator('-', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) + cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) + cls.add_binary_numeric_operator('/', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) cls.add_binary_comparison_operator('!=') cls.add_binary_comparison_operator('<=') cls.add_binary_comparison_operator('>=') @@ -3221,10 +3173,10 @@ def register_Ns3Int64x64_t_methods(root_module, cls): cls.add_binary_comparison_operator('==') cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('>') - cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', 'right')) - cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', 'right')) - cls.add_inplace_numeric_operator('*=', param('ns3::int64x64_t const &', 'right')) - cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', 'right')) + cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', u'right')) + cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', u'right')) + cls.add_inplace_numeric_operator('*=', param('ns3::int64x64_t const &', u'right')) + cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', u'right')) cls.add_unary_numeric_operator('-') ## int64x64-128.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor] cls.add_constructor([]) @@ -3285,7 +3237,7 @@ def register_Ns3Chunk_methods(root_module, cls): cls.add_method('Deserialize', 'uint32_t', [param('ns3::Buffer::Iterator', 'start')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## chunk.h (module 'network'): uint32_t ns3::Chunk::Deserialize(ns3::Buffer::Iterator start, ns3::Buffer::Iterator end) [member function] cls.add_method('Deserialize', 'uint32_t', @@ -3300,7 +3252,7 @@ def register_Ns3Chunk_methods(root_module, cls): cls.add_method('Print', 'void', [param('std::ostream &', 'os')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) return def register_Ns3Header_methods(root_module, cls): @@ -3313,12 +3265,12 @@ def register_Ns3Header_methods(root_module, cls): cls.add_method('Deserialize', 'uint32_t', [param('ns3::Buffer::Iterator', 'start')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## header.h (module 'network'): uint32_t ns3::Header::GetSerializedSize() const [member function] cls.add_method('GetSerializedSize', 'uint32_t', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## header.h (module 'network'): static ns3::TypeId ns3::Header::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -3328,12 +3280,12 @@ def register_Ns3Header_methods(root_module, cls): cls.add_method('Print', 'void', [param('std::ostream &', 'os')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## header.h (module 'network'): void ns3::Header::Serialize(ns3::Buffer::Iterator start) const [member function] cls.add_method('Serialize', 'void', [param('ns3::Buffer::Iterator', 'start')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) return def register_Ns3Object_methods(root_module, cls): @@ -3378,17 +3330,17 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) ## object.h (module 'core'): void ns3::Object::DoInitialize() [member function] cls.add_method('DoInitialize', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) ## object.h (module 'core'): void ns3::Object::NotifyNewAggregate() [member function] cls.add_method('NotifyNewAggregate', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) return def register_Ns3ObjectAggregateIterator_methods(root_module, cls): @@ -3428,12 +3380,12 @@ def register_Ns3PacketFilter_methods(root_module, cls): cls.add_method('CheckProtocol', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_const=True, is_virtual=True, is_pure_virtual=True, visibility='private') + is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True) ## packet-filter.h (module 'traffic-control'): int32_t ns3::PacketFilter::DoClassify(ns3::Ptr item) const [member function] cls.add_method('DoClassify', 'int32_t', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_const=True, is_virtual=True, is_pure_virtual=True, visibility='private') + is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True) return def register_Ns3QueueDisc_methods(root_module, cls): @@ -3576,12 +3528,12 @@ def register_Ns3QueueDisc_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) ## queue-disc.h (module 'traffic-control'): void ns3::QueueDisc::DoInitialize() [member function] cls.add_method('DoInitialize', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) ## queue-disc.h (module 'traffic-control'): void ns3::QueueDisc::DropAfterDequeue(ns3::Ptr item, char const * reason) [member function] cls.add_method('DropAfterDequeue', 'void', @@ -3601,27 +3553,27 @@ def register_Ns3QueueDisc_methods(root_module, cls): cls.add_method('CheckConfig', 'bool', [], - is_virtual=True, is_pure_virtual=True, visibility='private') + is_pure_virtual=True, visibility='private', is_virtual=True) ## queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::QueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - is_virtual=True, is_pure_virtual=True, visibility='private') + is_pure_virtual=True, visibility='private', is_virtual=True) ## queue-disc.h (module 'traffic-control'): bool ns3::QueueDisc::DoEnqueue(ns3::Ptr item) [member function] cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_virtual=True, is_pure_virtual=True, visibility='private') + is_pure_virtual=True, visibility='private', is_virtual=True) ## queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::QueueDisc::DoPeek() [member function] cls.add_method('DoPeek', 'ns3::Ptr< ns3::QueueDiscItem const >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## queue-disc.h (module 'traffic-control'): void ns3::QueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - is_virtual=True, is_pure_virtual=True, visibility='private') + is_pure_virtual=True, visibility='private', is_virtual=True) return def register_Ns3QueueDiscStats_methods(root_module, cls): @@ -3728,7 +3680,7 @@ def register_Ns3QueueDiscClass_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) return def register_Ns3RandomVariableStream_methods(root_module, cls): @@ -3761,12 +3713,12 @@ def register_Ns3RandomVariableStream_methods(root_module, cls): cls.add_method('GetValue', 'double', [], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## random-variable-stream.h (module 'core'): uint32_t ns3::RandomVariableStream::GetInteger() [member function] cls.add_method('GetInteger', 'uint32_t', [], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## random-variable-stream.h (module 'core'): ns3::RngStream * ns3::RandomVariableStream::Peek() const [member function] cls.add_method('Peek', 'ns3::RngStream *', @@ -3834,32 +3786,32 @@ def register_Ns3RedQueueDisc_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) ## red-queue-disc.h (module 'traffic-control'): bool ns3::RedQueueDisc::DoEnqueue(ns3::Ptr item) [member function] cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## red-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::RedQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## red-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::RedQueueDisc::DoPeek() [member function] cls.add_method('DoPeek', 'ns3::Ptr< ns3::QueueDiscItem const >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## red-queue-disc.h (module 'traffic-control'): bool ns3::RedQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## red-queue-disc.h (module 'traffic-control'): void ns3::RedQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) return def register_Ns3SequentialRandomVariable_methods(root_module, cls): @@ -4030,27 +3982,27 @@ def register_Ns3TbfQueueDisc_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) ## tbf-queue-disc.h (module 'traffic-control'): bool ns3::TbfQueueDisc::DoEnqueue(ns3::Ptr item) [member function] cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## tbf-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::TbfQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## tbf-queue-disc.h (module 'traffic-control'): bool ns3::TbfQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## tbf-queue-disc.h (module 'traffic-control'): void ns3::TbfQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) return def register_Ns3Time_methods(root_module, cls): @@ -4060,15 +4012,15 @@ 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_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right')) - cls.add_binary_numeric_operator('-', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right')) - cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('int64_t const &', 'right')) - cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::int64x64_t const &', 'right')) - cls.add_binary_numeric_operator('/', root_module['ns3::int64x64_t'], root_module['ns3::Time'], param('ns3::Time const &', 'right')) - cls.add_binary_numeric_operator('/', root_module['ns3::Time'], root_module['ns3::Time'], param('int64_t const &', 'right')) - cls.add_binary_numeric_operator('/', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::int64x64_t const &', 'right')) - cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right')) - cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', '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('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() ## nstime.h (module 'core'): ns3::Time::Time() [constructor] cls.add_constructor([]) @@ -4263,22 +4215,22 @@ def register_Ns3TraceSourceAccessor_methods(root_module, cls): cls.add_method('Connect', 'bool', [param('ns3::ObjectBase *', 'obj', transfer_ownership=False), param('std::string', 'context'), param('ns3::CallbackBase const &', 'cb')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## trace-source-accessor.h (module 'core'): bool ns3::TraceSourceAccessor::ConnectWithoutContext(ns3::ObjectBase * obj, ns3::CallbackBase const & cb) const [member function] cls.add_method('ConnectWithoutContext', 'bool', [param('ns3::ObjectBase *', 'obj', transfer_ownership=False), param('ns3::CallbackBase const &', 'cb')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## trace-source-accessor.h (module 'core'): bool ns3::TraceSourceAccessor::Disconnect(ns3::ObjectBase * obj, std::string context, ns3::CallbackBase const & cb) const [member function] cls.add_method('Disconnect', 'bool', [param('ns3::ObjectBase *', 'obj', transfer_ownership=False), param('std::string', 'context'), param('ns3::CallbackBase const &', 'cb')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## trace-source-accessor.h (module 'core'): bool ns3::TraceSourceAccessor::DisconnectWithoutContext(ns3::ObjectBase * obj, ns3::CallbackBase const & cb) const [member function] cls.add_method('DisconnectWithoutContext', 'bool', [param('ns3::ObjectBase *', 'obj', transfer_ownership=False), param('ns3::CallbackBase const &', 'cb')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) return def register_Ns3TrafficControlLayer_methods(root_module, cls): @@ -4336,17 +4288,17 @@ def register_Ns3TrafficControlLayer_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) ## traffic-control-layer.h (module 'traffic-control'): void ns3::TrafficControlLayer::DoInitialize() [member function] cls.add_method('DoInitialize', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) ## traffic-control-layer.h (module 'traffic-control'): void ns3::TrafficControlLayer::NotifyNewAggregate() [member function] cls.add_method('NotifyNewAggregate', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) return def register_Ns3Trailer_methods(root_module, cls): @@ -4359,7 +4311,7 @@ def register_Ns3Trailer_methods(root_module, cls): cls.add_method('Deserialize', 'uint32_t', [param('ns3::Buffer::Iterator', 'end')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## trailer.h (module 'network'): uint32_t ns3::Trailer::Deserialize(ns3::Buffer::Iterator start, ns3::Buffer::Iterator end) [member function] cls.add_method('Deserialize', 'uint32_t', @@ -4369,7 +4321,7 @@ def register_Ns3Trailer_methods(root_module, cls): cls.add_method('GetSerializedSize', 'uint32_t', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## trailer.h (module 'network'): static ns3::TypeId ns3::Trailer::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -4379,12 +4331,12 @@ def register_Ns3Trailer_methods(root_module, cls): cls.add_method('Print', 'void', [param('std::ostream &', 'os')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## trailer.h (module 'network'): void ns3::Trailer::Serialize(ns3::Buffer::Iterator start) const [member function] cls.add_method('Serialize', 'void', [param('ns3::Buffer::Iterator', 'start')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) return def register_Ns3TriangularRandomVariable_methods(root_module, cls): @@ -4591,22 +4543,22 @@ def register_Ns3AttributeAccessor_methods(root_module, cls): cls.add_method('Get', 'bool', [param('ns3::ObjectBase const *', 'object'), param('ns3::AttributeValue &', 'attribute')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## attribute.h (module 'core'): bool ns3::AttributeAccessor::HasGetter() const [member function] cls.add_method('HasGetter', 'bool', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## attribute.h (module 'core'): bool ns3::AttributeAccessor::HasSetter() const [member function] cls.add_method('HasSetter', 'bool', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## attribute.h (module 'core'): bool ns3::AttributeAccessor::Set(ns3::ObjectBase * object, ns3::AttributeValue const & value) const [member function] cls.add_method('Set', 'bool', [param('ns3::ObjectBase *', 'object', transfer_ownership=False), param('ns3::AttributeValue const &', 'value')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) return def register_Ns3AttributeChecker_methods(root_module, cls): @@ -4618,17 +4570,17 @@ def register_Ns3AttributeChecker_methods(root_module, cls): cls.add_method('Check', 'bool', [param('ns3::AttributeValue const &', 'value')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## attribute.h (module 'core'): bool ns3::AttributeChecker::Copy(ns3::AttributeValue const & source, ns3::AttributeValue & destination) const [member function] cls.add_method('Copy', 'bool', [param('ns3::AttributeValue const &', 'source'), param('ns3::AttributeValue &', 'destination')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## attribute.h (module 'core'): ns3::Ptr ns3::AttributeChecker::Create() const [member function] cls.add_method('Create', 'ns3::Ptr< ns3::AttributeValue >', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## attribute.h (module 'core'): ns3::Ptr ns3::AttributeChecker::CreateValidValue(ns3::AttributeValue const & value) const [member function] cls.add_method('CreateValidValue', 'ns3::Ptr< ns3::AttributeValue >', @@ -4638,17 +4590,17 @@ def register_Ns3AttributeChecker_methods(root_module, cls): cls.add_method('GetUnderlyingTypeInformation', 'std::string', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## attribute.h (module 'core'): std::string ns3::AttributeChecker::GetValueTypeName() const [member function] cls.add_method('GetValueTypeName', 'std::string', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## attribute.h (module 'core'): bool ns3::AttributeChecker::HasUnderlyingTypeInformation() const [member function] cls.add_method('HasUnderlyingTypeInformation', 'bool', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) return def register_Ns3AttributeValue_methods(root_module, cls): @@ -4660,17 +4612,17 @@ def register_Ns3AttributeValue_methods(root_module, cls): cls.add_method('Copy', 'ns3::Ptr< ns3::AttributeValue >', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## attribute.h (module 'core'): bool ns3::AttributeValue::DeserializeFromString(std::string value, ns3::Ptr checker) [member function] cls.add_method('DeserializeFromString', 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## attribute.h (module 'core'): std::string ns3::AttributeValue::SerializeToString(ns3::Ptr checker) const [member function] cls.add_method('SerializeToString', 'std::string', [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) return def register_Ns3BooleanChecker_methods(root_module, cls): @@ -4730,12 +4682,12 @@ def register_Ns3CallbackImplBase_methods(root_module, cls): cls.add_method('GetTypeid', 'std::string', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## callback.h (module 'core'): bool ns3::CallbackImplBase::IsEqual(ns3::Ptr other) const [member function] cls.add_method('IsEqual', 'bool', [param('ns3::Ptr< ns3::CallbackImplBase const >', 'other')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::Demangle(std::string const & mangled) [member function] cls.add_method('Demangle', 'std::string', @@ -4745,67 +4697,62 @@ def register_Ns3CallbackImplBase_methods(root_module, cls): cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, template_parameters=['ns3::ObjectBase*'], visibility='protected') - ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] - cls.add_method('GetCppTypeid', - 'std::string', - [], - is_static=True, template_parameters=['void'], visibility='protected') + is_static=True, visibility='protected', template_parameters=[u'ns3::ObjectBase*']) ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, template_parameters=['unsigned int'], visibility='protected') + is_static=True, visibility='protected', template_parameters=[u'void']) ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, template_parameters=['long'], visibility='protected') + is_static=True, visibility='protected', template_parameters=[u'unsigned int']) ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, template_parameters=['bool'], visibility='protected') + is_static=True, visibility='protected', template_parameters=[u'bool']) ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, template_parameters=['ns3::Time'], visibility='protected') + is_static=True, visibility='protected', template_parameters=[u'ns3::Time']) ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, template_parameters=['ns3::Ptr '], visibility='protected') + is_static=True, visibility='protected', template_parameters=[u'ns3::Ptr ']) ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, template_parameters=['char const*'], visibility='protected') + is_static=True, visibility='protected', template_parameters=[u'char const*']) ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, template_parameters=['ns3::Ptr '], visibility='protected') + is_static=True, visibility='protected', template_parameters=[u'ns3::Ptr ']) ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, template_parameters=['ns3::Ptr '], visibility='protected') + is_static=True, visibility='protected', template_parameters=[u'ns3::Ptr ']) ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, template_parameters=['unsigned short'], visibility='protected') + is_static=True, visibility='protected', template_parameters=[u'unsigned short']) ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, template_parameters=['ns3::Address const&'], visibility='protected') + is_static=True, visibility='protected', template_parameters=[u'ns3::Address const&']) ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, template_parameters=['ns3::NetDevice::PacketType'], visibility='protected') + is_static=True, visibility='protected', template_parameters=[u'ns3::NetDevice::PacketType']) return def register_Ns3CallbackValue_methods(root_module, cls): @@ -4864,92 +4811,22 @@ def register_Ns3CoDelQueueDisc_methods(root_module, cls): cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## codel-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::CoDelQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## codel-queue-disc.h (module 'traffic-control'): bool ns3::CoDelQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## codel-queue-disc.h (module 'traffic-control'): void ns3::CoDelQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - is_virtual=True, visibility='private') - return - -def register_Ns3CobaltQueueDisc_methods(root_module, cls): - ## cobalt-queue-disc.h (module 'traffic-control'): static ns3::TypeId ns3::CobaltQueueDisc::GetTypeId() [member function] - cls.add_method('GetTypeId', - 'ns3::TypeId', - [], - is_static=True) - ## cobalt-queue-disc.h (module 'traffic-control'): ns3::CobaltQueueDisc::CobaltQueueDisc() [constructor] - cls.add_constructor([]) - ## cobalt-queue-disc.h (module 'traffic-control'): ns3::Time ns3::CobaltQueueDisc::GetTarget() [member function] - cls.add_method('GetTarget', - 'ns3::Time', - []) - ## cobalt-queue-disc.h (module 'traffic-control'): ns3::Time ns3::CobaltQueueDisc::GetInterval() [member function] - cls.add_method('GetInterval', - 'ns3::Time', - []) - ## cobalt-queue-disc.h (module 'traffic-control'): int64_t ns3::CobaltQueueDisc::GetDropNext() [member function] - cls.add_method('GetDropNext', - 'int64_t', - []) - ## cobalt-queue-disc.h (module 'traffic-control'): ns3::CobaltQueueDisc::TARGET_EXCEEDED_DROP [variable] - cls.add_static_attribute('TARGET_EXCEEDED_DROP', 'char const * const', is_const=True) - ## cobalt-queue-disc.h (module 'traffic-control'): ns3::CobaltQueueDisc::OVERLIMIT_DROP [variable] - cls.add_static_attribute('OVERLIMIT_DROP', 'char const * const', is_const=True) - ## cobalt-queue-disc.h (module 'traffic-control'): ns3::CobaltQueueDisc::FORCED_MARK [variable] - cls.add_static_attribute('FORCED_MARK', 'char const * const', is_const=True) - ## cobalt-queue-disc.h (module 'traffic-control'): double ns3::CobaltQueueDisc::GetPdrop() [member function] - cls.add_method('GetPdrop', - 'double', - []) - ## cobalt-queue-disc.h (module 'traffic-control'): int64_t ns3::CobaltQueueDisc::AssignStreams(int64_t stream) [member function] - cls.add_method('AssignStreams', - 'int64_t', - [param('int64_t', 'stream')]) - ## cobalt-queue-disc.h (module 'traffic-control'): int64_t ns3::CobaltQueueDisc::Time2CoDel(ns3::Time t) [member function] - cls.add_method('Time2CoDel', - 'int64_t', - [param('ns3::Time', 't')]) - ## cobalt-queue-disc.h (module 'traffic-control'): void ns3::CobaltQueueDisc::DoDispose() [member function] - cls.add_method('DoDispose', - 'void', - [], - is_virtual=True, visibility='protected') - ## cobalt-queue-disc.h (module 'traffic-control'): bool ns3::CobaltQueueDisc::DoEnqueue(ns3::Ptr item) [member function] - cls.add_method('DoEnqueue', - 'bool', - [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_virtual=True, visibility='private') - ## cobalt-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::CobaltQueueDisc::DoDequeue() [member function] - cls.add_method('DoDequeue', - 'ns3::Ptr< ns3::QueueDiscItem >', - [], - is_virtual=True, visibility='private') - ## cobalt-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::CobaltQueueDisc::DoPeek() [member function] - cls.add_method('DoPeek', - 'ns3::Ptr< ns3::QueueDiscItem const >', - [], - is_virtual=True, visibility='private') - ## cobalt-queue-disc.h (module 'traffic-control'): bool ns3::CobaltQueueDisc::CheckConfig() [member function] - cls.add_method('CheckConfig', - 'bool', - [], - is_virtual=True, visibility='private') - ## cobalt-queue-disc.h (module 'traffic-control'): void ns3::CobaltQueueDisc::InitializeParams() [member function] - cls.add_method('InitializeParams', - 'void', - [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) return def register_Ns3ConstantRandomVariable_methods(root_module, cls): @@ -5108,12 +4985,12 @@ def register_Ns3EmpiricalRandomVariable_methods(root_module, cls): cls.add_method('Interpolate', 'double', [param('double', 'c1'), param('double', 'c2'), param('double', 'v1'), param('double', 'v2'), param('double', 'r')], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## random-variable-stream.h (module 'core'): void ns3::EmpiricalRandomVariable::Validate() [member function] cls.add_method('Validate', 'void', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) return def register_Ns3EmptyAttributeAccessor_methods(root_module, cls): @@ -5189,17 +5066,17 @@ def register_Ns3EmptyAttributeValue_methods(root_module, cls): cls.add_method('Copy', 'ns3::Ptr< ns3::AttributeValue >', [], - is_const=True, is_virtual=True, visibility='private') + is_const=True, visibility='private', is_virtual=True) ## attribute.h (module 'core'): bool ns3::EmptyAttributeValue::DeserializeFromString(std::string value, ns3::Ptr checker) [member function] cls.add_method('DeserializeFromString', 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## attribute.h (module 'core'): std::string ns3::EmptyAttributeValue::SerializeToString(ns3::Ptr checker) const [member function] cls.add_method('SerializeToString', 'std::string', [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], - is_const=True, is_virtual=True, visibility='private') + is_const=True, visibility='private', is_virtual=True) return def register_Ns3EnumChecker_methods(root_module, cls): @@ -5339,7 +5216,7 @@ def register_Ns3EventImpl_methods(root_module, cls): cls.add_method('Notify', 'void', [], - is_virtual=True, is_pure_virtual=True, visibility='protected') + is_pure_virtual=True, visibility='protected', is_virtual=True) return def register_Ns3ExponentialRandomVariable_methods(root_module, cls): @@ -5394,27 +5271,27 @@ def register_Ns3FifoQueueDisc_methods(root_module, cls): cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## fifo-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::FifoQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## fifo-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::FifoQueueDisc::DoPeek() [member function] cls.add_method('DoPeek', 'ns3::Ptr< ns3::QueueDiscItem const >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## fifo-queue-disc.h (module 'traffic-control'): bool ns3::FifoQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## fifo-queue-disc.h (module 'traffic-control'): void ns3::FifoQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) return def register_Ns3FqCoDelFlow_methods(root_module, cls): @@ -5476,22 +5353,22 @@ def register_Ns3FqCoDelQueueDisc_methods(root_module, cls): cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## fq-codel-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::FqCoDelQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## fq-codel-queue-disc.h (module 'traffic-control'): bool ns3::FqCoDelQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## fq-codel-queue-disc.h (module 'traffic-control'): void ns3::FqCoDelQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) return def register_Ns3GammaRandomVariable_methods(root_module, cls): @@ -5820,27 +5697,27 @@ def register_Ns3MqQueueDisc_methods(root_module, cls): cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## mq-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::MqQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## mq-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::MqQueueDisc::DoPeek() [member function] cls.add_method('DoPeek', 'ns3::Ptr< ns3::QueueDiscItem const >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## mq-queue-disc.h (module 'traffic-control'): bool ns3::MqQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## mq-queue-disc.h (module 'traffic-control'): void ns3::MqQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) return def register_Ns3NetDevice_methods(root_module, cls): @@ -5852,47 +5729,47 @@ def register_Ns3NetDevice_methods(root_module, cls): cls.add_method('AddLinkChangeCallback', 'void', [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## net-device.h (module 'network'): ns3::Address ns3::NetDevice::GetAddress() const [member function] cls.add_method('GetAddress', 'ns3::Address', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): ns3::Address ns3::NetDevice::GetBroadcast() const [member function] cls.add_method('GetBroadcast', 'ns3::Address', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDevice::GetChannel() const [member function] cls.add_method('GetChannel', 'ns3::Ptr< ns3::Channel >', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): uint32_t ns3::NetDevice::GetIfIndex() const [member function] cls.add_method('GetIfIndex', 'uint32_t', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): uint16_t ns3::NetDevice::GetMtu() const [member function] cls.add_method('GetMtu', 'uint16_t', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): ns3::Address ns3::NetDevice::GetMulticast(ns3::Ipv4Address multicastGroup) const [member function] cls.add_method('GetMulticast', 'ns3::Address', [param('ns3::Ipv4Address', 'multicastGroup')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): ns3::Address ns3::NetDevice::GetMulticast(ns3::Ipv6Address addr) const [member function] cls.add_method('GetMulticast', 'ns3::Address', [param('ns3::Ipv6Address', 'addr')], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDevice::GetNode() const [member function] cls.add_method('GetNode', 'ns3::Ptr< ns3::Node >', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDevice::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -5902,77 +5779,77 @@ def register_Ns3NetDevice_methods(root_module, cls): cls.add_method('IsBridge', 'bool', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::IsBroadcast() const [member function] cls.add_method('IsBroadcast', 'bool', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::IsLinkUp() const [member function] cls.add_method('IsLinkUp', 'bool', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::IsMulticast() const [member function] cls.add_method('IsMulticast', 'bool', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::IsPointToPoint() const [member function] cls.add_method('IsPointToPoint', 'bool', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::NeedsArp() const [member function] cls.add_method('NeedsArp', 'bool', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::Send(ns3::Ptr packet, ns3::Address const & dest, uint16_t protocolNumber) [member function] cls.add_method('Send', 'bool', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::SendFrom(ns3::Ptr packet, ns3::Address const & source, ns3::Address const & dest, uint16_t protocolNumber) [member function] cls.add_method('SendFrom', 'bool', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::NetDevice::SetAddress(ns3::Address address) [member function] cls.add_method('SetAddress', 'void', [param('ns3::Address', 'address')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::NetDevice::SetIfIndex(uint32_t const index) [member function] cls.add_method('SetIfIndex', 'void', [param('uint32_t const', 'index')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::SetMtu(uint16_t const mtu) [member function] cls.add_method('SetMtu', 'bool', [param('uint16_t const', 'mtu')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::NetDevice::SetNode(ns3::Ptr node) [member function] cls.add_method('SetNode', 'void', [param('ns3::Ptr< ns3::Node >', 'node')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::NetDevice::SetPromiscReceiveCallback(ns3::NetDevice::PromiscReceiveCallback cb) [member function] cls.add_method('SetPromiscReceiveCallback', 'void', [param('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >', 'cb')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::NetDevice::SetReceiveCallback(ns3::NetDevice::ReceiveCallback cb) [member function] cls.add_method('SetReceiveCallback', 'void', [param('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::SupportsSendFrom() const [member function] cls.add_method('SupportsSendFrom', 'bool', [], - is_const=True, is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_const=True, is_virtual=True) return def register_Ns3NixVector_methods(root_module, cls): @@ -6099,12 +5976,12 @@ def register_Ns3Node_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) ## node.h (module 'network'): void ns3::Node::DoInitialize() [member function] cls.add_method('DoInitialize', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) return def register_Ns3NormalRandomVariable_methods(root_module, cls): @@ -6213,11 +6090,6 @@ def register_Ns3Packet_methods(root_module, cls): 'void', [param('ns3::Tag const &', 'tag')], is_const=True) - ## packet.h (module 'network'): void ns3::Packet::AddByteTag(ns3::Tag const & tag, uint32_t start, uint32_t end) const [member function] - cls.add_method('AddByteTag', - 'void', - [param('ns3::Tag const &', 'tag'), param('uint32_t', 'start'), param('uint32_t', 'end')], - is_const=True) ## packet.h (module 'network'): void ns3::Packet::AddHeader(ns3::Header const & header) [member function] cls.add_method('AddHeader', 'void', @@ -6403,7 +6275,7 @@ def register_Ns3ParetoRandomVariable_methods(root_module, cls): cls.add_method('GetMean', 'double', [], - is_const=True, deprecated=True) + deprecated=True, is_const=True) ## random-variable-stream.h (module 'core'): double ns3::ParetoRandomVariable::GetScale() const [member function] cls.add_method('GetScale', 'double', @@ -6453,27 +6325,27 @@ def register_Ns3PfifoFastQueueDisc_methods(root_module, cls): cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## pfifo-fast-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::PfifoFastQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## pfifo-fast-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::PfifoFastQueueDisc::DoPeek() [member function] cls.add_method('DoPeek', 'ns3::Ptr< ns3::QueueDiscItem const >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## pfifo-fast-queue-disc.h (module 'traffic-control'): bool ns3::PfifoFastQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## pfifo-fast-queue-disc.h (module 'traffic-control'): void ns3::PfifoFastQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) return def register_Ns3PieQueueDisc_methods(root_module, cls): @@ -6500,27 +6372,27 @@ def register_Ns3PieQueueDisc_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - is_virtual=True, visibility='protected') + visibility='protected', is_virtual=True) ## pie-queue-disc.h (module 'traffic-control'): bool ns3::PieQueueDisc::DoEnqueue(ns3::Ptr item) [member function] cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## pie-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::PieQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## pie-queue-disc.h (module 'traffic-control'): bool ns3::PieQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## pie-queue-disc.h (module 'traffic-control'): void ns3::PieQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) return def register_Ns3PrioQueueDisc_methods(root_module, cls): @@ -6544,27 +6416,27 @@ def register_Ns3PrioQueueDisc_methods(root_module, cls): cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## prio-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::PrioQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## prio-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::PrioQueueDisc::DoPeek() [member function] cls.add_method('DoPeek', 'ns3::Ptr< ns3::QueueDiscItem const >', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## prio-queue-disc.h (module 'traffic-control'): bool ns3::PrioQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) ## prio-queue-disc.h (module 'traffic-control'): void ns3::PrioQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - is_virtual=True, visibility='private') + visibility='private', is_virtual=True) return def register_Ns3PriomapChecker_methods(root_module, cls): @@ -6878,7 +6750,7 @@ def register_Ns3CallbackImpl__Ns3ObjectBase___star___Ns3Empty_Ns3Empty_Ns3Empty_ cls.add_method('operator()', 'ns3::ObjectBase *', [], - custom_name='__call__', is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') return def register_Ns3CallbackImpl__Void_Bool_Bool_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -6900,29 +6772,7 @@ def register_Ns3CallbackImpl__Void_Bool_Bool_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty cls.add_method('operator()', 'void', [param('bool', 'arg0'), param('bool', 'arg1')], - custom_name='__call__', is_virtual=True, is_pure_virtual=True) - return - -def register_Ns3CallbackImpl__Void_Long_Long_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): - ## callback.h (module 'core'): ns3::CallbackImpl::CallbackImpl() [constructor] - cls.add_constructor([]) - ## callback.h (module 'core'): ns3::CallbackImpl::CallbackImpl(ns3::CallbackImpl const & arg0) [constructor] - cls.add_constructor([param('ns3::CallbackImpl< void, long, long, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty > const &', 'arg0')]) - ## callback.h (module 'core'): static std::string ns3::CallbackImpl::DoGetTypeid() [member function] - cls.add_method('DoGetTypeid', - 'std::string', - [], - is_static=True) - ## callback.h (module 'core'): std::string ns3::CallbackImpl::GetTypeid() const [member function] - cls.add_method('GetTypeid', - 'std::string', - [], - is_const=True, is_virtual=True) - ## callback.h (module 'core'): void ns3::CallbackImpl::operator()(long int arg0, long int arg1) [member operator] - cls.add_method('operator()', - 'void', - [param('long int', 'arg0'), param('long int', 'arg1')], - custom_name='__call__', is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') return def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__const_ns3QueueDiscItem__gt___Const_char___star___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -6944,7 +6794,7 @@ def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__const_ns3QueueDiscItem__gt___Cons cls.add_method('operator()', 'void', [param('ns3::Ptr< ns3::QueueDiscItem const >', 'arg0'), param('char const *', 'arg1')], - custom_name='__call__', is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') return def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__const_ns3QueueDiscItem__gt___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -6966,7 +6816,7 @@ def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__const_ns3QueueDiscItem__gt___Ns3E cls.add_method('operator()', 'void', [param('ns3::Ptr< ns3::QueueDiscItem const >', 'arg0')], - custom_name='__call__', is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') return def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__ns3NetDevice__gt___Ns3Ptr__lt__const_ns3Packet__gt___Unsigned_short_Const_ns3Address___amp___Const_ns3Address___amp___Ns3NetDevicePacketType_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -6988,7 +6838,7 @@ def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__ns3NetDevice__gt___Ns3Ptr__lt__co cls.add_method('operator()', 'void', [param('ns3::Ptr< ns3::NetDevice >', 'arg0'), param('ns3::Ptr< ns3::Packet const >', 'arg1'), param('short unsigned int', 'arg2'), param('ns3::Address const &', 'arg3'), param('ns3::Address const &', 'arg4'), param('ns3::NetDevice::PacketType', 'arg5')], - custom_name='__call__', is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') return def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__ns3NetDevice__gt___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -7010,7 +6860,7 @@ def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__ns3NetDevice__gt___Ns3Empty_Ns3Em cls.add_method('operator()', 'void', [param('ns3::Ptr< ns3::NetDevice >', 'arg0')], - custom_name='__call__', is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') return def register_Ns3CallbackImpl__Void_Ns3Time_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -7032,7 +6882,7 @@ def register_Ns3CallbackImpl__Void_Ns3Time_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_N cls.add_method('operator()', 'void', [param('ns3::Time', 'arg0')], - custom_name='__call__', is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') return def register_Ns3CallbackImpl__Void_Unsigned_int_Unsigned_int_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -7054,7 +6904,7 @@ def register_Ns3CallbackImpl__Void_Unsigned_int_Unsigned_int_Ns3Empty_Ns3Empty_N cls.add_method('operator()', 'void', [param('unsigned int', 'arg0'), param('unsigned int', 'arg1')], - custom_name='__call__', is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') return def register_Ns3QueueDiscItem_methods(root_module, cls): @@ -7092,7 +6942,7 @@ def register_Ns3QueueDiscItem_methods(root_module, cls): cls.add_method('AddHeader', 'void', [], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## queue-item.h (module 'network'): void ns3::QueueDiscItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', @@ -7102,7 +6952,7 @@ def register_Ns3QueueDiscItem_methods(root_module, cls): cls.add_method('Mark', 'bool', [], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## queue-item.h (module 'network'): uint32_t ns3::QueueDiscItem::Hash(uint32_t perturbation=0) const [member function] cls.add_method('Hash', 'uint32_t', @@ -7119,7 +6969,7 @@ def register_Ns3HashImplementation_methods(root_module, cls): cls.add_method('GetHash32', 'uint32_t', [param('char const *', 'buffer'), param('std::size_t const', 'size')], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) ## hash-function.h (module 'core'): uint64_t ns3::Hash::Implementation::GetHash64(char const * buffer, std::size_t const size) [member function] cls.add_method('GetHash64', 'uint64_t', @@ -7129,7 +6979,7 @@ def register_Ns3HashImplementation_methods(root_module, cls): cls.add_method('clear', 'void', [], - is_virtual=True, is_pure_virtual=True) + is_pure_virtual=True, is_virtual=True) return def register_Ns3HashFunctionFnv1a_methods(root_module, cls): diff --git a/src/traffic-control/doc/cobalt.rst b/src/traffic-control/doc/cobalt.rst deleted file mode 100644 index 10e968ab386..00000000000 --- a/src/traffic-control/doc/cobalt.rst +++ /dev/null @@ -1,137 +0,0 @@ -.. include:: replace.txt - - -Cobalt queue disc ------------------ - -This chapter describes the COBALT (CoDel BLUE Alternate) ([Cake16]_) queue disc -implementation in |ns3|. - -COBALT queue disc is an integral component of CAKE smart queue management system. -It is a combination of the CoDel ([Kath17]_) and BLUE ([BLUE02]_) Active Queue -Management algorithms. - - -Model Description -***************** - -The source code for the COBALT model is located in the directory -``src/traffic-control/model`` and consists of 2 files: `cobalt-queue-disc.h` and -`cobalt-queue-disc.cc` defining a CobaltQueueDisc class and a helper -CobaltTimestampTag class. The code was ported to |ns3| by Vignesh Kanan, -Harsh Lara, Shefali Gupta, Jendaipou Palmei and Mohit P. Tahiliani based on -the Linux kernel code. - -Stefano Avallone and Pasquale Imputato helped in verifying the correctness of -COBALT model in |ns3| by comparing the results obtained from it to those obtained -from the Linux model of COBALT. A detailed comparison of ns-3 model of COBALT with -Linux model of COBALT is provided in ([Cobalt19]_). - -* class :cpp:class:`CobaltQueueDisc`: This class implements the main Cobalt algorithm: - - * ``CobaltQueueDisc::DoEnqueue ()``: This routine tags a packet with the -current time before pushing it into the queue. The timestamp tag is used by -``CobaltQueue::DoDequeue()`` to compute the packet's sojourn time. If the -queue is full upon the packet arrival, this routine will drop the packet and -record the number of drops due to queue overflow, which is stored in -`m_stats.qLimDrop`. - - * ``CobaltQueueDisc::ShouldDrop ()``: This routine is -``CobaltQueueDisc::DoDequeue()``'s helper routine that determines whether a -packet should be dropped or not based on its sojourn time. If the sojourn time -goes above `m_target` and remains above continuously for at least `m_interval`, -the routine returns ``true`` indicating that it is OK to drop the packet. -``Otherwise, it returns ``false``. This routine decides if a packet should be -dropped based on the dropping state of CoDel and drop probability of BLUE. -The idea is to have both algorithms running in parallel and their effectiveness -is decided by their respective parameters (Pdrop of BLUE and dropping state of -CoDel). If either of them decide to drop the packet, the packet is dropped. - - * ``CobaltQueueDisc::DoDequeue ()``: This routine performs the actual packet -``drop based on ``CobaltQueueDisc::ShouldDrop ()``'s return value and schedules -the next drop. Cobalt will decrease BLUE's drop probability if the queue is -empty. This will ensure that the queue does not underflow. Otherwise Cobalt will -take the next packet from the queue and calculate its drop state by running -CoDel and BLUE in parallel till there are none left to drop. - -* class :cpp:class:`CobaltTimestampTag`: This class implements the timestamp -tagging for a packet. This tag is used to compute the packet's sojourn time -(the difference between the time the packet is dequeued and the time it is -pushed into the queue). - - - -References -========== - -[Cake16] Linux implementation of Cobalt as a part of the cake framework. -Available online at ``_. - -[Kath17] Controlled Delay Active Queue Management (draft-ietf-aqm-fq-codel-07) -Available online at ``_. - -[BLUE02] Feng, W. C., Shin, K. G., Kandlur, D. D., & Saha, D. (2002). The BLUE -Active Queue Management Algorithms. IEEE/ACM Transactions on Networking (ToN), -10(4), 513-528. - -[Cobalt19] Jendaipou Palmei, Shefali Gupta, Pasquale Imputato, Jonathan Morton, -Mohit P. Tahiliani, Stefano Avallone and Dave Taht (2019). Design and Evaluation -of COBALT Queue Discipline. IEEE International Symposium on Local and -Metropolitan Area Networks (LANMAN), July 2019. - - -Attributes -========== - -The key attributes that the CobaltQueue Disc class holds include the following: - -* ``MaxSize:`` The maximum number of packets/bytes accepted by this queue disc. -* ``MinBytes:`` The Cobalt algorithm minbytes parameter. The default value is -1500 bytes. -* ``Interval:`` The sliding-minimum window. The default value is 100 ms. -* ``Target:`` The Cobalt algorithm target queue delay. The default value is -5 ms. -* ``Pdrop:`` Value of drop probability. -* ``Increment:`` Increment value of drop probability. Default value is 1./256 . -* ``Decrement:`` Decrement value of drop probability. Default value is 1./4096 . -* ``Count:`` Cobalt count. -* ``DropState:`` Dropping state of Cobalt. Default value is false. -* ``Sojourn:`` Per packet time spent in the queue. -* ``DropNext:`` Time until next packet drop. - -Examples -======== - -An example program named `cobalt-vs-codel.cc` is located in -``src/traffic-control/examples``. Use the following command to run the program. - -:: - - $ ./waf --run cobalt-vs-codel - - -Validation -********** - -The COBALT model is tested using :cpp:class:`CobaltQueueDiscTestSuite` class -defined in `src/traffic-control/test/cobalt-queue-test-suite.cc`. -The suite includes 2 test cases: - -* Test 1: Simple enqueue/dequeue with no drops. -* Test 2: Change of BLUE's drop probability upon queue full -(Activation of Blue). - -The test suite can be run using the following commands: - -:: - - $ ./waf configure --enable-examples --enable-tests - $ ./waf build - $ ./test.py -s cobalt-queue-disc - -or - -:: - - $ NS_LOG="CobaltQueueDisc" ./waf --run "test-runner --suite=cobalt-queue-disc" - diff --git a/src/traffic-control/doc/fq-codel.rst b/src/traffic-control/doc/fq-codel.rst index 84cbb97d966..383919ce461 100644 --- a/src/traffic-control/doc/fq-codel.rst +++ b/src/traffic-control/doc/fq-codel.rst @@ -17,9 +17,6 @@ FqCoDel distinguishes between "new" queues (which don't build up a standing queue) and "old" queues, that have queued enough data to be around for more than one iteration of the round-robin scheduler. -FqCoDel is installed by default on single-queue NetDevices (such as PointToPoint, -Csma and Simple). Also, on multi-queue devices (such as Wifi), the default root -qdisc is Mq with as many FqCoDel child queue discs as the number of device queues. Model Description ***************** @@ -72,12 +69,6 @@ The key attributes that the FqCoDelQueue class holds include the following: * ``DropBatchSize:`` The maximum number of packets dropped from the fat flow. * ``Perturbation:`` The salt used as an additional input to the hash function used to classify packets. -Perturbation is an optional configuration attribute and can be used to generate -different hash outcomes for different inputs. For instance, the tuples -used as input to the hash may cause hash collisions (mapping to the same -bucket) for a given set of inputs, but by changing the perturbation value, -the same hash inputs now map to distinct buckets. - Note that the quantum, i.e., the number of bytes each queue gets to dequeue on each round of the scheduling algorithm, is set by default to the MTU size of the device (at initialisation time). The ``FqCoDelQueueDisc::SetQuantum ()`` method diff --git a/src/traffic-control/doc/mq.rst b/src/traffic-control/doc/mq.rst index 3ab31c7ed32..52587ab173e 100644 --- a/src/traffic-control/doc/mq.rst +++ b/src/traffic-control/doc/mq.rst @@ -12,9 +12,6 @@ traffic control API in Linux. The mq scheduler presents device transmission queu classes, allowing to attach different queue discs to them, which are grafted to the device transmission queues. -Mq is installed by default on multi-queue devices (such as Wifi) with as many FqCodel -child queue discs as the number of device queues. - Model Description ***************** diff --git a/src/traffic-control/doc/queue-discs.rst b/src/traffic-control/doc/queue-discs.rst index 02b97cbea59..63b09291405 100644 --- a/src/traffic-control/doc/queue-discs.rst +++ b/src/traffic-control/doc/queue-discs.rst @@ -171,12 +171,8 @@ Usage By default, the InternetStackHelper aggregates a TrafficControlLayer object to every node. When invoked to assign an IPv{4,6} address to a device, the Ipv{4,6}AddressHelper, -besides creating an Ipv{4,6}Interface, also installs the default qdisc -on the device, unless a queue disc has been already installed. -For single-queue NetDevices (such as PointToPoint, Csma and Simple), the default root -qdisc is FqCoDel. For multi-queue NetDevices (such as Wifi), the default root qdisc is -Mq with as many FqCoDel child qdiscs as the number of device queues. -Thus, devices get the default +besides creating a Ipv{4,6}Interface, also installs the default qdisc, PfifoFastQueueDisc, +on the device, unless a queue disc has been already installed. Thus, devices get the default queue disc installed even if they are added to the node after the Internet stack has been installed on the node. @@ -191,7 +187,7 @@ Helpers A typical usage pattern is to create a traffic control helper and to configure type and attributes of queue discs, queues, classes and filters from the helper, For example, -the pfifo_fast can be configured as follows: +the default pfifo_fast can be configured as follows: .. sourcecode:: cpp @@ -200,7 +196,7 @@ the pfifo_fast can be configured as follows: tch.AddInternalQueues (handle, 3, "ns3::DropTailQueue", "MaxSize", StringValue ("1000p")); QueueDiscContainer qdiscs = tch.Install (devices); -The above code adds three internal queues to the root queue disc of type PfifoFast. +The above code adds three internal queues and a packet filter to the root queue disc of type PfifoFast. With the above configuration, the config path of the root queue disc installed on the j-th device of the i-th node (the index of a device is the same as in DeviceList) is: diff --git a/src/traffic-control/helper/traffic-control-helper.cc b/src/traffic-control/helper/traffic-control-helper.cc index fded396704d..c09120f3255 100644 --- a/src/traffic-control/helper/traffic-control-helper.cc +++ b/src/traffic-control/helper/traffic-control-helper.cc @@ -108,22 +108,10 @@ TrafficControlHelper::TrafficControlHelper () } TrafficControlHelper -TrafficControlHelper::Default (std::size_t nTxQueues) +TrafficControlHelper::Default (void) { - NS_LOG_FUNCTION (nTxQueues); - NS_ABORT_MSG_IF (nTxQueues == 0, "The device must have at least one queue"); TrafficControlHelper helper; - - if (nTxQueues == 1) - { - helper.SetRootQueueDisc ("ns3::FqCoDelQueueDisc"); - } - else - { - uint16_t handle = helper.SetRootQueueDisc ("ns3::MqQueueDisc"); - ClassIdList cls = helper.AddQueueDiscClasses (handle, nTxQueues, "ns3::QueueDiscClass"); - helper.AddChildQueueDiscs (handle, cls, "ns3::FqCoDelQueueDisc"); - } + helper.SetRootQueueDisc ("ns3::PfifoFastQueueDisc"); return helper; } diff --git a/src/traffic-control/helper/traffic-control-helper.h b/src/traffic-control/helper/traffic-control-helper.h index 9417b1910a9..d1ec43e107f 100644 --- a/src/traffic-control/helper/traffic-control-helper.h +++ b/src/traffic-control/helper/traffic-control-helper.h @@ -128,11 +128,10 @@ class TrafficControlHelper /** * \returns a new TrafficControlHelper with a default configuration * - * The default configuration is an FqCoDelQueueDisc, if the device has a single - * queue, or an MqQueueDisc with as many FqCoDelQueueDiscs as the number of - * device queues, otherwise. + * The default configuration is a PfifoFastQueueDisc with three internal queues + * of type DropTailQueue and size 1000 packets. */ - static TrafficControlHelper Default (std::size_t nTxQueues = 1); + static TrafficControlHelper Default (void); /** * Helper function used to set a root queue disc of the given type and with the diff --git a/src/traffic-control/test/examples-to-run.py b/src/traffic-control/test/examples-to-run.py index 95e2d021a6a..e81bad59896 100644 --- a/src/traffic-control/test/examples-to-run.py +++ b/src/traffic-control/test/examples-to-run.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python3 +#! /usr/bin/env python ## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*- # A list of C++ examples to run in order to ensure that they remain diff --git a/src/traffic-control/wscript b/src/traffic-control/wscript index 63f065e4fce..0237b4118dd 100644 --- a/src/traffic-control/wscript +++ b/src/traffic-control/wscript @@ -29,6 +29,7 @@ def build(bld): module_test = bld.create_ns3_module_test_library('traffic-control') module_test.source = [ 'test/red-queue-disc-test-suite.cc', + 'test/cobalt-queue-disc-test-suite.cc', 'test/codel-queue-disc-test-suite.cc', 'test/adaptive-red-queue-disc-test-suite.cc', 'test/pie-queue-disc-test-suite.cc', @@ -36,8 +37,7 @@ def build(bld): 'test/prio-queue-disc-test-suite.cc', 'test/queue-disc-traces-test-suite.cc', 'test/tbf-queue-disc-test-suite.cc', - 'test/tc-flow-control-test-suite.cc', - 'test/cobalt-queue-disc-test-suite.cc' + 'test/tc-flow-control-test-suite.cc' ] headers = bld(features='ns3header') @@ -49,13 +49,13 @@ def build(bld): 'model/pfifo-fast-queue-disc.h', 'model/fifo-queue-disc.h', 'model/red-queue-disc.h', + 'model/cobalt-queue-disc.h', 'model/codel-queue-disc.h', 'model/fq-codel-queue-disc.h', 'model/pie-queue-disc.h', 'model/prio-queue-disc.h', 'model/mq-queue-disc.h', 'model/tbf-queue-disc.h', - 'model/cobalt-queue-disc.h', 'helper/traffic-control-helper.h', 'helper/queue-disc-container.h' ] From c49d0b13c6d245837c4985b73f8f5f223907c5e1 Mon Sep 17 00:00:00 2001 From: kampaitees Date: Fri, 8 Nov 2019 00:49:15 +0530 Subject: [PATCH 2/2] Cobalt algorithm added --- .../.vscode/c_cpp_properties.json | 19 - .../bindings/callbacks_list.py | 1 + .../bindings/modulegen__gcc_ILP32.py | 782 +++++++++++------- .../bindings/modulegen__gcc_LP64.py | 782 +++++++++++------- src/traffic-control/doc/cobalt.rst | 137 +++ src/traffic-control/doc/fq-codel.rst | 9 + src/traffic-control/doc/mq.rst | 3 + src/traffic-control/doc/queue-discs.rst | 12 +- .../helper/traffic-control-helper.cc | 16 +- .../helper/traffic-control-helper.h | 7 +- src/traffic-control/test/examples-to-run.py | 2 +- 11 files changed, 1109 insertions(+), 661 deletions(-) delete mode 100644 src/aqm-eval-suite/.vscode/c_cpp_properties.json create mode 100644 src/traffic-control/doc/cobalt.rst diff --git a/src/aqm-eval-suite/.vscode/c_cpp_properties.json b/src/aqm-eval-suite/.vscode/c_cpp_properties.json deleted file mode 100644 index 602edc56ddf..00000000000 --- a/src/aqm-eval-suite/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${workspaceFolder}/**" - ], - "defines": [ - "_DEBUG", - "UNICODE", - "_UNICODE" - ], - "compilerPath": "/usr/bin/gcc", - "cStandard": "c11", - "cppStandard": "c++17" - } - ], - "version": 4 -} \ No newline at end of file diff --git a/src/traffic-control/bindings/callbacks_list.py b/src/traffic-control/bindings/callbacks_list.py index 75154d6b0f5..092c411b80b 100644 --- a/src/traffic-control/bindings/callbacks_list.py +++ b/src/traffic-control/bindings/callbacks_list.py @@ -4,6 +4,7 @@ ['void', 'ns3::Time', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['void', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['void', 'ns3::Ptr', 'const char *', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], + ['void', 'long', 'long', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['void', 'bool', 'bool', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['void', 'ns3::Ptr', 'ns3::Ptr', 'unsigned short', 'const ns3::Address &', 'const ns3::Address &', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['void', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], diff --git a/src/traffic-control/bindings/modulegen__gcc_ILP32.py b/src/traffic-control/bindings/modulegen__gcc_ILP32.py index d437e721209..78e688cdc3d 100644 --- a/src/traffic-control/bindings/modulegen__gcc_ILP32.py +++ b/src/traffic-control/bindings/modulegen__gcc_ILP32.py @@ -32,9 +32,9 @@ def register_types(module): module.add_class('AttributeConstructionList', import_from_module='ns.core') ## attribute-construction-list.h (module 'core'): ns3::AttributeConstructionList::Item [struct] module.add_class('Item', import_from_module='ns.core', outer_class=root_module['ns3::AttributeConstructionList']) - typehandlers.add_type_alias(u'std::list< ns3::AttributeConstructionList::Item > const_iterator', u'ns3::AttributeConstructionList::CIterator') - typehandlers.add_type_alias(u'std::list< ns3::AttributeConstructionList::Item > const_iterator*', u'ns3::AttributeConstructionList::CIterator*') - typehandlers.add_type_alias(u'std::list< ns3::AttributeConstructionList::Item > const_iterator&', u'ns3::AttributeConstructionList::CIterator&') + typehandlers.add_type_alias('std::list< ns3::AttributeConstructionList::Item > const_iterator', 'ns3::AttributeConstructionList::CIterator') + typehandlers.add_type_alias('std::list< ns3::AttributeConstructionList::Item > const_iterator*', 'ns3::AttributeConstructionList::CIterator*') + typehandlers.add_type_alias('std::list< ns3::AttributeConstructionList::Item > const_iterator&', 'ns3::AttributeConstructionList::CIterator&') ## buffer.h (module 'network'): ns3::Buffer [class] module.add_class('Buffer', import_from_module='ns.network') ## buffer.h (module 'network'): ns3::Buffer::Iterator [class] @@ -119,9 +119,9 @@ def register_types(module): module.add_class('Ipv6Prefix', import_from_module='ns.network') ## mac48-address.h (module 'network'): ns3::Mac48Address [class] module.add_class('Mac48Address', import_from_module='ns.network') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Mac48Address )', u'ns3::Mac48Address::TracedCallback') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Mac48Address )*', u'ns3::Mac48Address::TracedCallback*') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Mac48Address )&', u'ns3::Mac48Address::TracedCallback&') + typehandlers.add_type_alias('void ( * ) ( ns3::Mac48Address )', 'ns3::Mac48Address::TracedCallback') + typehandlers.add_type_alias('void ( * ) ( ns3::Mac48Address )*', 'ns3::Mac48Address::TracedCallback*') + typehandlers.add_type_alias('void ( * ) ( ns3::Mac48Address )&', 'ns3::Mac48Address::TracedCallback&') ## mac48-address.h (module 'network'): ns3::Mac48Address [class] root_module['ns3::Mac48Address'].implicitly_converts_to(root_module['ns3::Address']) ## mac8-address.h (module 'network'): ns3::Mac8Address [class] @@ -130,11 +130,11 @@ def register_types(module): root_module['ns3::Mac8Address'].implicitly_converts_to(root_module['ns3::Address']) ## net-device-container.h (module 'network'): ns3::NetDeviceContainer [class] module.add_class('NetDeviceContainer', import_from_module='ns.network') - typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::NetDevice > > const_iterator', u'ns3::NetDeviceContainer::Iterator') - typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::NetDevice > > const_iterator*', u'ns3::NetDeviceContainer::Iterator*') - typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::NetDevice > > const_iterator&', u'ns3::NetDeviceContainer::Iterator&') + typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::NetDevice > > const_iterator', 'ns3::NetDeviceContainer::Iterator') + typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::NetDevice > > const_iterator*', 'ns3::NetDeviceContainer::Iterator*') + typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::NetDevice > > const_iterator&', 'ns3::NetDeviceContainer::Iterator&') ## object-base.h (module 'core'): ns3::ObjectBase [class] - module.add_class('ObjectBase', allow_subclassing=True, import_from_module='ns.core') + module.add_class('ObjectBase', import_from_module='ns.core', allow_subclassing=True) ## object.h (module 'core'): ns3::ObjectDeleter [struct] module.add_class('ObjectDeleter', import_from_module='ns.core') ## object-factory.h (module 'core'): ns3::ObjectFactory [class] @@ -157,17 +157,17 @@ def register_types(module): module.add_class('TagData', import_from_module='ns.network', outer_class=root_module['ns3::PacketTagList']) ## queue-disc-container.h (module 'traffic-control'): ns3::QueueDiscContainer [class] module.add_class('QueueDiscContainer') - typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::QueueDisc > > const_iterator', u'ns3::QueueDiscContainer::ConstIterator') - typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::QueueDisc > > const_iterator*', u'ns3::QueueDiscContainer::ConstIterator*') - typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::QueueDisc > > const_iterator&', u'ns3::QueueDiscContainer::ConstIterator&') + typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::QueueDisc > > const_iterator', 'ns3::QueueDiscContainer::ConstIterator') + typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::QueueDisc > > const_iterator*', 'ns3::QueueDiscContainer::ConstIterator*') + typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::QueueDisc > > const_iterator&', 'ns3::QueueDiscContainer::ConstIterator&') ## traffic-control-helper.h (module 'traffic-control'): ns3::QueueDiscFactory [class] module.add_class('QueueDiscFactory') ## queue-size.h (module 'network'): ns3::QueueSize [class] module.add_class('QueueSize', import_from_module='ns.network') ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount [class] - module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Object', 'ns3::ObjectBase', 'ns3::ObjectDeleter'], parent=root_module['ns3::ObjectBase'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) + module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::ObjectBase'], template_parameters=['ns3::Object', 'ns3::ObjectBase', 'ns3::ObjectDeleter']) ## simulator.h (module 'core'): ns3::Simulator [class] - module.add_class('Simulator', destructor_visibility='private', import_from_module='ns.core') + module.add_class('Simulator', import_from_module='ns.core', destructor_visibility='private') ## simulator.h (module 'core'): ns3::Simulator [enumeration] module.add_enum('', ['NO_CONTEXT'], outer_class=root_module['ns3::Simulator'], import_from_module='ns.core') ## tag.h (module 'network'): ns3::Tag [class] @@ -183,19 +183,21 @@ def register_types(module): ## timer.h (module 'core'): ns3::Timer::State [enumeration] module.add_enum('State', ['RUNNING', 'EXPIRED', 'SUSPENDED'], outer_class=root_module['ns3::Timer'], import_from_module='ns.core') ## timer-impl.h (module 'core'): ns3::TimerImpl [class] - module.add_class('TimerImpl', allow_subclassing=True, import_from_module='ns.core') + module.add_class('TimerImpl', import_from_module='ns.core', allow_subclassing=True) ## traced-value.h (module 'core'): ns3::TracedValue [class] module.add_class('TracedValue', import_from_module='ns.core', template_parameters=['bool']) + ## traced-value.h (module 'core'): ns3::TracedValue [class] + module.add_class('TracedValue', import_from_module='ns.core', template_parameters=['long']) ## traced-value.h (module 'core'): ns3::TracedValue [class] module.add_class('TracedValue', import_from_module='ns.core', template_parameters=['unsigned int']) ## traffic-control-helper.h (module 'traffic-control'): ns3::TrafficControlHelper [class] module.add_class('TrafficControlHelper') - typehandlers.add_type_alias(u'std::vector< unsigned short >', u'ns3::TrafficControlHelper::ClassIdList') - typehandlers.add_type_alias(u'std::vector< unsigned short >*', u'ns3::TrafficControlHelper::ClassIdList*') - typehandlers.add_type_alias(u'std::vector< unsigned short >&', u'ns3::TrafficControlHelper::ClassIdList&') - typehandlers.add_type_alias(u'std::vector< unsigned short >', u'ns3::TrafficControlHelper::HandleList') - typehandlers.add_type_alias(u'std::vector< unsigned short >*', u'ns3::TrafficControlHelper::HandleList*') - typehandlers.add_type_alias(u'std::vector< unsigned short >&', u'ns3::TrafficControlHelper::HandleList&') + typehandlers.add_type_alias('std::vector< unsigned short >', 'ns3::TrafficControlHelper::ClassIdList') + typehandlers.add_type_alias('std::vector< unsigned short >*', 'ns3::TrafficControlHelper::ClassIdList*') + typehandlers.add_type_alias('std::vector< unsigned short >&', 'ns3::TrafficControlHelper::ClassIdList&') + typehandlers.add_type_alias('std::vector< unsigned short >', 'ns3::TrafficControlHelper::HandleList') + typehandlers.add_type_alias('std::vector< unsigned short >*', 'ns3::TrafficControlHelper::HandleList*') + typehandlers.add_type_alias('std::vector< unsigned short >&', 'ns3::TrafficControlHelper::HandleList&') ## type-id.h (module 'core'): ns3::TypeId [class] module.add_class('TypeId', import_from_module='ns.core') ## type-id.h (module 'core'): ns3::TypeId::AttributeFlag [enumeration] @@ -206,9 +208,9 @@ def register_types(module): module.add_class('AttributeInformation', import_from_module='ns.core', outer_class=root_module['ns3::TypeId']) ## type-id.h (module 'core'): ns3::TypeId::TraceSourceInformation [struct] module.add_class('TraceSourceInformation', import_from_module='ns.core', outer_class=root_module['ns3::TypeId']) - typehandlers.add_type_alias(u'uint32_t', u'ns3::TypeId::hash_t') - typehandlers.add_type_alias(u'uint32_t*', u'ns3::TypeId::hash_t*') - typehandlers.add_type_alias(u'uint32_t&', u'ns3::TypeId::hash_t&') + typehandlers.add_type_alias('uint32_t', 'ns3::TypeId::hash_t') + typehandlers.add_type_alias('uint32_t*', 'ns3::TypeId::hash_t*') + typehandlers.add_type_alias('uint32_t&', 'ns3::TypeId::hash_t&') ## empty.h (module 'core'): ns3::empty [class] module.add_class('empty', import_from_module='ns.core') ## int64x64-128.h (module 'core'): ns3::int64x64_t [class] @@ -231,12 +233,12 @@ def register_types(module): module.add_enum('WakeMode', ['WAKE_ROOT', 'WAKE_CHILD'], outer_class=root_module['ns3::QueueDisc']) ## queue-disc.h (module 'traffic-control'): ns3::QueueDisc::Stats [struct] module.add_class('Stats', outer_class=root_module['ns3::QueueDisc']) - typehandlers.add_type_alias(u'std::function< void ( ns3::Ptr< ns3::QueueDiscItem > ) >', u'ns3::QueueDisc::SendCallback') - typehandlers.add_type_alias(u'std::function< void ( ns3::Ptr< ns3::QueueDiscItem > ) >*', u'ns3::QueueDisc::SendCallback*') - typehandlers.add_type_alias(u'std::function< void ( ns3::Ptr< ns3::QueueDiscItem > ) >&', u'ns3::QueueDisc::SendCallback&') - typehandlers.add_type_alias(u'ns3::Queue< ns3::QueueDiscItem >', u'ns3::QueueDisc::InternalQueue') - typehandlers.add_type_alias(u'ns3::Queue< ns3::QueueDiscItem >*', u'ns3::QueueDisc::InternalQueue*') - typehandlers.add_type_alias(u'ns3::Queue< ns3::QueueDiscItem >&', u'ns3::QueueDisc::InternalQueue&') + typehandlers.add_type_alias('std::function< void ( ns3::Ptr< ns3::QueueDiscItem > ) >', 'ns3::QueueDisc::SendCallback') + typehandlers.add_type_alias('std::function< void ( ns3::Ptr< ns3::QueueDiscItem > ) >*', 'ns3::QueueDisc::SendCallback*') + typehandlers.add_type_alias('std::function< void ( ns3::Ptr< ns3::QueueDiscItem > ) >&', 'ns3::QueueDisc::SendCallback&') + typehandlers.add_type_alias('ns3::Queue< ns3::QueueDiscItem >', 'ns3::QueueDisc::InternalQueue') + typehandlers.add_type_alias('ns3::Queue< ns3::QueueDiscItem >*', 'ns3::QueueDisc::InternalQueue*') + typehandlers.add_type_alias('ns3::Queue< ns3::QueueDiscItem >&', 'ns3::QueueDisc::InternalQueue&') ## queue-disc.h (module 'traffic-control'): ns3::QueueDiscClass [class] module.add_class('QueueDiscClass', parent=root_module['ns3::Object']) ## random-variable-stream.h (module 'core'): ns3::RandomVariableStream [class] @@ -250,43 +252,43 @@ def register_types(module): ## random-variable-stream.h (module 'core'): ns3::SequentialRandomVariable [class] module.add_class('SequentialRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::AttributeAccessor', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) + module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::AttributeAccessor', 'ns3::empty', 'ns3::DefaultDeleter']) ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::AttributeChecker', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) + module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::AttributeChecker', 'ns3::empty', 'ns3::DefaultDeleter']) ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', 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')) + module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::AttributeValue', 'ns3::empty', 'ns3::DefaultDeleter']) ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', 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')) + module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::CallbackImplBase', 'ns3::empty', 'ns3::DefaultDeleter']) ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', 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')) + module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::EventImpl', 'ns3::empty', 'ns3::DefaultDeleter']) ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Hash::Implementation', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) + module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::Hash::Implementation', 'ns3::empty', 'ns3::DefaultDeleter']) ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::NixVector', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) + module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::NixVector', 'ns3::empty', 'ns3::DefaultDeleter']) ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Packet', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) + module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::Packet', 'ns3::empty', 'ns3::DefaultDeleter']) ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::QueueItem', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) + module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::QueueItem', 'ns3::empty', 'ns3::DefaultDeleter']) ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::TraceSourceAccessor', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) + module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::TraceSourceAccessor', 'ns3::empty', 'ns3::DefaultDeleter']) ## tbf-queue-disc.h (module 'traffic-control'): ns3::TbfQueueDisc [class] module.add_class('TbfQueueDisc', parent=root_module['ns3::QueueDisc']) ## nstime.h (module 'core'): ns3::Time [class] module.add_class('Time', import_from_module='ns.core') ## nstime.h (module 'core'): ns3::Time::Unit [enumeration] module.add_enum('Unit', ['Y', 'D', 'H', 'MIN', 'S', 'MS', 'US', 'NS', 'PS', 'FS', 'LAST'], outer_class=root_module['ns3::Time'], import_from_module='ns.core') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Time )', u'ns3::Time::TracedCallback') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Time )*', u'ns3::Time::TracedCallback*') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Time )&', u'ns3::Time::TracedCallback&') + typehandlers.add_type_alias('void ( * ) ( ns3::Time )', 'ns3::Time::TracedCallback') + typehandlers.add_type_alias('void ( * ) ( ns3::Time )*', 'ns3::Time::TracedCallback*') + typehandlers.add_type_alias('void ( * ) ( ns3::Time )&', 'ns3::Time::TracedCallback&') ## nstime.h (module 'core'): ns3::Time [class] root_module['ns3::Time'].implicitly_converts_to(root_module['ns3::int64x64_t']) ## trace-source-accessor.h (module 'core'): ns3::TraceSourceAccessor [class] module.add_class('TraceSourceAccessor', import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::TraceSourceAccessor, ns3::empty, ns3::DefaultDeleter >']) ## traffic-control-layer.h (module 'traffic-control'): ns3::TrafficControlLayer [class] module.add_class('TrafficControlLayer', parent=root_module['ns3::Object']) - typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::QueueDisc > >', u'ns3::TrafficControlLayer::QueueDiscVector') - typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::QueueDisc > >*', u'ns3::TrafficControlLayer::QueueDiscVector*') - typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::QueueDisc > >&', u'ns3::TrafficControlLayer::QueueDiscVector&') + typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::QueueDisc > >', 'ns3::TrafficControlLayer::QueueDiscVector') + typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::QueueDisc > >*', 'ns3::TrafficControlLayer::QueueDiscVector*') + typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::QueueDisc > >&', 'ns3::TrafficControlLayer::QueueDiscVector&') ## trailer.h (module 'network'): ns3::Trailer [class] module.add_class('Trailer', import_from_module='ns.network', parent=root_module['ns3::Chunk']) ## random-variable-stream.h (module 'core'): ns3::TriangularRandomVariable [class] @@ -302,9 +304,9 @@ def register_types(module): ## attribute.h (module 'core'): ns3::AttributeAccessor [class] module.add_class('AttributeAccessor', import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::AttributeAccessor, ns3::empty, ns3::DefaultDeleter >']) ## attribute.h (module 'core'): ns3::AttributeChecker [class] - module.add_class('AttributeChecker', allow_subclassing=False, automatic_type_narrowing=True, import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::AttributeChecker, ns3::empty, ns3::DefaultDeleter >']) + module.add_class('AttributeChecker', import_from_module='ns.core', automatic_type_narrowing=True, allow_subclassing=False, parent=root_module['ns3::SimpleRefCount< ns3::AttributeChecker, ns3::empty, ns3::DefaultDeleter >']) ## attribute.h (module 'core'): ns3::AttributeValue [class] - module.add_class('AttributeValue', allow_subclassing=False, automatic_type_narrowing=True, import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::AttributeValue, ns3::empty, ns3::DefaultDeleter >']) + module.add_class('AttributeValue', import_from_module='ns.core', automatic_type_narrowing=True, allow_subclassing=False, parent=root_module['ns3::SimpleRefCount< ns3::AttributeValue, ns3::empty, ns3::DefaultDeleter >']) ## boolean.h (module 'core'): ns3::BooleanChecker [class] module.add_class('BooleanChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker']) ## boolean.h (module 'core'): ns3::BooleanValue [class] @@ -317,6 +319,8 @@ def register_types(module): module.add_class('CallbackValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) ## codel-queue-disc.h (module 'traffic-control'): ns3::CoDelQueueDisc [class] module.add_class('CoDelQueueDisc', parent=root_module['ns3::QueueDisc']) + ## cobalt-queue-disc.h (module 'traffic-control'): ns3::CobaltQueueDisc [class] + module.add_class('CobaltQueueDisc', parent=root_module['ns3::QueueDisc']) ## random-variable-stream.h (module 'core'): ns3::ConstantRandomVariable [class] module.add_class('ConstantRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## data-rate.h (module 'network'): ns3::DataRateChecker [class] @@ -385,25 +389,25 @@ def register_types(module): module.add_class('NetDevice', import_from_module='ns.network', parent=root_module['ns3::Object']) ## net-device.h (module 'network'): ns3::NetDevice::PacketType [enumeration] module.add_enum('PacketType', ['PACKET_HOST', 'NS3_PACKET_HOST', 'PACKET_BROADCAST', 'NS3_PACKET_BROADCAST', 'PACKET_MULTICAST', 'NS3_PACKET_MULTICAST', 'PACKET_OTHERHOST', 'NS3_PACKET_OTHERHOST'], outer_class=root_module['ns3::NetDevice'], import_from_module='ns.network') - typehandlers.add_type_alias(u'void ( * ) ( )', u'ns3::NetDevice::LinkChangeTracedCallback') - typehandlers.add_type_alias(u'void ( * ) ( )*', u'ns3::NetDevice::LinkChangeTracedCallback*') - typehandlers.add_type_alias(u'void ( * ) ( )&', u'ns3::NetDevice::LinkChangeTracedCallback&') - typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::NetDevice::ReceiveCallback') - typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::NetDevice::ReceiveCallback*') - typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::NetDevice::ReceiveCallback&') - typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >', u'ns3::NetDevice::PromiscReceiveCallback') - typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::NetDevice::PromiscReceiveCallback*') - typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::NetDevice::PromiscReceiveCallback&') + typehandlers.add_type_alias('void ( * ) ( )', 'ns3::NetDevice::LinkChangeTracedCallback') + typehandlers.add_type_alias('void ( * ) ( )*', 'ns3::NetDevice::LinkChangeTracedCallback*') + typehandlers.add_type_alias('void ( * ) ( )&', 'ns3::NetDevice::LinkChangeTracedCallback&') + typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::NetDevice::ReceiveCallback') + typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::NetDevice::ReceiveCallback*') + typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::NetDevice::ReceiveCallback&') + typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >', 'ns3::NetDevice::PromiscReceiveCallback') + typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::NetDevice::PromiscReceiveCallback*') + typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::NetDevice::PromiscReceiveCallback&') ## nix-vector.h (module 'network'): ns3::NixVector [class] module.add_class('NixVector', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::NixVector, ns3::empty, ns3::DefaultDeleter >']) ## node.h (module 'network'): ns3::Node [class] module.add_class('Node', import_from_module='ns.network', parent=root_module['ns3::Object']) - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >', u'ns3::Node::ProtocolHandler') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::Node::ProtocolHandler*') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::Node::ProtocolHandler&') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::Node::DeviceAdditionListener') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::Node::DeviceAdditionListener*') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::Node::DeviceAdditionListener&') + typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >', 'ns3::Node::ProtocolHandler') + typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::Node::ProtocolHandler*') + typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::Node::ProtocolHandler&') + typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::Node::DeviceAdditionListener') + typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::Node::DeviceAdditionListener*') + typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::Node::DeviceAdditionListener&') ## random-variable-stream.h (module 'core'): ns3::NormalRandomVariable [class] module.add_class('NormalRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## object-factory.h (module 'core'): ns3::ObjectFactoryChecker [class] @@ -412,24 +416,24 @@ def register_types(module): module.add_class('ObjectFactoryValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) ## packet.h (module 'network'): ns3::Packet [class] module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > )', u'ns3::Packet::TracedCallback') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > )*', u'ns3::Packet::TracedCallback*') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > )&', u'ns3::Packet::TracedCallback&') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )', u'ns3::Packet::AddressTracedCallback') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )*', u'ns3::Packet::AddressTracedCallback*') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )&', u'ns3::Packet::AddressTracedCallback&') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )', u'ns3::Packet::TwoAddressTracedCallback') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )*', u'ns3::Packet::TwoAddressTracedCallback*') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )&', u'ns3::Packet::TwoAddressTracedCallback&') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )', u'ns3::Packet::Mac48AddressTracedCallback') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )*', u'ns3::Packet::Mac48AddressTracedCallback*') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )&', u'ns3::Packet::Mac48AddressTracedCallback&') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t )', u'ns3::Packet::SizeTracedCallback') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t )*', u'ns3::Packet::SizeTracedCallback*') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t )&', u'ns3::Packet::SizeTracedCallback&') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, double )', u'ns3::Packet::SinrTracedCallback') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, double )*', u'ns3::Packet::SinrTracedCallback*') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, double )&', u'ns3::Packet::SinrTracedCallback&') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const > )', 'ns3::Packet::TracedCallback') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const > )*', 'ns3::Packet::TracedCallback*') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const > )&', 'ns3::Packet::TracedCallback&') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )', 'ns3::Packet::AddressTracedCallback') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )*', 'ns3::Packet::AddressTracedCallback*') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )&', 'ns3::Packet::AddressTracedCallback&') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )', 'ns3::Packet::TwoAddressTracedCallback') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )*', 'ns3::Packet::TwoAddressTracedCallback*') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )&', 'ns3::Packet::TwoAddressTracedCallback&') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )', 'ns3::Packet::Mac48AddressTracedCallback') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )*', 'ns3::Packet::Mac48AddressTracedCallback*') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )&', 'ns3::Packet::Mac48AddressTracedCallback&') + typehandlers.add_type_alias('void ( * ) ( uint32_t, uint32_t )', 'ns3::Packet::SizeTracedCallback') + typehandlers.add_type_alias('void ( * ) ( uint32_t, uint32_t )*', 'ns3::Packet::SizeTracedCallback*') + typehandlers.add_type_alias('void ( * ) ( uint32_t, uint32_t )&', 'ns3::Packet::SizeTracedCallback&') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, double )', 'ns3::Packet::SinrTracedCallback') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, double )*', 'ns3::Packet::SinrTracedCallback*') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, double )&', 'ns3::Packet::SinrTracedCallback&') ## random-variable-stream.h (module 'core'): ns3::ParetoRandomVariable [class] module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## pfifo-fast-queue-disc.h (module 'traffic-control'): ns3::PfifoFastQueueDisc [class] @@ -448,9 +452,9 @@ def register_types(module): module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) ## queue-item.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::QueueItem const > )', u'ns3::QueueItem::TracedCallback') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::QueueItem const > )*', u'ns3::QueueItem::TracedCallback*') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::QueueItem const > )&', u'ns3::QueueItem::TracedCallback&') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::QueueItem const > )', 'ns3::QueueItem::TracedCallback') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::QueueItem const > )*', 'ns3::QueueItem::TracedCallback*') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::QueueItem const > )&', 'ns3::QueueItem::TracedCallback&') ## queue-size.h (module 'network'): ns3::QueueSizeChecker [class] module.add_class('QueueSizeChecker', import_from_module='ns.network', parent=root_module['ns3::AttributeChecker']) ## queue-size.h (module 'network'): ns3::QueueSizeValue [class] @@ -472,32 +476,34 @@ def register_types(module): ## address.h (module 'network'): ns3::AddressValue [class] module.add_class('AddressValue', import_from_module='ns.network', parent=root_module['ns3::AttributeValue']) ## callback.h (module 'core'): ns3::CallbackImpl [class] - module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['ns3::ObjectBase *', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) + module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['ns3::ObjectBase *', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) ## callback.h (module 'core'): ns3::CallbackImpl [class] - module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'bool', 'bool', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) + module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'bool', 'bool', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) + ## callback.h (module 'core'): ns3::CallbackImpl [class] + module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'long', 'long', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) ## callback.h (module 'core'): ns3::CallbackImpl, const char *, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> [class] - module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Ptr', 'const char *', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) + module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'ns3::Ptr', 'const char *', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) ## callback.h (module 'core'): ns3::CallbackImpl, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> [class] - module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) + module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) ## callback.h (module 'core'): ns3::CallbackImpl, ns3::Ptr, unsigned short, const ns3::Address &, const ns3::Address &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty> [class] - module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Ptr', 'ns3::Ptr', 'unsigned short', 'const ns3::Address &', 'const ns3::Address &', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) + module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'ns3::Ptr', 'ns3::Ptr', 'unsigned short', 'const ns3::Address &', 'const ns3::Address &', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty']) ## callback.h (module 'core'): ns3::CallbackImpl, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> [class] - module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) + module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) ## callback.h (module 'core'): ns3::CallbackImpl [class] - module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Time', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) + module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'ns3::Time', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) ## callback.h (module 'core'): ns3::CallbackImpl [class] - module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'unsigned int', 'unsigned int', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) + module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'unsigned int', 'unsigned int', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) ## queue-item.h (module 'network'): ns3::QueueDiscItem [class] module.add_class('QueueDiscItem', import_from_module='ns.network', parent=root_module['ns3::QueueItem']) - module.add_container('std::vector< ns3::Ptr< ns3::QueueDisc > >', 'ns3::Ptr< ns3::QueueDisc >', container_type=u'vector') - module.add_container('std::vector< unsigned short >', 'short unsigned int', container_type=u'vector') - module.add_container('ns3::TrafficControlHelper::ClassIdList', 'short unsigned int', container_type=u'vector') - module.add_container('ns3::TrafficControlHelper::HandleList', 'short unsigned int', container_type=u'vector') - module.add_container('std::map< std::string, unsigned int >', ('std::string', 'unsigned int'), container_type=u'map') - module.add_container('std::map< std::string, unsigned long long >', ('std::string', 'long unsigned int'), container_type=u'map') - typehandlers.add_type_alias(u'std::array< unsigned short, 16 >', u'ns3::Priomap') - typehandlers.add_type_alias(u'std::array< unsigned short, 16 >*', u'ns3::Priomap*') - typehandlers.add_type_alias(u'std::array< unsigned short, 16 >&', u'ns3::Priomap&') + module.add_container('std::vector< ns3::Ptr< ns3::QueueDisc > >', 'ns3::Ptr< ns3::QueueDisc >', container_type='vector') + module.add_container('std::vector< unsigned short >', 'short unsigned int', container_type='vector') + module.add_container('ns3::TrafficControlHelper::ClassIdList', 'short unsigned int', container_type='vector') + module.add_container('ns3::TrafficControlHelper::HandleList', 'short unsigned int', container_type='vector') + module.add_container('std::map< std::string, unsigned int >', ('std::string', 'unsigned int'), container_type='map') + module.add_container('std::map< std::string, unsigned long long >', ('std::string', 'long unsigned int'), container_type='map') + typehandlers.add_type_alias('std::array< unsigned short, 16 >', 'ns3::Priomap') + typehandlers.add_type_alias('std::array< unsigned short, 16 >*', 'ns3::Priomap*') + typehandlers.add_type_alias('std::array< unsigned short, 16 >&', 'ns3::Priomap&') ## Register a nested module for the namespace FatalImpl @@ -532,12 +538,12 @@ def register_types_ns3_Hash(module): ## hash-function.h (module 'core'): ns3::Hash::Implementation [class] module.add_class('Implementation', import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::Hash::Implementation, ns3::empty, ns3::DefaultDeleter >']) - typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, std::size_t const )', u'ns3::Hash::Hash32Function_ptr') - typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, std::size_t const )*', u'ns3::Hash::Hash32Function_ptr*') - typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, std::size_t const )&', u'ns3::Hash::Hash32Function_ptr&') - typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, std::size_t const )', u'ns3::Hash::Hash64Function_ptr') - typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, std::size_t const )*', u'ns3::Hash::Hash64Function_ptr*') - typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, std::size_t const )&', u'ns3::Hash::Hash64Function_ptr&') + typehandlers.add_type_alias('uint32_t ( * ) ( char const *, std::size_t const )', 'ns3::Hash::Hash32Function_ptr') + typehandlers.add_type_alias('uint32_t ( * ) ( char const *, std::size_t const )*', 'ns3::Hash::Hash32Function_ptr*') + typehandlers.add_type_alias('uint32_t ( * ) ( char const *, std::size_t const )&', 'ns3::Hash::Hash32Function_ptr&') + typehandlers.add_type_alias('uint64_t ( * ) ( char const *, std::size_t const )', 'ns3::Hash::Hash64Function_ptr') + typehandlers.add_type_alias('uint64_t ( * ) ( char const *, std::size_t const )*', 'ns3::Hash::Hash64Function_ptr*') + typehandlers.add_type_alias('uint64_t ( * ) ( char const *, std::size_t const )&', 'ns3::Hash::Hash64Function_ptr&') ## Register a nested module for the namespace Function @@ -560,36 +566,36 @@ def register_types_ns3_Hash_Function(module): def register_types_ns3_TracedValueCallback(module): root_module = module.get_root() - typehandlers.add_type_alias(u'void ( * ) ( bool, bool )', u'ns3::TracedValueCallback::Bool') - typehandlers.add_type_alias(u'void ( * ) ( bool, bool )*', u'ns3::TracedValueCallback::Bool*') - typehandlers.add_type_alias(u'void ( * ) ( bool, bool )&', u'ns3::TracedValueCallback::Bool&') - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t )', u'ns3::TracedValueCallback::Int8') - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t )*', u'ns3::TracedValueCallback::Int8*') - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t )&', u'ns3::TracedValueCallback::Int8&') - typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t )', u'ns3::TracedValueCallback::Uint8') - typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t )*', u'ns3::TracedValueCallback::Uint8*') - typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t )&', u'ns3::TracedValueCallback::Uint8&') - typehandlers.add_type_alias(u'void ( * ) ( int16_t, int16_t )', u'ns3::TracedValueCallback::Int16') - typehandlers.add_type_alias(u'void ( * ) ( int16_t, int16_t )*', u'ns3::TracedValueCallback::Int16*') - typehandlers.add_type_alias(u'void ( * ) ( int16_t, int16_t )&', u'ns3::TracedValueCallback::Int16&') - typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t )', u'ns3::TracedValueCallback::Uint16') - typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t )*', u'ns3::TracedValueCallback::Uint16*') - typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t )&', u'ns3::TracedValueCallback::Uint16&') - typehandlers.add_type_alias(u'void ( * ) ( int32_t, int32_t )', u'ns3::TracedValueCallback::Int32') - typehandlers.add_type_alias(u'void ( * ) ( int32_t, int32_t )*', u'ns3::TracedValueCallback::Int32*') - typehandlers.add_type_alias(u'void ( * ) ( int32_t, int32_t )&', u'ns3::TracedValueCallback::Int32&') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t )', u'ns3::TracedValueCallback::Uint32') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t )*', u'ns3::TracedValueCallback::Uint32*') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t )&', u'ns3::TracedValueCallback::Uint32&') - typehandlers.add_type_alias(u'void ( * ) ( double, double )', u'ns3::TracedValueCallback::Double') - typehandlers.add_type_alias(u'void ( * ) ( double, double )*', u'ns3::TracedValueCallback::Double*') - typehandlers.add_type_alias(u'void ( * ) ( double, double )&', u'ns3::TracedValueCallback::Double&') - typehandlers.add_type_alias(u'void ( * ) ( )', u'ns3::TracedValueCallback::Void') - typehandlers.add_type_alias(u'void ( * ) ( )*', u'ns3::TracedValueCallback::Void*') - typehandlers.add_type_alias(u'void ( * ) ( )&', u'ns3::TracedValueCallback::Void&') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Time, ns3::Time )', u'ns3::TracedValueCallback::Time') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Time, ns3::Time )*', u'ns3::TracedValueCallback::Time*') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Time, ns3::Time )&', u'ns3::TracedValueCallback::Time&') + typehandlers.add_type_alias('void ( * ) ( bool, bool )', 'ns3::TracedValueCallback::Bool') + typehandlers.add_type_alias('void ( * ) ( bool, bool )*', 'ns3::TracedValueCallback::Bool*') + typehandlers.add_type_alias('void ( * ) ( bool, bool )&', 'ns3::TracedValueCallback::Bool&') + typehandlers.add_type_alias('void ( * ) ( int8_t, int8_t )', 'ns3::TracedValueCallback::Int8') + typehandlers.add_type_alias('void ( * ) ( int8_t, int8_t )*', 'ns3::TracedValueCallback::Int8*') + typehandlers.add_type_alias('void ( * ) ( int8_t, int8_t )&', 'ns3::TracedValueCallback::Int8&') + typehandlers.add_type_alias('void ( * ) ( uint8_t, uint8_t )', 'ns3::TracedValueCallback::Uint8') + typehandlers.add_type_alias('void ( * ) ( uint8_t, uint8_t )*', 'ns3::TracedValueCallback::Uint8*') + typehandlers.add_type_alias('void ( * ) ( uint8_t, uint8_t )&', 'ns3::TracedValueCallback::Uint8&') + typehandlers.add_type_alias('void ( * ) ( int16_t, int16_t )', 'ns3::TracedValueCallback::Int16') + typehandlers.add_type_alias('void ( * ) ( int16_t, int16_t )*', 'ns3::TracedValueCallback::Int16*') + typehandlers.add_type_alias('void ( * ) ( int16_t, int16_t )&', 'ns3::TracedValueCallback::Int16&') + typehandlers.add_type_alias('void ( * ) ( uint16_t, uint16_t )', 'ns3::TracedValueCallback::Uint16') + typehandlers.add_type_alias('void ( * ) ( uint16_t, uint16_t )*', 'ns3::TracedValueCallback::Uint16*') + typehandlers.add_type_alias('void ( * ) ( uint16_t, uint16_t )&', 'ns3::TracedValueCallback::Uint16&') + typehandlers.add_type_alias('void ( * ) ( int32_t, int32_t )', 'ns3::TracedValueCallback::Int32') + typehandlers.add_type_alias('void ( * ) ( int32_t, int32_t )*', 'ns3::TracedValueCallback::Int32*') + typehandlers.add_type_alias('void ( * ) ( int32_t, int32_t )&', 'ns3::TracedValueCallback::Int32&') + typehandlers.add_type_alias('void ( * ) ( uint32_t, uint32_t )', 'ns3::TracedValueCallback::Uint32') + typehandlers.add_type_alias('void ( * ) ( uint32_t, uint32_t )*', 'ns3::TracedValueCallback::Uint32*') + typehandlers.add_type_alias('void ( * ) ( uint32_t, uint32_t )&', 'ns3::TracedValueCallback::Uint32&') + typehandlers.add_type_alias('void ( * ) ( double, double )', 'ns3::TracedValueCallback::Double') + typehandlers.add_type_alias('void ( * ) ( double, double )*', 'ns3::TracedValueCallback::Double*') + typehandlers.add_type_alias('void ( * ) ( double, double )&', 'ns3::TracedValueCallback::Double&') + typehandlers.add_type_alias('void ( * ) ( )', 'ns3::TracedValueCallback::Void') + typehandlers.add_type_alias('void ( * ) ( )*', 'ns3::TracedValueCallback::Void*') + typehandlers.add_type_alias('void ( * ) ( )&', 'ns3::TracedValueCallback::Void&') + typehandlers.add_type_alias('void ( * ) ( ns3::Time, ns3::Time )', 'ns3::TracedValueCallback::Time') + typehandlers.add_type_alias('void ( * ) ( ns3::Time, ns3::Time )*', 'ns3::TracedValueCallback::Time*') + typehandlers.add_type_alias('void ( * ) ( ns3::Time, ns3::Time )&', 'ns3::TracedValueCallback::Time&') def register_types_ns3_internal(module): root_module = module.get_root() @@ -655,6 +661,7 @@ def register_methods(root_module): register_Ns3Timer_methods(root_module, root_module['ns3::Timer']) register_Ns3TimerImpl_methods(root_module, root_module['ns3::TimerImpl']) register_Ns3TracedValue__Bool_methods(root_module, root_module['ns3::TracedValue< bool >']) + register_Ns3TracedValue__Long_methods(root_module, root_module['ns3::TracedValue< long >']) register_Ns3TracedValue__Unsigned_int_methods(root_module, root_module['ns3::TracedValue< unsigned int >']) register_Ns3TrafficControlHelper_methods(root_module, root_module['ns3::TrafficControlHelper']) register_Ns3TypeId_methods(root_module, root_module['ns3::TypeId']) @@ -702,6 +709,7 @@ def register_methods(root_module): register_Ns3CallbackImplBase_methods(root_module, root_module['ns3::CallbackImplBase']) register_Ns3CallbackValue_methods(root_module, root_module['ns3::CallbackValue']) register_Ns3CoDelQueueDisc_methods(root_module, root_module['ns3::CoDelQueueDisc']) + register_Ns3CobaltQueueDisc_methods(root_module, root_module['ns3::CobaltQueueDisc']) register_Ns3ConstantRandomVariable_methods(root_module, root_module['ns3::ConstantRandomVariable']) register_Ns3DataRateChecker_methods(root_module, root_module['ns3::DataRateChecker']) register_Ns3DataRateValue_methods(root_module, root_module['ns3::DataRateValue']) @@ -759,6 +767,7 @@ def register_methods(root_module): register_Ns3AddressValue_methods(root_module, root_module['ns3::AddressValue']) register_Ns3CallbackImpl__Ns3ObjectBase___star___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< ns3::ObjectBase *, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) register_Ns3CallbackImpl__Void_Bool_Bool_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, bool, bool, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) + register_Ns3CallbackImpl__Void_Long_Long_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, long, long, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) register_Ns3CallbackImpl__Void_Ns3Ptr__lt__const_ns3QueueDiscItem__gt___Const_char___star___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, ns3::Ptr, const char *, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) register_Ns3CallbackImpl__Void_Ns3Ptr__lt__const_ns3QueueDiscItem__gt___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, ns3::Ptr, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) register_Ns3CallbackImpl__Void_Ns3Ptr__lt__ns3NetDevice__gt___Ns3Ptr__lt__const_ns3Packet__gt___Unsigned_short_Const_ns3Address___amp___Const_ns3Address___amp___Ns3NetDevicePacketType_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, ns3::Ptr, ns3::Ptr, unsigned short, const ns3::Address &, const ns3::Address &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >']) @@ -1278,7 +1287,7 @@ def register_Ns3DataRate_methods(root_module, cls): cls.add_method('CalculateTxTime', 'double', [param('uint32_t', 'bytes')], - deprecated=True, is_const=True) + is_const=True, deprecated=True) ## data-rate.h (module 'network'): uint64_t ns3::DataRate::GetBitRate() const [member function] cls.add_method('GetBitRate', 'uint64_t', @@ -1789,7 +1798,7 @@ def register_Ns3Ipv6Address_methods(root_module, cls): cls.add_method('IsAllHostsMulticast', 'bool', [], - deprecated=True, is_const=True) + is_const=True, deprecated=True) ## ipv6-address.h (module 'network'): bool ns3::Ipv6Address::IsAllNodesMulticast() const [member function] cls.add_method('IsAllNodesMulticast', 'bool', @@ -2156,7 +2165,7 @@ def register_Ns3ObjectBase_methods(root_module, cls): cls.add_method('GetInstanceTypeId', 'ns3::TypeId', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## object-base.h (module 'core'): static ns3::TypeId ns3::ObjectBase::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -2195,7 +2204,7 @@ def register_Ns3ObjectBase_methods(root_module, cls): cls.add_method('NotifyConstructionCompleted', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') return def register_Ns3ObjectDeleter_methods(root_module, cls): @@ -2228,6 +2237,11 @@ def register_Ns3ObjectFactory_methods(root_module, cls): 'ns3::TypeId', [], is_const=True) + ## object-factory.h (module 'core'): bool ns3::ObjectFactory::IsTypeIdSet() const [member function] + cls.add_method('IsTypeIdSet', + 'bool', + [], + is_const=True) ## object-factory.h (module 'core'): void ns3::ObjectFactory::Set(std::string name, ns3::AttributeValue const & value) [member function] cls.add_method('Set', 'void', @@ -2634,12 +2648,12 @@ def register_Ns3Tag_methods(root_module, cls): cls.add_method('Deserialize', 'void', [param('ns3::TagBuffer', 'i')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## tag.h (module 'network'): uint32_t ns3::Tag::GetSerializedSize() const [member function] cls.add_method('GetSerializedSize', 'uint32_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## tag.h (module 'network'): static ns3::TypeId ns3::Tag::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -2649,12 +2663,12 @@ def register_Ns3Tag_methods(root_module, cls): cls.add_method('Print', 'void', [param('std::ostream &', 'os')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## tag.h (module 'network'): void ns3::Tag::Serialize(ns3::TagBuffer i) const [member function] cls.add_method('Serialize', 'void', [param('ns3::TagBuffer', 'i')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) return def register_Ns3TagBuffer_methods(root_module, cls): @@ -2804,12 +2818,12 @@ def register_Ns3TimerImpl_methods(root_module, cls): cls.add_method('Invoke', 'void', [], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## timer-impl.h (module 'core'): ns3::EventId ns3::TimerImpl::Schedule(ns3::Time const & delay) [member function] cls.add_method('Schedule', 'ns3::EventId', [param('ns3::Time const &', 'delay')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) return def register_Ns3TracedValue__Bool_methods(root_module, cls): @@ -2846,6 +2860,40 @@ def register_Ns3TracedValue__Bool_methods(root_module, cls): [param('bool const &', 'v')]) return +def register_Ns3TracedValue__Long_methods(root_module, cls): + ## traced-value.h (module 'core'): ns3::TracedValue::TracedValue() [constructor] + cls.add_constructor([]) + ## traced-value.h (module 'core'): ns3::TracedValue::TracedValue(ns3::TracedValue const & o) [constructor] + cls.add_constructor([param('ns3::TracedValue< long > const &', 'o')]) + ## traced-value.h (module 'core'): ns3::TracedValue::TracedValue(long int const & v) [constructor] + cls.add_constructor([param('long int const &', 'v')]) + ## traced-value.h (module 'core'): void ns3::TracedValue::Connect(ns3::CallbackBase const & cb, std::string path) [member function] + cls.add_method('Connect', + 'void', + [param('ns3::CallbackBase const &', 'cb'), param('std::string', 'path')]) + ## traced-value.h (module 'core'): void ns3::TracedValue::ConnectWithoutContext(ns3::CallbackBase const & cb) [member function] + cls.add_method('ConnectWithoutContext', + 'void', + [param('ns3::CallbackBase const &', 'cb')]) + ## traced-value.h (module 'core'): void ns3::TracedValue::Disconnect(ns3::CallbackBase const & cb, std::string path) [member function] + cls.add_method('Disconnect', + 'void', + [param('ns3::CallbackBase const &', 'cb'), param('std::string', 'path')]) + ## traced-value.h (module 'core'): void ns3::TracedValue::DisconnectWithoutContext(ns3::CallbackBase const & cb) [member function] + cls.add_method('DisconnectWithoutContext', + 'void', + [param('ns3::CallbackBase const &', 'cb')]) + ## traced-value.h (module 'core'): long int ns3::TracedValue::Get() const [member function] + cls.add_method('Get', + 'long int', + [], + is_const=True) + ## traced-value.h (module 'core'): void ns3::TracedValue::Set(long int const & v) [member function] + cls.add_method('Set', + 'void', + [param('long int const &', 'v')]) + return + def register_Ns3TracedValue__Unsigned_int_methods(root_module, cls): ## traced-value.h (module 'core'): ns3::TracedValue::TracedValue() [constructor] cls.add_constructor([]) @@ -2905,10 +2953,10 @@ def register_Ns3TrafficControlHelper_methods(root_module, cls): cls.add_method('AddQueueDiscClasses', 'ns3::TrafficControlHelper::ClassIdList', [param('uint16_t', 'handle'), param('uint16_t', 'count'), param('std::string', 'type'), param('std::string', 'n01', default_value='""'), param('ns3::AttributeValue const &', 'v01', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n02', default_value='""'), param('ns3::AttributeValue const &', 'v02', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n03', default_value='""'), param('ns3::AttributeValue const &', 'v03', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n04', default_value='""'), param('ns3::AttributeValue const &', 'v04', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n05', default_value='""'), param('ns3::AttributeValue const &', 'v05', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n06', default_value='""'), param('ns3::AttributeValue const &', 'v06', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n07', default_value='""'), param('ns3::AttributeValue const &', 'v07', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n08', default_value='""'), param('ns3::AttributeValue const &', 'v08', default_value='ns3::EmptyAttributeValue()')]) - ## traffic-control-helper.h (module 'traffic-control'): static ns3::TrafficControlHelper ns3::TrafficControlHelper::Default() [member function] + ## traffic-control-helper.h (module 'traffic-control'): static ns3::TrafficControlHelper ns3::TrafficControlHelper::Default(std::size_t nTxQueues=1) [member function] cls.add_method('Default', 'ns3::TrafficControlHelper', - [], + [param('std::size_t', 'nTxQueues', default_value='1')], is_static=True) ## traffic-control-helper.h (module 'traffic-control'): ns3::QueueDiscContainer ns3::TrafficControlHelper::Install(ns3::NetDeviceContainer c) [member function] cls.add_method('Install', @@ -3161,11 +3209,11 @@ def register_Ns3Empty_methods(root_module, cls): return def register_Ns3Int64x64_t_methods(root_module, cls): - cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::int64x64_t'], param('ns3::Time const &', u'right')) - cls.add_binary_numeric_operator('+', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) - cls.add_binary_numeric_operator('-', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) - cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) - cls.add_binary_numeric_operator('/', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) + cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::int64x64_t'], param('ns3::Time const &', 'right')) + cls.add_binary_numeric_operator('+', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', 'right')) + cls.add_binary_numeric_operator('-', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', 'right')) + cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', 'right')) + cls.add_binary_numeric_operator('/', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', 'right')) cls.add_binary_comparison_operator('!=') cls.add_binary_comparison_operator('<=') cls.add_binary_comparison_operator('>=') @@ -3173,10 +3221,10 @@ def register_Ns3Int64x64_t_methods(root_module, cls): cls.add_binary_comparison_operator('==') cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('>') - cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', u'right')) - cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', u'right')) - cls.add_inplace_numeric_operator('*=', param('ns3::int64x64_t const &', u'right')) - cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', u'right')) + cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', 'right')) + cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', 'right')) + cls.add_inplace_numeric_operator('*=', param('ns3::int64x64_t const &', 'right')) + cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', 'right')) cls.add_unary_numeric_operator('-') ## int64x64-128.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor] cls.add_constructor([]) @@ -3237,7 +3285,7 @@ def register_Ns3Chunk_methods(root_module, cls): cls.add_method('Deserialize', 'uint32_t', [param('ns3::Buffer::Iterator', 'start')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## chunk.h (module 'network'): uint32_t ns3::Chunk::Deserialize(ns3::Buffer::Iterator start, ns3::Buffer::Iterator end) [member function] cls.add_method('Deserialize', 'uint32_t', @@ -3252,7 +3300,7 @@ def register_Ns3Chunk_methods(root_module, cls): cls.add_method('Print', 'void', [param('std::ostream &', 'os')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) return def register_Ns3Header_methods(root_module, cls): @@ -3265,12 +3313,12 @@ def register_Ns3Header_methods(root_module, cls): cls.add_method('Deserialize', 'uint32_t', [param('ns3::Buffer::Iterator', 'start')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## header.h (module 'network'): uint32_t ns3::Header::GetSerializedSize() const [member function] cls.add_method('GetSerializedSize', 'uint32_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## header.h (module 'network'): static ns3::TypeId ns3::Header::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -3280,12 +3328,12 @@ def register_Ns3Header_methods(root_module, cls): cls.add_method('Print', 'void', [param('std::ostream &', 'os')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## header.h (module 'network'): void ns3::Header::Serialize(ns3::Buffer::Iterator start) const [member function] cls.add_method('Serialize', 'void', [param('ns3::Buffer::Iterator', 'start')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) return def register_Ns3Object_methods(root_module, cls): @@ -3330,17 +3378,17 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') ## object.h (module 'core'): void ns3::Object::DoInitialize() [member function] cls.add_method('DoInitialize', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') ## object.h (module 'core'): void ns3::Object::NotifyNewAggregate() [member function] cls.add_method('NotifyNewAggregate', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') return def register_Ns3ObjectAggregateIterator_methods(root_module, cls): @@ -3380,12 +3428,12 @@ def register_Ns3PacketFilter_methods(root_module, cls): cls.add_method('CheckProtocol', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True, visibility='private') ## packet-filter.h (module 'traffic-control'): int32_t ns3::PacketFilter::DoClassify(ns3::Ptr item) const [member function] cls.add_method('DoClassify', 'int32_t', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True, visibility='private') return def register_Ns3QueueDisc_methods(root_module, cls): @@ -3528,12 +3576,12 @@ def register_Ns3QueueDisc_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') ## queue-disc.h (module 'traffic-control'): void ns3::QueueDisc::DoInitialize() [member function] cls.add_method('DoInitialize', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') ## queue-disc.h (module 'traffic-control'): void ns3::QueueDisc::DropAfterDequeue(ns3::Ptr item, char const * reason) [member function] cls.add_method('DropAfterDequeue', 'void', @@ -3553,27 +3601,27 @@ def register_Ns3QueueDisc_methods(root_module, cls): cls.add_method('CheckConfig', 'bool', [], - is_pure_virtual=True, visibility='private', is_virtual=True) + is_virtual=True, is_pure_virtual=True, visibility='private') ## queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::QueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - is_pure_virtual=True, visibility='private', is_virtual=True) + is_virtual=True, is_pure_virtual=True, visibility='private') ## queue-disc.h (module 'traffic-control'): bool ns3::QueueDisc::DoEnqueue(ns3::Ptr item) [member function] cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_pure_virtual=True, visibility='private', is_virtual=True) + is_virtual=True, is_pure_virtual=True, visibility='private') ## queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::QueueDisc::DoPeek() [member function] cls.add_method('DoPeek', 'ns3::Ptr< ns3::QueueDiscItem const >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## queue-disc.h (module 'traffic-control'): void ns3::QueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - is_pure_virtual=True, visibility='private', is_virtual=True) + is_virtual=True, is_pure_virtual=True, visibility='private') return def register_Ns3QueueDiscStats_methods(root_module, cls): @@ -3680,7 +3728,7 @@ def register_Ns3QueueDiscClass_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') return def register_Ns3RandomVariableStream_methods(root_module, cls): @@ -3713,12 +3761,12 @@ def register_Ns3RandomVariableStream_methods(root_module, cls): cls.add_method('GetValue', 'double', [], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## random-variable-stream.h (module 'core'): uint32_t ns3::RandomVariableStream::GetInteger() [member function] cls.add_method('GetInteger', 'uint32_t', [], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## random-variable-stream.h (module 'core'): ns3::RngStream * ns3::RandomVariableStream::Peek() const [member function] cls.add_method('Peek', 'ns3::RngStream *', @@ -3786,32 +3834,32 @@ def register_Ns3RedQueueDisc_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') ## red-queue-disc.h (module 'traffic-control'): bool ns3::RedQueueDisc::DoEnqueue(ns3::Ptr item) [member function] cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## red-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::RedQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## red-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::RedQueueDisc::DoPeek() [member function] cls.add_method('DoPeek', 'ns3::Ptr< ns3::QueueDiscItem const >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## red-queue-disc.h (module 'traffic-control'): bool ns3::RedQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## red-queue-disc.h (module 'traffic-control'): void ns3::RedQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') return def register_Ns3SequentialRandomVariable_methods(root_module, cls): @@ -3982,27 +4030,27 @@ def register_Ns3TbfQueueDisc_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') ## tbf-queue-disc.h (module 'traffic-control'): bool ns3::TbfQueueDisc::DoEnqueue(ns3::Ptr item) [member function] cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## tbf-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::TbfQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## tbf-queue-disc.h (module 'traffic-control'): bool ns3::TbfQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## tbf-queue-disc.h (module 'traffic-control'): void ns3::TbfQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') return def register_Ns3Time_methods(root_module, cls): @@ -4012,15 +4060,15 @@ 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_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_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right')) + cls.add_binary_numeric_operator('-', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right')) + cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('int64_t const &', 'right')) + cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::int64x64_t const &', 'right')) + cls.add_binary_numeric_operator('/', root_module['ns3::int64x64_t'], root_module['ns3::Time'], param('ns3::Time const &', 'right')) + cls.add_binary_numeric_operator('/', root_module['ns3::Time'], root_module['ns3::Time'], param('int64_t const &', 'right')) + cls.add_binary_numeric_operator('/', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::int64x64_t const &', 'right')) + cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right')) + cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right')) cls.add_output_stream_operator() ## nstime.h (module 'core'): ns3::Time::Time() [constructor] cls.add_constructor([]) @@ -4215,22 +4263,22 @@ def register_Ns3TraceSourceAccessor_methods(root_module, cls): cls.add_method('Connect', 'bool', [param('ns3::ObjectBase *', 'obj', transfer_ownership=False), param('std::string', 'context'), param('ns3::CallbackBase const &', 'cb')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## trace-source-accessor.h (module 'core'): bool ns3::TraceSourceAccessor::ConnectWithoutContext(ns3::ObjectBase * obj, ns3::CallbackBase const & cb) const [member function] cls.add_method('ConnectWithoutContext', 'bool', [param('ns3::ObjectBase *', 'obj', transfer_ownership=False), param('ns3::CallbackBase const &', 'cb')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## trace-source-accessor.h (module 'core'): bool ns3::TraceSourceAccessor::Disconnect(ns3::ObjectBase * obj, std::string context, ns3::CallbackBase const & cb) const [member function] cls.add_method('Disconnect', 'bool', [param('ns3::ObjectBase *', 'obj', transfer_ownership=False), param('std::string', 'context'), param('ns3::CallbackBase const &', 'cb')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## trace-source-accessor.h (module 'core'): bool ns3::TraceSourceAccessor::DisconnectWithoutContext(ns3::ObjectBase * obj, ns3::CallbackBase const & cb) const [member function] cls.add_method('DisconnectWithoutContext', 'bool', [param('ns3::ObjectBase *', 'obj', transfer_ownership=False), param('ns3::CallbackBase const &', 'cb')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) return def register_Ns3TrafficControlLayer_methods(root_module, cls): @@ -4288,17 +4336,17 @@ def register_Ns3TrafficControlLayer_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') ## traffic-control-layer.h (module 'traffic-control'): void ns3::TrafficControlLayer::DoInitialize() [member function] cls.add_method('DoInitialize', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') ## traffic-control-layer.h (module 'traffic-control'): void ns3::TrafficControlLayer::NotifyNewAggregate() [member function] cls.add_method('NotifyNewAggregate', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') return def register_Ns3Trailer_methods(root_module, cls): @@ -4311,7 +4359,7 @@ def register_Ns3Trailer_methods(root_module, cls): cls.add_method('Deserialize', 'uint32_t', [param('ns3::Buffer::Iterator', 'end')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## trailer.h (module 'network'): uint32_t ns3::Trailer::Deserialize(ns3::Buffer::Iterator start, ns3::Buffer::Iterator end) [member function] cls.add_method('Deserialize', 'uint32_t', @@ -4321,7 +4369,7 @@ def register_Ns3Trailer_methods(root_module, cls): cls.add_method('GetSerializedSize', 'uint32_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## trailer.h (module 'network'): static ns3::TypeId ns3::Trailer::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -4331,12 +4379,12 @@ def register_Ns3Trailer_methods(root_module, cls): cls.add_method('Print', 'void', [param('std::ostream &', 'os')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## trailer.h (module 'network'): void ns3::Trailer::Serialize(ns3::Buffer::Iterator start) const [member function] cls.add_method('Serialize', 'void', [param('ns3::Buffer::Iterator', 'start')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) return def register_Ns3TriangularRandomVariable_methods(root_module, cls): @@ -4543,22 +4591,22 @@ def register_Ns3AttributeAccessor_methods(root_module, cls): cls.add_method('Get', 'bool', [param('ns3::ObjectBase const *', 'object'), param('ns3::AttributeValue &', 'attribute')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## attribute.h (module 'core'): bool ns3::AttributeAccessor::HasGetter() const [member function] cls.add_method('HasGetter', 'bool', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## attribute.h (module 'core'): bool ns3::AttributeAccessor::HasSetter() const [member function] cls.add_method('HasSetter', 'bool', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## attribute.h (module 'core'): bool ns3::AttributeAccessor::Set(ns3::ObjectBase * object, ns3::AttributeValue const & value) const [member function] cls.add_method('Set', 'bool', [param('ns3::ObjectBase *', 'object', transfer_ownership=False), param('ns3::AttributeValue const &', 'value')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) return def register_Ns3AttributeChecker_methods(root_module, cls): @@ -4570,17 +4618,17 @@ def register_Ns3AttributeChecker_methods(root_module, cls): cls.add_method('Check', 'bool', [param('ns3::AttributeValue const &', 'value')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## attribute.h (module 'core'): bool ns3::AttributeChecker::Copy(ns3::AttributeValue const & source, ns3::AttributeValue & destination) const [member function] cls.add_method('Copy', 'bool', [param('ns3::AttributeValue const &', 'source'), param('ns3::AttributeValue &', 'destination')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## attribute.h (module 'core'): ns3::Ptr ns3::AttributeChecker::Create() const [member function] cls.add_method('Create', 'ns3::Ptr< ns3::AttributeValue >', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## attribute.h (module 'core'): ns3::Ptr ns3::AttributeChecker::CreateValidValue(ns3::AttributeValue const & value) const [member function] cls.add_method('CreateValidValue', 'ns3::Ptr< ns3::AttributeValue >', @@ -4590,17 +4638,17 @@ def register_Ns3AttributeChecker_methods(root_module, cls): cls.add_method('GetUnderlyingTypeInformation', 'std::string', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## attribute.h (module 'core'): std::string ns3::AttributeChecker::GetValueTypeName() const [member function] cls.add_method('GetValueTypeName', 'std::string', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## attribute.h (module 'core'): bool ns3::AttributeChecker::HasUnderlyingTypeInformation() const [member function] cls.add_method('HasUnderlyingTypeInformation', 'bool', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) return def register_Ns3AttributeValue_methods(root_module, cls): @@ -4612,17 +4660,17 @@ def register_Ns3AttributeValue_methods(root_module, cls): cls.add_method('Copy', 'ns3::Ptr< ns3::AttributeValue >', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## attribute.h (module 'core'): bool ns3::AttributeValue::DeserializeFromString(std::string value, ns3::Ptr checker) [member function] cls.add_method('DeserializeFromString', 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## attribute.h (module 'core'): std::string ns3::AttributeValue::SerializeToString(ns3::Ptr checker) const [member function] cls.add_method('SerializeToString', 'std::string', [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) return def register_Ns3BooleanChecker_methods(root_module, cls): @@ -4682,12 +4730,12 @@ def register_Ns3CallbackImplBase_methods(root_module, cls): cls.add_method('GetTypeid', 'std::string', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## callback.h (module 'core'): bool ns3::CallbackImplBase::IsEqual(ns3::Ptr other) const [member function] cls.add_method('IsEqual', 'bool', [param('ns3::Ptr< ns3::CallbackImplBase const >', 'other')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::Demangle(std::string const & mangled) [member function] cls.add_method('Demangle', 'std::string', @@ -4697,62 +4745,67 @@ def register_Ns3CallbackImplBase_methods(root_module, cls): cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, visibility='protected', template_parameters=[u'ns3::ObjectBase*']) + is_static=True, template_parameters=['ns3::ObjectBase*'], visibility='protected') + ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] + cls.add_method('GetCppTypeid', + 'std::string', + [], + is_static=True, template_parameters=['void'], visibility='protected') ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, visibility='protected', template_parameters=[u'void']) + is_static=True, template_parameters=['unsigned int'], visibility='protected') ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, visibility='protected', template_parameters=[u'unsigned int']) + is_static=True, template_parameters=['long'], visibility='protected') ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, visibility='protected', template_parameters=[u'bool']) + is_static=True, template_parameters=['bool'], visibility='protected') ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, visibility='protected', template_parameters=[u'ns3::Time']) + is_static=True, template_parameters=['ns3::Time'], visibility='protected') ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, visibility='protected', template_parameters=[u'ns3::Ptr ']) + is_static=True, template_parameters=['ns3::Ptr '], visibility='protected') ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, visibility='protected', template_parameters=[u'char const*']) + is_static=True, template_parameters=['char const*'], visibility='protected') ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, visibility='protected', template_parameters=[u'ns3::Ptr ']) + is_static=True, template_parameters=['ns3::Ptr '], visibility='protected') ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, visibility='protected', template_parameters=[u'ns3::Ptr ']) + is_static=True, template_parameters=['ns3::Ptr '], visibility='protected') ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, visibility='protected', template_parameters=[u'unsigned short']) + is_static=True, template_parameters=['unsigned short'], visibility='protected') ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, visibility='protected', template_parameters=[u'ns3::Address const&']) + is_static=True, template_parameters=['ns3::Address const&'], visibility='protected') ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, visibility='protected', template_parameters=[u'ns3::NetDevice::PacketType']) + is_static=True, template_parameters=['ns3::NetDevice::PacketType'], visibility='protected') return def register_Ns3CallbackValue_methods(root_module, cls): @@ -4811,22 +4864,92 @@ def register_Ns3CoDelQueueDisc_methods(root_module, cls): cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## codel-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::CoDelQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## codel-queue-disc.h (module 'traffic-control'): bool ns3::CoDelQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## codel-queue-disc.h (module 'traffic-control'): void ns3::CoDelQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') + return + +def register_Ns3CobaltQueueDisc_methods(root_module, cls): + ## cobalt-queue-disc.h (module 'traffic-control'): static ns3::TypeId ns3::CobaltQueueDisc::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## cobalt-queue-disc.h (module 'traffic-control'): ns3::CobaltQueueDisc::CobaltQueueDisc() [constructor] + cls.add_constructor([]) + ## cobalt-queue-disc.h (module 'traffic-control'): ns3::Time ns3::CobaltQueueDisc::GetTarget() [member function] + cls.add_method('GetTarget', + 'ns3::Time', + []) + ## cobalt-queue-disc.h (module 'traffic-control'): ns3::Time ns3::CobaltQueueDisc::GetInterval() [member function] + cls.add_method('GetInterval', + 'ns3::Time', + []) + ## cobalt-queue-disc.h (module 'traffic-control'): int64_t ns3::CobaltQueueDisc::GetDropNext() [member function] + cls.add_method('GetDropNext', + 'int64_t', + []) + ## cobalt-queue-disc.h (module 'traffic-control'): ns3::CobaltQueueDisc::TARGET_EXCEEDED_DROP [variable] + cls.add_static_attribute('TARGET_EXCEEDED_DROP', 'char const * const', is_const=True) + ## cobalt-queue-disc.h (module 'traffic-control'): ns3::CobaltQueueDisc::OVERLIMIT_DROP [variable] + cls.add_static_attribute('OVERLIMIT_DROP', 'char const * const', is_const=True) + ## cobalt-queue-disc.h (module 'traffic-control'): ns3::CobaltQueueDisc::FORCED_MARK [variable] + cls.add_static_attribute('FORCED_MARK', 'char const * const', is_const=True) + ## cobalt-queue-disc.h (module 'traffic-control'): double ns3::CobaltQueueDisc::GetPdrop() [member function] + cls.add_method('GetPdrop', + 'double', + []) + ## cobalt-queue-disc.h (module 'traffic-control'): int64_t ns3::CobaltQueueDisc::AssignStreams(int64_t stream) [member function] + cls.add_method('AssignStreams', + 'int64_t', + [param('int64_t', 'stream')]) + ## cobalt-queue-disc.h (module 'traffic-control'): int64_t ns3::CobaltQueueDisc::Time2CoDel(ns3::Time t) [member function] + cls.add_method('Time2CoDel', + 'int64_t', + [param('ns3::Time', 't')]) + ## cobalt-queue-disc.h (module 'traffic-control'): void ns3::CobaltQueueDisc::DoDispose() [member function] + cls.add_method('DoDispose', + 'void', + [], + is_virtual=True, visibility='protected') + ## cobalt-queue-disc.h (module 'traffic-control'): bool ns3::CobaltQueueDisc::DoEnqueue(ns3::Ptr item) [member function] + cls.add_method('DoEnqueue', + 'bool', + [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], + is_virtual=True, visibility='private') + ## cobalt-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::CobaltQueueDisc::DoDequeue() [member function] + cls.add_method('DoDequeue', + 'ns3::Ptr< ns3::QueueDiscItem >', + [], + is_virtual=True, visibility='private') + ## cobalt-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::CobaltQueueDisc::DoPeek() [member function] + cls.add_method('DoPeek', + 'ns3::Ptr< ns3::QueueDiscItem const >', + [], + is_virtual=True, visibility='private') + ## cobalt-queue-disc.h (module 'traffic-control'): bool ns3::CobaltQueueDisc::CheckConfig() [member function] + cls.add_method('CheckConfig', + 'bool', + [], + is_virtual=True, visibility='private') + ## cobalt-queue-disc.h (module 'traffic-control'): void ns3::CobaltQueueDisc::InitializeParams() [member function] + cls.add_method('InitializeParams', + 'void', + [], + is_virtual=True, visibility='private') return def register_Ns3ConstantRandomVariable_methods(root_module, cls): @@ -4985,12 +5108,12 @@ def register_Ns3EmpiricalRandomVariable_methods(root_module, cls): cls.add_method('Interpolate', 'double', [param('double', 'c1'), param('double', 'c2'), param('double', 'v1'), param('double', 'v2'), param('double', 'r')], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## random-variable-stream.h (module 'core'): void ns3::EmpiricalRandomVariable::Validate() [member function] cls.add_method('Validate', 'void', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') return def register_Ns3EmptyAttributeAccessor_methods(root_module, cls): @@ -5066,17 +5189,17 @@ def register_Ns3EmptyAttributeValue_methods(root_module, cls): cls.add_method('Copy', 'ns3::Ptr< ns3::AttributeValue >', [], - is_const=True, visibility='private', is_virtual=True) + is_const=True, is_virtual=True, visibility='private') ## attribute.h (module 'core'): bool ns3::EmptyAttributeValue::DeserializeFromString(std::string value, ns3::Ptr checker) [member function] cls.add_method('DeserializeFromString', 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## attribute.h (module 'core'): std::string ns3::EmptyAttributeValue::SerializeToString(ns3::Ptr checker) const [member function] cls.add_method('SerializeToString', 'std::string', [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], - is_const=True, visibility='private', is_virtual=True) + is_const=True, is_virtual=True, visibility='private') return def register_Ns3EnumChecker_methods(root_module, cls): @@ -5216,7 +5339,7 @@ def register_Ns3EventImpl_methods(root_module, cls): cls.add_method('Notify', 'void', [], - is_pure_virtual=True, visibility='protected', is_virtual=True) + is_virtual=True, is_pure_virtual=True, visibility='protected') return def register_Ns3ExponentialRandomVariable_methods(root_module, cls): @@ -5271,27 +5394,27 @@ def register_Ns3FifoQueueDisc_methods(root_module, cls): cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## fifo-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::FifoQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## fifo-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::FifoQueueDisc::DoPeek() [member function] cls.add_method('DoPeek', 'ns3::Ptr< ns3::QueueDiscItem const >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## fifo-queue-disc.h (module 'traffic-control'): bool ns3::FifoQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## fifo-queue-disc.h (module 'traffic-control'): void ns3::FifoQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') return def register_Ns3FqCoDelFlow_methods(root_module, cls): @@ -5353,22 +5476,22 @@ def register_Ns3FqCoDelQueueDisc_methods(root_module, cls): cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## fq-codel-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::FqCoDelQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## fq-codel-queue-disc.h (module 'traffic-control'): bool ns3::FqCoDelQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## fq-codel-queue-disc.h (module 'traffic-control'): void ns3::FqCoDelQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') return def register_Ns3GammaRandomVariable_methods(root_module, cls): @@ -5697,27 +5820,27 @@ def register_Ns3MqQueueDisc_methods(root_module, cls): cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## mq-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::MqQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## mq-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::MqQueueDisc::DoPeek() [member function] cls.add_method('DoPeek', 'ns3::Ptr< ns3::QueueDiscItem const >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## mq-queue-disc.h (module 'traffic-control'): bool ns3::MqQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## mq-queue-disc.h (module 'traffic-control'): void ns3::MqQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') return def register_Ns3NetDevice_methods(root_module, cls): @@ -5729,47 +5852,47 @@ def register_Ns3NetDevice_methods(root_module, cls): cls.add_method('AddLinkChangeCallback', 'void', [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): ns3::Address ns3::NetDevice::GetAddress() const [member function] cls.add_method('GetAddress', 'ns3::Address', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): ns3::Address ns3::NetDevice::GetBroadcast() const [member function] cls.add_method('GetBroadcast', 'ns3::Address', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDevice::GetChannel() const [member function] cls.add_method('GetChannel', 'ns3::Ptr< ns3::Channel >', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): uint32_t ns3::NetDevice::GetIfIndex() const [member function] cls.add_method('GetIfIndex', 'uint32_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): uint16_t ns3::NetDevice::GetMtu() const [member function] cls.add_method('GetMtu', 'uint16_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): ns3::Address ns3::NetDevice::GetMulticast(ns3::Ipv4Address multicastGroup) const [member function] cls.add_method('GetMulticast', 'ns3::Address', [param('ns3::Ipv4Address', 'multicastGroup')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): ns3::Address ns3::NetDevice::GetMulticast(ns3::Ipv6Address addr) const [member function] cls.add_method('GetMulticast', 'ns3::Address', [param('ns3::Ipv6Address', 'addr')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDevice::GetNode() const [member function] cls.add_method('GetNode', 'ns3::Ptr< ns3::Node >', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDevice::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -5779,77 +5902,77 @@ def register_Ns3NetDevice_methods(root_module, cls): cls.add_method('IsBridge', 'bool', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::IsBroadcast() const [member function] cls.add_method('IsBroadcast', 'bool', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::IsLinkUp() const [member function] cls.add_method('IsLinkUp', 'bool', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::IsMulticast() const [member function] cls.add_method('IsMulticast', 'bool', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::IsPointToPoint() const [member function] cls.add_method('IsPointToPoint', 'bool', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::NeedsArp() const [member function] cls.add_method('NeedsArp', 'bool', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::Send(ns3::Ptr packet, ns3::Address const & dest, uint16_t protocolNumber) [member function] cls.add_method('Send', 'bool', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::SendFrom(ns3::Ptr packet, ns3::Address const & source, ns3::Address const & dest, uint16_t protocolNumber) [member function] cls.add_method('SendFrom', 'bool', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): void ns3::NetDevice::SetAddress(ns3::Address address) [member function] cls.add_method('SetAddress', 'void', [param('ns3::Address', 'address')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): void ns3::NetDevice::SetIfIndex(uint32_t const index) [member function] cls.add_method('SetIfIndex', 'void', [param('uint32_t const', 'index')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::SetMtu(uint16_t const mtu) [member function] cls.add_method('SetMtu', 'bool', [param('uint16_t const', 'mtu')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): void ns3::NetDevice::SetNode(ns3::Ptr node) [member function] cls.add_method('SetNode', 'void', [param('ns3::Ptr< ns3::Node >', 'node')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): void ns3::NetDevice::SetPromiscReceiveCallback(ns3::NetDevice::PromiscReceiveCallback cb) [member function] cls.add_method('SetPromiscReceiveCallback', 'void', [param('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >', 'cb')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): void ns3::NetDevice::SetReceiveCallback(ns3::NetDevice::ReceiveCallback cb) [member function] cls.add_method('SetReceiveCallback', 'void', [param('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::SupportsSendFrom() const [member function] cls.add_method('SupportsSendFrom', 'bool', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) return def register_Ns3NixVector_methods(root_module, cls): @@ -5976,12 +6099,12 @@ def register_Ns3Node_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') ## node.h (module 'network'): void ns3::Node::DoInitialize() [member function] cls.add_method('DoInitialize', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') return def register_Ns3NormalRandomVariable_methods(root_module, cls): @@ -6090,6 +6213,11 @@ def register_Ns3Packet_methods(root_module, cls): 'void', [param('ns3::Tag const &', 'tag')], is_const=True) + ## packet.h (module 'network'): void ns3::Packet::AddByteTag(ns3::Tag const & tag, uint32_t start, uint32_t end) const [member function] + cls.add_method('AddByteTag', + 'void', + [param('ns3::Tag const &', 'tag'), param('uint32_t', 'start'), param('uint32_t', 'end')], + is_const=True) ## packet.h (module 'network'): void ns3::Packet::AddHeader(ns3::Header const & header) [member function] cls.add_method('AddHeader', 'void', @@ -6275,7 +6403,7 @@ def register_Ns3ParetoRandomVariable_methods(root_module, cls): cls.add_method('GetMean', 'double', [], - deprecated=True, is_const=True) + is_const=True, deprecated=True) ## random-variable-stream.h (module 'core'): double ns3::ParetoRandomVariable::GetScale() const [member function] cls.add_method('GetScale', 'double', @@ -6325,27 +6453,27 @@ def register_Ns3PfifoFastQueueDisc_methods(root_module, cls): cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## pfifo-fast-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::PfifoFastQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## pfifo-fast-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::PfifoFastQueueDisc::DoPeek() [member function] cls.add_method('DoPeek', 'ns3::Ptr< ns3::QueueDiscItem const >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## pfifo-fast-queue-disc.h (module 'traffic-control'): bool ns3::PfifoFastQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## pfifo-fast-queue-disc.h (module 'traffic-control'): void ns3::PfifoFastQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') return def register_Ns3PieQueueDisc_methods(root_module, cls): @@ -6372,27 +6500,27 @@ def register_Ns3PieQueueDisc_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') ## pie-queue-disc.h (module 'traffic-control'): bool ns3::PieQueueDisc::DoEnqueue(ns3::Ptr item) [member function] cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## pie-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::PieQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## pie-queue-disc.h (module 'traffic-control'): bool ns3::PieQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## pie-queue-disc.h (module 'traffic-control'): void ns3::PieQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') return def register_Ns3PrioQueueDisc_methods(root_module, cls): @@ -6416,27 +6544,27 @@ def register_Ns3PrioQueueDisc_methods(root_module, cls): cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## prio-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::PrioQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## prio-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::PrioQueueDisc::DoPeek() [member function] cls.add_method('DoPeek', 'ns3::Ptr< ns3::QueueDiscItem const >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## prio-queue-disc.h (module 'traffic-control'): bool ns3::PrioQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## prio-queue-disc.h (module 'traffic-control'): void ns3::PrioQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') return def register_Ns3PriomapChecker_methods(root_module, cls): @@ -6750,7 +6878,7 @@ def register_Ns3CallbackImpl__Ns3ObjectBase___star___Ns3Empty_Ns3Empty_Ns3Empty_ cls.add_method('operator()', 'ns3::ObjectBase *', [], - is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') + custom_name='__call__', is_virtual=True, is_pure_virtual=True) return def register_Ns3CallbackImpl__Void_Bool_Bool_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -6772,7 +6900,29 @@ def register_Ns3CallbackImpl__Void_Bool_Bool_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty cls.add_method('operator()', 'void', [param('bool', 'arg0'), param('bool', 'arg1')], - is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') + custom_name='__call__', is_virtual=True, is_pure_virtual=True) + return + +def register_Ns3CallbackImpl__Void_Long_Long_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): + ## callback.h (module 'core'): ns3::CallbackImpl::CallbackImpl() [constructor] + cls.add_constructor([]) + ## callback.h (module 'core'): ns3::CallbackImpl::CallbackImpl(ns3::CallbackImpl const & arg0) [constructor] + cls.add_constructor([param('ns3::CallbackImpl< void, long, long, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty > const &', 'arg0')]) + ## callback.h (module 'core'): static std::string ns3::CallbackImpl::DoGetTypeid() [member function] + cls.add_method('DoGetTypeid', + 'std::string', + [], + is_static=True) + ## callback.h (module 'core'): std::string ns3::CallbackImpl::GetTypeid() const [member function] + cls.add_method('GetTypeid', + 'std::string', + [], + is_const=True, is_virtual=True) + ## callback.h (module 'core'): void ns3::CallbackImpl::operator()(long int arg0, long int arg1) [member operator] + cls.add_method('operator()', + 'void', + [param('long int', 'arg0'), param('long int', 'arg1')], + custom_name='__call__', is_virtual=True, is_pure_virtual=True) return def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__const_ns3QueueDiscItem__gt___Const_char___star___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -6794,7 +6944,7 @@ def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__const_ns3QueueDiscItem__gt___Cons cls.add_method('operator()', 'void', [param('ns3::Ptr< ns3::QueueDiscItem const >', 'arg0'), param('char const *', 'arg1')], - is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') + custom_name='__call__', is_virtual=True, is_pure_virtual=True) return def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__const_ns3QueueDiscItem__gt___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -6816,7 +6966,7 @@ def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__const_ns3QueueDiscItem__gt___Ns3E cls.add_method('operator()', 'void', [param('ns3::Ptr< ns3::QueueDiscItem const >', 'arg0')], - is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') + custom_name='__call__', is_virtual=True, is_pure_virtual=True) return def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__ns3NetDevice__gt___Ns3Ptr__lt__const_ns3Packet__gt___Unsigned_short_Const_ns3Address___amp___Const_ns3Address___amp___Ns3NetDevicePacketType_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -6838,7 +6988,7 @@ def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__ns3NetDevice__gt___Ns3Ptr__lt__co cls.add_method('operator()', 'void', [param('ns3::Ptr< ns3::NetDevice >', 'arg0'), param('ns3::Ptr< ns3::Packet const >', 'arg1'), param('short unsigned int', 'arg2'), param('ns3::Address const &', 'arg3'), param('ns3::Address const &', 'arg4'), param('ns3::NetDevice::PacketType', 'arg5')], - is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') + custom_name='__call__', is_virtual=True, is_pure_virtual=True) return def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__ns3NetDevice__gt___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -6860,7 +7010,7 @@ def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__ns3NetDevice__gt___Ns3Empty_Ns3Em cls.add_method('operator()', 'void', [param('ns3::Ptr< ns3::NetDevice >', 'arg0')], - is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') + custom_name='__call__', is_virtual=True, is_pure_virtual=True) return def register_Ns3CallbackImpl__Void_Ns3Time_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -6882,7 +7032,7 @@ def register_Ns3CallbackImpl__Void_Ns3Time_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_N cls.add_method('operator()', 'void', [param('ns3::Time', 'arg0')], - is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') + custom_name='__call__', is_virtual=True, is_pure_virtual=True) return def register_Ns3CallbackImpl__Void_Unsigned_int_Unsigned_int_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -6904,7 +7054,7 @@ def register_Ns3CallbackImpl__Void_Unsigned_int_Unsigned_int_Ns3Empty_Ns3Empty_N cls.add_method('operator()', 'void', [param('unsigned int', 'arg0'), param('unsigned int', 'arg1')], - is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') + custom_name='__call__', is_virtual=True, is_pure_virtual=True) return def register_Ns3QueueDiscItem_methods(root_module, cls): @@ -6942,7 +7092,7 @@ def register_Ns3QueueDiscItem_methods(root_module, cls): cls.add_method('AddHeader', 'void', [], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## queue-item.h (module 'network'): void ns3::QueueDiscItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', @@ -6952,7 +7102,7 @@ def register_Ns3QueueDiscItem_methods(root_module, cls): cls.add_method('Mark', 'bool', [], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## queue-item.h (module 'network'): uint32_t ns3::QueueDiscItem::Hash(uint32_t perturbation=0) const [member function] cls.add_method('Hash', 'uint32_t', @@ -6969,7 +7119,7 @@ def register_Ns3HashImplementation_methods(root_module, cls): cls.add_method('GetHash32', 'uint32_t', [param('char const *', 'buffer'), param('std::size_t const', 'size')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## hash-function.h (module 'core'): uint64_t ns3::Hash::Implementation::GetHash64(char const * buffer, std::size_t const size) [member function] cls.add_method('GetHash64', 'uint64_t', @@ -6979,7 +7129,7 @@ def register_Ns3HashImplementation_methods(root_module, cls): cls.add_method('clear', 'void', [], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) return def register_Ns3HashFunctionFnv1a_methods(root_module, cls): diff --git a/src/traffic-control/bindings/modulegen__gcc_LP64.py b/src/traffic-control/bindings/modulegen__gcc_LP64.py index 49471e0fd6f..d004c5231c0 100644 --- a/src/traffic-control/bindings/modulegen__gcc_LP64.py +++ b/src/traffic-control/bindings/modulegen__gcc_LP64.py @@ -32,9 +32,9 @@ def register_types(module): module.add_class('AttributeConstructionList', import_from_module='ns.core') ## attribute-construction-list.h (module 'core'): ns3::AttributeConstructionList::Item [struct] module.add_class('Item', import_from_module='ns.core', outer_class=root_module['ns3::AttributeConstructionList']) - typehandlers.add_type_alias(u'std::list< ns3::AttributeConstructionList::Item > const_iterator', u'ns3::AttributeConstructionList::CIterator') - typehandlers.add_type_alias(u'std::list< ns3::AttributeConstructionList::Item > const_iterator*', u'ns3::AttributeConstructionList::CIterator*') - typehandlers.add_type_alias(u'std::list< ns3::AttributeConstructionList::Item > const_iterator&', u'ns3::AttributeConstructionList::CIterator&') + typehandlers.add_type_alias('std::list< ns3::AttributeConstructionList::Item > const_iterator', 'ns3::AttributeConstructionList::CIterator') + typehandlers.add_type_alias('std::list< ns3::AttributeConstructionList::Item > const_iterator*', 'ns3::AttributeConstructionList::CIterator*') + typehandlers.add_type_alias('std::list< ns3::AttributeConstructionList::Item > const_iterator&', 'ns3::AttributeConstructionList::CIterator&') ## buffer.h (module 'network'): ns3::Buffer [class] module.add_class('Buffer', import_from_module='ns.network') ## buffer.h (module 'network'): ns3::Buffer::Iterator [class] @@ -119,9 +119,9 @@ def register_types(module): module.add_class('Ipv6Prefix', import_from_module='ns.network') ## mac48-address.h (module 'network'): ns3::Mac48Address [class] module.add_class('Mac48Address', import_from_module='ns.network') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Mac48Address )', u'ns3::Mac48Address::TracedCallback') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Mac48Address )*', u'ns3::Mac48Address::TracedCallback*') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Mac48Address )&', u'ns3::Mac48Address::TracedCallback&') + typehandlers.add_type_alias('void ( * ) ( ns3::Mac48Address )', 'ns3::Mac48Address::TracedCallback') + typehandlers.add_type_alias('void ( * ) ( ns3::Mac48Address )*', 'ns3::Mac48Address::TracedCallback*') + typehandlers.add_type_alias('void ( * ) ( ns3::Mac48Address )&', 'ns3::Mac48Address::TracedCallback&') ## mac48-address.h (module 'network'): ns3::Mac48Address [class] root_module['ns3::Mac48Address'].implicitly_converts_to(root_module['ns3::Address']) ## mac8-address.h (module 'network'): ns3::Mac8Address [class] @@ -130,11 +130,11 @@ def register_types(module): root_module['ns3::Mac8Address'].implicitly_converts_to(root_module['ns3::Address']) ## net-device-container.h (module 'network'): ns3::NetDeviceContainer [class] module.add_class('NetDeviceContainer', import_from_module='ns.network') - typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::NetDevice > > const_iterator', u'ns3::NetDeviceContainer::Iterator') - typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::NetDevice > > const_iterator*', u'ns3::NetDeviceContainer::Iterator*') - typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::NetDevice > > const_iterator&', u'ns3::NetDeviceContainer::Iterator&') + typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::NetDevice > > const_iterator', 'ns3::NetDeviceContainer::Iterator') + typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::NetDevice > > const_iterator*', 'ns3::NetDeviceContainer::Iterator*') + typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::NetDevice > > const_iterator&', 'ns3::NetDeviceContainer::Iterator&') ## object-base.h (module 'core'): ns3::ObjectBase [class] - module.add_class('ObjectBase', allow_subclassing=True, import_from_module='ns.core') + module.add_class('ObjectBase', import_from_module='ns.core', allow_subclassing=True) ## object.h (module 'core'): ns3::ObjectDeleter [struct] module.add_class('ObjectDeleter', import_from_module='ns.core') ## object-factory.h (module 'core'): ns3::ObjectFactory [class] @@ -157,17 +157,17 @@ def register_types(module): module.add_class('TagData', import_from_module='ns.network', outer_class=root_module['ns3::PacketTagList']) ## queue-disc-container.h (module 'traffic-control'): ns3::QueueDiscContainer [class] module.add_class('QueueDiscContainer') - typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::QueueDisc > > const_iterator', u'ns3::QueueDiscContainer::ConstIterator') - typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::QueueDisc > > const_iterator*', u'ns3::QueueDiscContainer::ConstIterator*') - typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::QueueDisc > > const_iterator&', u'ns3::QueueDiscContainer::ConstIterator&') + typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::QueueDisc > > const_iterator', 'ns3::QueueDiscContainer::ConstIterator') + typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::QueueDisc > > const_iterator*', 'ns3::QueueDiscContainer::ConstIterator*') + typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::QueueDisc > > const_iterator&', 'ns3::QueueDiscContainer::ConstIterator&') ## traffic-control-helper.h (module 'traffic-control'): ns3::QueueDiscFactory [class] module.add_class('QueueDiscFactory') ## queue-size.h (module 'network'): ns3::QueueSize [class] module.add_class('QueueSize', import_from_module='ns.network') ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount [class] - module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Object', 'ns3::ObjectBase', 'ns3::ObjectDeleter'], parent=root_module['ns3::ObjectBase'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) + module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::ObjectBase'], template_parameters=['ns3::Object', 'ns3::ObjectBase', 'ns3::ObjectDeleter']) ## simulator.h (module 'core'): ns3::Simulator [class] - module.add_class('Simulator', destructor_visibility='private', import_from_module='ns.core') + module.add_class('Simulator', import_from_module='ns.core', destructor_visibility='private') ## simulator.h (module 'core'): ns3::Simulator [enumeration] module.add_enum('', ['NO_CONTEXT'], outer_class=root_module['ns3::Simulator'], import_from_module='ns.core') ## tag.h (module 'network'): ns3::Tag [class] @@ -183,19 +183,21 @@ def register_types(module): ## timer.h (module 'core'): ns3::Timer::State [enumeration] module.add_enum('State', ['RUNNING', 'EXPIRED', 'SUSPENDED'], outer_class=root_module['ns3::Timer'], import_from_module='ns.core') ## timer-impl.h (module 'core'): ns3::TimerImpl [class] - module.add_class('TimerImpl', allow_subclassing=True, import_from_module='ns.core') + module.add_class('TimerImpl', import_from_module='ns.core', allow_subclassing=True) ## traced-value.h (module 'core'): ns3::TracedValue [class] module.add_class('TracedValue', import_from_module='ns.core', template_parameters=['bool']) + ## traced-value.h (module 'core'): ns3::TracedValue [class] + module.add_class('TracedValue', import_from_module='ns.core', template_parameters=['long']) ## traced-value.h (module 'core'): ns3::TracedValue [class] module.add_class('TracedValue', import_from_module='ns.core', template_parameters=['unsigned int']) ## traffic-control-helper.h (module 'traffic-control'): ns3::TrafficControlHelper [class] module.add_class('TrafficControlHelper') - typehandlers.add_type_alias(u'std::vector< unsigned short >', u'ns3::TrafficControlHelper::ClassIdList') - typehandlers.add_type_alias(u'std::vector< unsigned short >*', u'ns3::TrafficControlHelper::ClassIdList*') - typehandlers.add_type_alias(u'std::vector< unsigned short >&', u'ns3::TrafficControlHelper::ClassIdList&') - typehandlers.add_type_alias(u'std::vector< unsigned short >', u'ns3::TrafficControlHelper::HandleList') - typehandlers.add_type_alias(u'std::vector< unsigned short >*', u'ns3::TrafficControlHelper::HandleList*') - typehandlers.add_type_alias(u'std::vector< unsigned short >&', u'ns3::TrafficControlHelper::HandleList&') + typehandlers.add_type_alias('std::vector< unsigned short >', 'ns3::TrafficControlHelper::ClassIdList') + typehandlers.add_type_alias('std::vector< unsigned short >*', 'ns3::TrafficControlHelper::ClassIdList*') + typehandlers.add_type_alias('std::vector< unsigned short >&', 'ns3::TrafficControlHelper::ClassIdList&') + typehandlers.add_type_alias('std::vector< unsigned short >', 'ns3::TrafficControlHelper::HandleList') + typehandlers.add_type_alias('std::vector< unsigned short >*', 'ns3::TrafficControlHelper::HandleList*') + typehandlers.add_type_alias('std::vector< unsigned short >&', 'ns3::TrafficControlHelper::HandleList&') ## type-id.h (module 'core'): ns3::TypeId [class] module.add_class('TypeId', import_from_module='ns.core') ## type-id.h (module 'core'): ns3::TypeId::AttributeFlag [enumeration] @@ -206,9 +208,9 @@ def register_types(module): module.add_class('AttributeInformation', import_from_module='ns.core', outer_class=root_module['ns3::TypeId']) ## type-id.h (module 'core'): ns3::TypeId::TraceSourceInformation [struct] module.add_class('TraceSourceInformation', import_from_module='ns.core', outer_class=root_module['ns3::TypeId']) - typehandlers.add_type_alias(u'uint32_t', u'ns3::TypeId::hash_t') - typehandlers.add_type_alias(u'uint32_t*', u'ns3::TypeId::hash_t*') - typehandlers.add_type_alias(u'uint32_t&', u'ns3::TypeId::hash_t&') + typehandlers.add_type_alias('uint32_t', 'ns3::TypeId::hash_t') + typehandlers.add_type_alias('uint32_t*', 'ns3::TypeId::hash_t*') + typehandlers.add_type_alias('uint32_t&', 'ns3::TypeId::hash_t&') ## empty.h (module 'core'): ns3::empty [class] module.add_class('empty', import_from_module='ns.core') ## int64x64-128.h (module 'core'): ns3::int64x64_t [class] @@ -231,12 +233,12 @@ def register_types(module): module.add_enum('WakeMode', ['WAKE_ROOT', 'WAKE_CHILD'], outer_class=root_module['ns3::QueueDisc']) ## queue-disc.h (module 'traffic-control'): ns3::QueueDisc::Stats [struct] module.add_class('Stats', outer_class=root_module['ns3::QueueDisc']) - typehandlers.add_type_alias(u'std::function< void ( ns3::Ptr< ns3::QueueDiscItem > ) >', u'ns3::QueueDisc::SendCallback') - typehandlers.add_type_alias(u'std::function< void ( ns3::Ptr< ns3::QueueDiscItem > ) >*', u'ns3::QueueDisc::SendCallback*') - typehandlers.add_type_alias(u'std::function< void ( ns3::Ptr< ns3::QueueDiscItem > ) >&', u'ns3::QueueDisc::SendCallback&') - typehandlers.add_type_alias(u'ns3::Queue< ns3::QueueDiscItem >', u'ns3::QueueDisc::InternalQueue') - typehandlers.add_type_alias(u'ns3::Queue< ns3::QueueDiscItem >*', u'ns3::QueueDisc::InternalQueue*') - typehandlers.add_type_alias(u'ns3::Queue< ns3::QueueDiscItem >&', u'ns3::QueueDisc::InternalQueue&') + typehandlers.add_type_alias('std::function< void ( ns3::Ptr< ns3::QueueDiscItem > ) >', 'ns3::QueueDisc::SendCallback') + typehandlers.add_type_alias('std::function< void ( ns3::Ptr< ns3::QueueDiscItem > ) >*', 'ns3::QueueDisc::SendCallback*') + typehandlers.add_type_alias('std::function< void ( ns3::Ptr< ns3::QueueDiscItem > ) >&', 'ns3::QueueDisc::SendCallback&') + typehandlers.add_type_alias('ns3::Queue< ns3::QueueDiscItem >', 'ns3::QueueDisc::InternalQueue') + typehandlers.add_type_alias('ns3::Queue< ns3::QueueDiscItem >*', 'ns3::QueueDisc::InternalQueue*') + typehandlers.add_type_alias('ns3::Queue< ns3::QueueDiscItem >&', 'ns3::QueueDisc::InternalQueue&') ## queue-disc.h (module 'traffic-control'): ns3::QueueDiscClass [class] module.add_class('QueueDiscClass', parent=root_module['ns3::Object']) ## random-variable-stream.h (module 'core'): ns3::RandomVariableStream [class] @@ -250,43 +252,43 @@ def register_types(module): ## random-variable-stream.h (module 'core'): ns3::SequentialRandomVariable [class] module.add_class('SequentialRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::AttributeAccessor', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) + module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::AttributeAccessor', 'ns3::empty', 'ns3::DefaultDeleter']) ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::AttributeChecker', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) + module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::AttributeChecker', 'ns3::empty', 'ns3::DefaultDeleter']) ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', 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')) + module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::AttributeValue', 'ns3::empty', 'ns3::DefaultDeleter']) ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', 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')) + module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::CallbackImplBase', 'ns3::empty', 'ns3::DefaultDeleter']) ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', 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')) + module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::EventImpl', 'ns3::empty', 'ns3::DefaultDeleter']) ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Hash::Implementation', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) + module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::Hash::Implementation', 'ns3::empty', 'ns3::DefaultDeleter']) ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::NixVector', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) + module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::NixVector', 'ns3::empty', 'ns3::DefaultDeleter']) ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Packet', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) + module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::Packet', 'ns3::empty', 'ns3::DefaultDeleter']) ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::QueueItem', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) + module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::QueueItem', 'ns3::empty', 'ns3::DefaultDeleter']) ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount > [class] - module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::TraceSourceAccessor', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) + module.add_class('SimpleRefCount', import_from_module='ns.core', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'), automatic_type_narrowing=True, parent=root_module['ns3::empty'], template_parameters=['ns3::TraceSourceAccessor', 'ns3::empty', 'ns3::DefaultDeleter']) ## tbf-queue-disc.h (module 'traffic-control'): ns3::TbfQueueDisc [class] module.add_class('TbfQueueDisc', parent=root_module['ns3::QueueDisc']) ## nstime.h (module 'core'): ns3::Time [class] module.add_class('Time', import_from_module='ns.core') ## nstime.h (module 'core'): ns3::Time::Unit [enumeration] module.add_enum('Unit', ['Y', 'D', 'H', 'MIN', 'S', 'MS', 'US', 'NS', 'PS', 'FS', 'LAST'], outer_class=root_module['ns3::Time'], import_from_module='ns.core') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Time )', u'ns3::Time::TracedCallback') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Time )*', u'ns3::Time::TracedCallback*') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Time )&', u'ns3::Time::TracedCallback&') + typehandlers.add_type_alias('void ( * ) ( ns3::Time )', 'ns3::Time::TracedCallback') + typehandlers.add_type_alias('void ( * ) ( ns3::Time )*', 'ns3::Time::TracedCallback*') + typehandlers.add_type_alias('void ( * ) ( ns3::Time )&', 'ns3::Time::TracedCallback&') ## nstime.h (module 'core'): ns3::Time [class] root_module['ns3::Time'].implicitly_converts_to(root_module['ns3::int64x64_t']) ## trace-source-accessor.h (module 'core'): ns3::TraceSourceAccessor [class] module.add_class('TraceSourceAccessor', import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::TraceSourceAccessor, ns3::empty, ns3::DefaultDeleter >']) ## traffic-control-layer.h (module 'traffic-control'): ns3::TrafficControlLayer [class] module.add_class('TrafficControlLayer', parent=root_module['ns3::Object']) - typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::QueueDisc > >', u'ns3::TrafficControlLayer::QueueDiscVector') - typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::QueueDisc > >*', u'ns3::TrafficControlLayer::QueueDiscVector*') - typehandlers.add_type_alias(u'std::vector< ns3::Ptr< ns3::QueueDisc > >&', u'ns3::TrafficControlLayer::QueueDiscVector&') + typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::QueueDisc > >', 'ns3::TrafficControlLayer::QueueDiscVector') + typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::QueueDisc > >*', 'ns3::TrafficControlLayer::QueueDiscVector*') + typehandlers.add_type_alias('std::vector< ns3::Ptr< ns3::QueueDisc > >&', 'ns3::TrafficControlLayer::QueueDiscVector&') ## trailer.h (module 'network'): ns3::Trailer [class] module.add_class('Trailer', import_from_module='ns.network', parent=root_module['ns3::Chunk']) ## random-variable-stream.h (module 'core'): ns3::TriangularRandomVariable [class] @@ -302,9 +304,9 @@ def register_types(module): ## attribute.h (module 'core'): ns3::AttributeAccessor [class] module.add_class('AttributeAccessor', import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::AttributeAccessor, ns3::empty, ns3::DefaultDeleter >']) ## attribute.h (module 'core'): ns3::AttributeChecker [class] - module.add_class('AttributeChecker', allow_subclassing=False, automatic_type_narrowing=True, import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::AttributeChecker, ns3::empty, ns3::DefaultDeleter >']) + module.add_class('AttributeChecker', import_from_module='ns.core', automatic_type_narrowing=True, allow_subclassing=False, parent=root_module['ns3::SimpleRefCount< ns3::AttributeChecker, ns3::empty, ns3::DefaultDeleter >']) ## attribute.h (module 'core'): ns3::AttributeValue [class] - module.add_class('AttributeValue', allow_subclassing=False, automatic_type_narrowing=True, import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::AttributeValue, ns3::empty, ns3::DefaultDeleter >']) + module.add_class('AttributeValue', import_from_module='ns.core', automatic_type_narrowing=True, allow_subclassing=False, parent=root_module['ns3::SimpleRefCount< ns3::AttributeValue, ns3::empty, ns3::DefaultDeleter >']) ## boolean.h (module 'core'): ns3::BooleanChecker [class] module.add_class('BooleanChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker']) ## boolean.h (module 'core'): ns3::BooleanValue [class] @@ -317,6 +319,8 @@ def register_types(module): module.add_class('CallbackValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) ## codel-queue-disc.h (module 'traffic-control'): ns3::CoDelQueueDisc [class] module.add_class('CoDelQueueDisc', parent=root_module['ns3::QueueDisc']) + ## cobalt-queue-disc.h (module 'traffic-control'): ns3::CobaltQueueDisc [class] + module.add_class('CobaltQueueDisc', parent=root_module['ns3::QueueDisc']) ## random-variable-stream.h (module 'core'): ns3::ConstantRandomVariable [class] module.add_class('ConstantRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## data-rate.h (module 'network'): ns3::DataRateChecker [class] @@ -385,25 +389,25 @@ def register_types(module): module.add_class('NetDevice', import_from_module='ns.network', parent=root_module['ns3::Object']) ## net-device.h (module 'network'): ns3::NetDevice::PacketType [enumeration] module.add_enum('PacketType', ['PACKET_HOST', 'NS3_PACKET_HOST', 'PACKET_BROADCAST', 'NS3_PACKET_BROADCAST', 'PACKET_MULTICAST', 'NS3_PACKET_MULTICAST', 'PACKET_OTHERHOST', 'NS3_PACKET_OTHERHOST'], outer_class=root_module['ns3::NetDevice'], import_from_module='ns.network') - typehandlers.add_type_alias(u'void ( * ) ( )', u'ns3::NetDevice::LinkChangeTracedCallback') - typehandlers.add_type_alias(u'void ( * ) ( )*', u'ns3::NetDevice::LinkChangeTracedCallback*') - typehandlers.add_type_alias(u'void ( * ) ( )&', u'ns3::NetDevice::LinkChangeTracedCallback&') - typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::NetDevice::ReceiveCallback') - typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::NetDevice::ReceiveCallback*') - typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::NetDevice::ReceiveCallback&') - typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >', u'ns3::NetDevice::PromiscReceiveCallback') - typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::NetDevice::PromiscReceiveCallback*') - typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::NetDevice::PromiscReceiveCallback&') + typehandlers.add_type_alias('void ( * ) ( )', 'ns3::NetDevice::LinkChangeTracedCallback') + typehandlers.add_type_alias('void ( * ) ( )*', 'ns3::NetDevice::LinkChangeTracedCallback*') + typehandlers.add_type_alias('void ( * ) ( )&', 'ns3::NetDevice::LinkChangeTracedCallback&') + typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::NetDevice::ReceiveCallback') + typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::NetDevice::ReceiveCallback*') + typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::NetDevice::ReceiveCallback&') + typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >', 'ns3::NetDevice::PromiscReceiveCallback') + typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::NetDevice::PromiscReceiveCallback*') + typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::NetDevice::PromiscReceiveCallback&') ## nix-vector.h (module 'network'): ns3::NixVector [class] module.add_class('NixVector', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::NixVector, ns3::empty, ns3::DefaultDeleter >']) ## node.h (module 'network'): ns3::Node [class] module.add_class('Node', import_from_module='ns.network', parent=root_module['ns3::Object']) - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >', u'ns3::Node::ProtocolHandler') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::Node::ProtocolHandler*') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::Node::ProtocolHandler&') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::Node::DeviceAdditionListener') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::Node::DeviceAdditionListener*') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::Node::DeviceAdditionListener&') + typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >', 'ns3::Node::ProtocolHandler') + typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::Node::ProtocolHandler*') + typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::Node::ProtocolHandler&') + typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::Node::DeviceAdditionListener') + typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::Node::DeviceAdditionListener*') + typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::Node::DeviceAdditionListener&') ## random-variable-stream.h (module 'core'): ns3::NormalRandomVariable [class] module.add_class('NormalRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## object-factory.h (module 'core'): ns3::ObjectFactoryChecker [class] @@ -412,24 +416,24 @@ def register_types(module): module.add_class('ObjectFactoryValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) ## packet.h (module 'network'): ns3::Packet [class] module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > )', u'ns3::Packet::TracedCallback') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > )*', u'ns3::Packet::TracedCallback*') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > )&', u'ns3::Packet::TracedCallback&') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )', u'ns3::Packet::AddressTracedCallback') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )*', u'ns3::Packet::AddressTracedCallback*') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )&', u'ns3::Packet::AddressTracedCallback&') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )', u'ns3::Packet::TwoAddressTracedCallback') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )*', u'ns3::Packet::TwoAddressTracedCallback*') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )&', u'ns3::Packet::TwoAddressTracedCallback&') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )', u'ns3::Packet::Mac48AddressTracedCallback') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )*', u'ns3::Packet::Mac48AddressTracedCallback*') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )&', u'ns3::Packet::Mac48AddressTracedCallback&') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t )', u'ns3::Packet::SizeTracedCallback') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t )*', u'ns3::Packet::SizeTracedCallback*') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t )&', u'ns3::Packet::SizeTracedCallback&') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, double )', u'ns3::Packet::SinrTracedCallback') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, double )*', u'ns3::Packet::SinrTracedCallback*') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, double )&', u'ns3::Packet::SinrTracedCallback&') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const > )', 'ns3::Packet::TracedCallback') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const > )*', 'ns3::Packet::TracedCallback*') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const > )&', 'ns3::Packet::TracedCallback&') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )', 'ns3::Packet::AddressTracedCallback') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )*', 'ns3::Packet::AddressTracedCallback*') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )&', 'ns3::Packet::AddressTracedCallback&') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )', 'ns3::Packet::TwoAddressTracedCallback') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )*', 'ns3::Packet::TwoAddressTracedCallback*') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )&', 'ns3::Packet::TwoAddressTracedCallback&') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )', 'ns3::Packet::Mac48AddressTracedCallback') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )*', 'ns3::Packet::Mac48AddressTracedCallback*') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )&', 'ns3::Packet::Mac48AddressTracedCallback&') + typehandlers.add_type_alias('void ( * ) ( uint32_t, uint32_t )', 'ns3::Packet::SizeTracedCallback') + typehandlers.add_type_alias('void ( * ) ( uint32_t, uint32_t )*', 'ns3::Packet::SizeTracedCallback*') + typehandlers.add_type_alias('void ( * ) ( uint32_t, uint32_t )&', 'ns3::Packet::SizeTracedCallback&') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, double )', 'ns3::Packet::SinrTracedCallback') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, double )*', 'ns3::Packet::SinrTracedCallback*') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::Packet const >, double )&', 'ns3::Packet::SinrTracedCallback&') ## random-variable-stream.h (module 'core'): ns3::ParetoRandomVariable [class] module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## pfifo-fast-queue-disc.h (module 'traffic-control'): ns3::PfifoFastQueueDisc [class] @@ -448,9 +452,9 @@ def register_types(module): module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) ## queue-item.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::QueueItem const > )', u'ns3::QueueItem::TracedCallback') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::QueueItem const > )*', u'ns3::QueueItem::TracedCallback*') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::QueueItem const > )&', u'ns3::QueueItem::TracedCallback&') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::QueueItem const > )', 'ns3::QueueItem::TracedCallback') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::QueueItem const > )*', 'ns3::QueueItem::TracedCallback*') + typehandlers.add_type_alias('void ( * ) ( ns3::Ptr< ns3::QueueItem const > )&', 'ns3::QueueItem::TracedCallback&') ## queue-size.h (module 'network'): ns3::QueueSizeChecker [class] module.add_class('QueueSizeChecker', import_from_module='ns.network', parent=root_module['ns3::AttributeChecker']) ## queue-size.h (module 'network'): ns3::QueueSizeValue [class] @@ -472,32 +476,34 @@ def register_types(module): ## address.h (module 'network'): ns3::AddressValue [class] module.add_class('AddressValue', import_from_module='ns.network', parent=root_module['ns3::AttributeValue']) ## callback.h (module 'core'): ns3::CallbackImpl [class] - module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['ns3::ObjectBase *', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) + module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['ns3::ObjectBase *', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) ## callback.h (module 'core'): ns3::CallbackImpl [class] - module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'bool', 'bool', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) + module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'bool', 'bool', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) + ## callback.h (module 'core'): ns3::CallbackImpl [class] + module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'long', 'long', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) ## callback.h (module 'core'): ns3::CallbackImpl, const char *, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> [class] - module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Ptr', 'const char *', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) + module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'ns3::Ptr', 'const char *', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) ## callback.h (module 'core'): ns3::CallbackImpl, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> [class] - module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) + module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) ## callback.h (module 'core'): ns3::CallbackImpl, ns3::Ptr, unsigned short, const ns3::Address &, const ns3::Address &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty> [class] - module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Ptr', 'ns3::Ptr', 'unsigned short', 'const ns3::Address &', 'const ns3::Address &', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) + module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'ns3::Ptr', 'ns3::Ptr', 'unsigned short', 'const ns3::Address &', 'const ns3::Address &', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty']) ## callback.h (module 'core'): ns3::CallbackImpl, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> [class] - module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) + module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) ## callback.h (module 'core'): ns3::CallbackImpl [class] - module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Time', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) + module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'ns3::Time', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) ## callback.h (module 'core'): ns3::CallbackImpl [class] - module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'unsigned int', 'unsigned int', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) + module.add_class('CallbackImpl', import_from_module='ns.core', parent=root_module['ns3::CallbackImplBase'], template_parameters=['void', 'unsigned int', 'unsigned int', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty']) ## queue-item.h (module 'network'): ns3::QueueDiscItem [class] module.add_class('QueueDiscItem', import_from_module='ns.network', parent=root_module['ns3::QueueItem']) - module.add_container('std::vector< ns3::Ptr< ns3::QueueDisc > >', 'ns3::Ptr< ns3::QueueDisc >', container_type=u'vector') - module.add_container('std::vector< unsigned short >', 'short unsigned int', container_type=u'vector') - module.add_container('ns3::TrafficControlHelper::ClassIdList', 'short unsigned int', container_type=u'vector') - module.add_container('ns3::TrafficControlHelper::HandleList', 'short unsigned int', container_type=u'vector') - module.add_container('std::map< std::string, unsigned int >', ('std::string', 'unsigned int'), container_type=u'map') - module.add_container('std::map< std::string, unsigned long >', ('std::string', 'long unsigned int'), container_type=u'map') - typehandlers.add_type_alias(u'std::array< unsigned short, 16 >', u'ns3::Priomap') - typehandlers.add_type_alias(u'std::array< unsigned short, 16 >*', u'ns3::Priomap*') - typehandlers.add_type_alias(u'std::array< unsigned short, 16 >&', u'ns3::Priomap&') + module.add_container('std::vector< ns3::Ptr< ns3::QueueDisc > >', 'ns3::Ptr< ns3::QueueDisc >', container_type='vector') + module.add_container('std::vector< unsigned short >', 'short unsigned int', container_type='vector') + module.add_container('ns3::TrafficControlHelper::ClassIdList', 'short unsigned int', container_type='vector') + module.add_container('ns3::TrafficControlHelper::HandleList', 'short unsigned int', container_type='vector') + module.add_container('std::map< std::string, unsigned int >', ('std::string', 'unsigned int'), container_type='map') + module.add_container('std::map< std::string, unsigned long >', ('std::string', 'long unsigned int'), container_type='map') + typehandlers.add_type_alias('std::array< unsigned short, 16 >', 'ns3::Priomap') + typehandlers.add_type_alias('std::array< unsigned short, 16 >*', 'ns3::Priomap*') + typehandlers.add_type_alias('std::array< unsigned short, 16 >&', 'ns3::Priomap&') ## Register a nested module for the namespace FatalImpl @@ -532,12 +538,12 @@ def register_types_ns3_Hash(module): ## hash-function.h (module 'core'): ns3::Hash::Implementation [class] module.add_class('Implementation', import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::Hash::Implementation, ns3::empty, ns3::DefaultDeleter >']) - typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, std::size_t const )', u'ns3::Hash::Hash32Function_ptr') - typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, std::size_t const )*', u'ns3::Hash::Hash32Function_ptr*') - typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, std::size_t const )&', u'ns3::Hash::Hash32Function_ptr&') - typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, std::size_t const )', u'ns3::Hash::Hash64Function_ptr') - typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, std::size_t const )*', u'ns3::Hash::Hash64Function_ptr*') - typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, std::size_t const )&', u'ns3::Hash::Hash64Function_ptr&') + typehandlers.add_type_alias('uint32_t ( * ) ( char const *, std::size_t const )', 'ns3::Hash::Hash32Function_ptr') + typehandlers.add_type_alias('uint32_t ( * ) ( char const *, std::size_t const )*', 'ns3::Hash::Hash32Function_ptr*') + typehandlers.add_type_alias('uint32_t ( * ) ( char const *, std::size_t const )&', 'ns3::Hash::Hash32Function_ptr&') + typehandlers.add_type_alias('uint64_t ( * ) ( char const *, std::size_t const )', 'ns3::Hash::Hash64Function_ptr') + typehandlers.add_type_alias('uint64_t ( * ) ( char const *, std::size_t const )*', 'ns3::Hash::Hash64Function_ptr*') + typehandlers.add_type_alias('uint64_t ( * ) ( char const *, std::size_t const )&', 'ns3::Hash::Hash64Function_ptr&') ## Register a nested module for the namespace Function @@ -560,36 +566,36 @@ def register_types_ns3_Hash_Function(module): def register_types_ns3_TracedValueCallback(module): root_module = module.get_root() - typehandlers.add_type_alias(u'void ( * ) ( bool, bool )', u'ns3::TracedValueCallback::Bool') - typehandlers.add_type_alias(u'void ( * ) ( bool, bool )*', u'ns3::TracedValueCallback::Bool*') - typehandlers.add_type_alias(u'void ( * ) ( bool, bool )&', u'ns3::TracedValueCallback::Bool&') - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t )', u'ns3::TracedValueCallback::Int8') - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t )*', u'ns3::TracedValueCallback::Int8*') - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t )&', u'ns3::TracedValueCallback::Int8&') - typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t )', u'ns3::TracedValueCallback::Uint8') - typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t )*', u'ns3::TracedValueCallback::Uint8*') - typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t )&', u'ns3::TracedValueCallback::Uint8&') - typehandlers.add_type_alias(u'void ( * ) ( int16_t, int16_t )', u'ns3::TracedValueCallback::Int16') - typehandlers.add_type_alias(u'void ( * ) ( int16_t, int16_t )*', u'ns3::TracedValueCallback::Int16*') - typehandlers.add_type_alias(u'void ( * ) ( int16_t, int16_t )&', u'ns3::TracedValueCallback::Int16&') - typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t )', u'ns3::TracedValueCallback::Uint16') - typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t )*', u'ns3::TracedValueCallback::Uint16*') - typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t )&', u'ns3::TracedValueCallback::Uint16&') - typehandlers.add_type_alias(u'void ( * ) ( int32_t, int32_t )', u'ns3::TracedValueCallback::Int32') - typehandlers.add_type_alias(u'void ( * ) ( int32_t, int32_t )*', u'ns3::TracedValueCallback::Int32*') - typehandlers.add_type_alias(u'void ( * ) ( int32_t, int32_t )&', u'ns3::TracedValueCallback::Int32&') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t )', u'ns3::TracedValueCallback::Uint32') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t )*', u'ns3::TracedValueCallback::Uint32*') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t )&', u'ns3::TracedValueCallback::Uint32&') - typehandlers.add_type_alias(u'void ( * ) ( double, double )', u'ns3::TracedValueCallback::Double') - typehandlers.add_type_alias(u'void ( * ) ( double, double )*', u'ns3::TracedValueCallback::Double*') - typehandlers.add_type_alias(u'void ( * ) ( double, double )&', u'ns3::TracedValueCallback::Double&') - typehandlers.add_type_alias(u'void ( * ) ( )', u'ns3::TracedValueCallback::Void') - typehandlers.add_type_alias(u'void ( * ) ( )*', u'ns3::TracedValueCallback::Void*') - typehandlers.add_type_alias(u'void ( * ) ( )&', u'ns3::TracedValueCallback::Void&') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Time, ns3::Time )', u'ns3::TracedValueCallback::Time') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Time, ns3::Time )*', u'ns3::TracedValueCallback::Time*') - typehandlers.add_type_alias(u'void ( * ) ( ns3::Time, ns3::Time )&', u'ns3::TracedValueCallback::Time&') + typehandlers.add_type_alias('void ( * ) ( bool, bool )', 'ns3::TracedValueCallback::Bool') + typehandlers.add_type_alias('void ( * ) ( bool, bool )*', 'ns3::TracedValueCallback::Bool*') + typehandlers.add_type_alias('void ( * ) ( bool, bool )&', 'ns3::TracedValueCallback::Bool&') + typehandlers.add_type_alias('void ( * ) ( int8_t, int8_t )', 'ns3::TracedValueCallback::Int8') + typehandlers.add_type_alias('void ( * ) ( int8_t, int8_t )*', 'ns3::TracedValueCallback::Int8*') + typehandlers.add_type_alias('void ( * ) ( int8_t, int8_t )&', 'ns3::TracedValueCallback::Int8&') + typehandlers.add_type_alias('void ( * ) ( uint8_t, uint8_t )', 'ns3::TracedValueCallback::Uint8') + typehandlers.add_type_alias('void ( * ) ( uint8_t, uint8_t )*', 'ns3::TracedValueCallback::Uint8*') + typehandlers.add_type_alias('void ( * ) ( uint8_t, uint8_t )&', 'ns3::TracedValueCallback::Uint8&') + typehandlers.add_type_alias('void ( * ) ( int16_t, int16_t )', 'ns3::TracedValueCallback::Int16') + typehandlers.add_type_alias('void ( * ) ( int16_t, int16_t )*', 'ns3::TracedValueCallback::Int16*') + typehandlers.add_type_alias('void ( * ) ( int16_t, int16_t )&', 'ns3::TracedValueCallback::Int16&') + typehandlers.add_type_alias('void ( * ) ( uint16_t, uint16_t )', 'ns3::TracedValueCallback::Uint16') + typehandlers.add_type_alias('void ( * ) ( uint16_t, uint16_t )*', 'ns3::TracedValueCallback::Uint16*') + typehandlers.add_type_alias('void ( * ) ( uint16_t, uint16_t )&', 'ns3::TracedValueCallback::Uint16&') + typehandlers.add_type_alias('void ( * ) ( int32_t, int32_t )', 'ns3::TracedValueCallback::Int32') + typehandlers.add_type_alias('void ( * ) ( int32_t, int32_t )*', 'ns3::TracedValueCallback::Int32*') + typehandlers.add_type_alias('void ( * ) ( int32_t, int32_t )&', 'ns3::TracedValueCallback::Int32&') + typehandlers.add_type_alias('void ( * ) ( uint32_t, uint32_t )', 'ns3::TracedValueCallback::Uint32') + typehandlers.add_type_alias('void ( * ) ( uint32_t, uint32_t )*', 'ns3::TracedValueCallback::Uint32*') + typehandlers.add_type_alias('void ( * ) ( uint32_t, uint32_t )&', 'ns3::TracedValueCallback::Uint32&') + typehandlers.add_type_alias('void ( * ) ( double, double )', 'ns3::TracedValueCallback::Double') + typehandlers.add_type_alias('void ( * ) ( double, double )*', 'ns3::TracedValueCallback::Double*') + typehandlers.add_type_alias('void ( * ) ( double, double )&', 'ns3::TracedValueCallback::Double&') + typehandlers.add_type_alias('void ( * ) ( )', 'ns3::TracedValueCallback::Void') + typehandlers.add_type_alias('void ( * ) ( )*', 'ns3::TracedValueCallback::Void*') + typehandlers.add_type_alias('void ( * ) ( )&', 'ns3::TracedValueCallback::Void&') + typehandlers.add_type_alias('void ( * ) ( ns3::Time, ns3::Time )', 'ns3::TracedValueCallback::Time') + typehandlers.add_type_alias('void ( * ) ( ns3::Time, ns3::Time )*', 'ns3::TracedValueCallback::Time*') + typehandlers.add_type_alias('void ( * ) ( ns3::Time, ns3::Time )&', 'ns3::TracedValueCallback::Time&') def register_types_ns3_internal(module): root_module = module.get_root() @@ -655,6 +661,7 @@ def register_methods(root_module): register_Ns3Timer_methods(root_module, root_module['ns3::Timer']) register_Ns3TimerImpl_methods(root_module, root_module['ns3::TimerImpl']) register_Ns3TracedValue__Bool_methods(root_module, root_module['ns3::TracedValue< bool >']) + register_Ns3TracedValue__Long_methods(root_module, root_module['ns3::TracedValue< long >']) register_Ns3TracedValue__Unsigned_int_methods(root_module, root_module['ns3::TracedValue< unsigned int >']) register_Ns3TrafficControlHelper_methods(root_module, root_module['ns3::TrafficControlHelper']) register_Ns3TypeId_methods(root_module, root_module['ns3::TypeId']) @@ -702,6 +709,7 @@ def register_methods(root_module): register_Ns3CallbackImplBase_methods(root_module, root_module['ns3::CallbackImplBase']) register_Ns3CallbackValue_methods(root_module, root_module['ns3::CallbackValue']) register_Ns3CoDelQueueDisc_methods(root_module, root_module['ns3::CoDelQueueDisc']) + register_Ns3CobaltQueueDisc_methods(root_module, root_module['ns3::CobaltQueueDisc']) register_Ns3ConstantRandomVariable_methods(root_module, root_module['ns3::ConstantRandomVariable']) register_Ns3DataRateChecker_methods(root_module, root_module['ns3::DataRateChecker']) register_Ns3DataRateValue_methods(root_module, root_module['ns3::DataRateValue']) @@ -759,6 +767,7 @@ def register_methods(root_module): register_Ns3AddressValue_methods(root_module, root_module['ns3::AddressValue']) register_Ns3CallbackImpl__Ns3ObjectBase___star___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< ns3::ObjectBase *, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) register_Ns3CallbackImpl__Void_Bool_Bool_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, bool, bool, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) + register_Ns3CallbackImpl__Void_Long_Long_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, long, long, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) register_Ns3CallbackImpl__Void_Ns3Ptr__lt__const_ns3QueueDiscItem__gt___Const_char___star___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, ns3::Ptr, const char *, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) register_Ns3CallbackImpl__Void_Ns3Ptr__lt__const_ns3QueueDiscItem__gt___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, ns3::Ptr, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) register_Ns3CallbackImpl__Void_Ns3Ptr__lt__ns3NetDevice__gt___Ns3Ptr__lt__const_ns3Packet__gt___Unsigned_short_Const_ns3Address___amp___Const_ns3Address___amp___Ns3NetDevicePacketType_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, ns3::Ptr, ns3::Ptr, unsigned short, const ns3::Address &, const ns3::Address &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >']) @@ -1278,7 +1287,7 @@ def register_Ns3DataRate_methods(root_module, cls): cls.add_method('CalculateTxTime', 'double', [param('uint32_t', 'bytes')], - deprecated=True, is_const=True) + is_const=True, deprecated=True) ## data-rate.h (module 'network'): uint64_t ns3::DataRate::GetBitRate() const [member function] cls.add_method('GetBitRate', 'uint64_t', @@ -1789,7 +1798,7 @@ def register_Ns3Ipv6Address_methods(root_module, cls): cls.add_method('IsAllHostsMulticast', 'bool', [], - deprecated=True, is_const=True) + is_const=True, deprecated=True) ## ipv6-address.h (module 'network'): bool ns3::Ipv6Address::IsAllNodesMulticast() const [member function] cls.add_method('IsAllNodesMulticast', 'bool', @@ -2156,7 +2165,7 @@ def register_Ns3ObjectBase_methods(root_module, cls): cls.add_method('GetInstanceTypeId', 'ns3::TypeId', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## object-base.h (module 'core'): static ns3::TypeId ns3::ObjectBase::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -2195,7 +2204,7 @@ def register_Ns3ObjectBase_methods(root_module, cls): cls.add_method('NotifyConstructionCompleted', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') return def register_Ns3ObjectDeleter_methods(root_module, cls): @@ -2228,6 +2237,11 @@ def register_Ns3ObjectFactory_methods(root_module, cls): 'ns3::TypeId', [], is_const=True) + ## object-factory.h (module 'core'): bool ns3::ObjectFactory::IsTypeIdSet() const [member function] + cls.add_method('IsTypeIdSet', + 'bool', + [], + is_const=True) ## object-factory.h (module 'core'): void ns3::ObjectFactory::Set(std::string name, ns3::AttributeValue const & value) [member function] cls.add_method('Set', 'void', @@ -2634,12 +2648,12 @@ def register_Ns3Tag_methods(root_module, cls): cls.add_method('Deserialize', 'void', [param('ns3::TagBuffer', 'i')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## tag.h (module 'network'): uint32_t ns3::Tag::GetSerializedSize() const [member function] cls.add_method('GetSerializedSize', 'uint32_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## tag.h (module 'network'): static ns3::TypeId ns3::Tag::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -2649,12 +2663,12 @@ def register_Ns3Tag_methods(root_module, cls): cls.add_method('Print', 'void', [param('std::ostream &', 'os')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## tag.h (module 'network'): void ns3::Tag::Serialize(ns3::TagBuffer i) const [member function] cls.add_method('Serialize', 'void', [param('ns3::TagBuffer', 'i')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) return def register_Ns3TagBuffer_methods(root_module, cls): @@ -2804,12 +2818,12 @@ def register_Ns3TimerImpl_methods(root_module, cls): cls.add_method('Invoke', 'void', [], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## timer-impl.h (module 'core'): ns3::EventId ns3::TimerImpl::Schedule(ns3::Time const & delay) [member function] cls.add_method('Schedule', 'ns3::EventId', [param('ns3::Time const &', 'delay')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) return def register_Ns3TracedValue__Bool_methods(root_module, cls): @@ -2846,6 +2860,40 @@ def register_Ns3TracedValue__Bool_methods(root_module, cls): [param('bool const &', 'v')]) return +def register_Ns3TracedValue__Long_methods(root_module, cls): + ## traced-value.h (module 'core'): ns3::TracedValue::TracedValue() [constructor] + cls.add_constructor([]) + ## traced-value.h (module 'core'): ns3::TracedValue::TracedValue(ns3::TracedValue const & o) [constructor] + cls.add_constructor([param('ns3::TracedValue< long > const &', 'o')]) + ## traced-value.h (module 'core'): ns3::TracedValue::TracedValue(long int const & v) [constructor] + cls.add_constructor([param('long int const &', 'v')]) + ## traced-value.h (module 'core'): void ns3::TracedValue::Connect(ns3::CallbackBase const & cb, std::string path) [member function] + cls.add_method('Connect', + 'void', + [param('ns3::CallbackBase const &', 'cb'), param('std::string', 'path')]) + ## traced-value.h (module 'core'): void ns3::TracedValue::ConnectWithoutContext(ns3::CallbackBase const & cb) [member function] + cls.add_method('ConnectWithoutContext', + 'void', + [param('ns3::CallbackBase const &', 'cb')]) + ## traced-value.h (module 'core'): void ns3::TracedValue::Disconnect(ns3::CallbackBase const & cb, std::string path) [member function] + cls.add_method('Disconnect', + 'void', + [param('ns3::CallbackBase const &', 'cb'), param('std::string', 'path')]) + ## traced-value.h (module 'core'): void ns3::TracedValue::DisconnectWithoutContext(ns3::CallbackBase const & cb) [member function] + cls.add_method('DisconnectWithoutContext', + 'void', + [param('ns3::CallbackBase const &', 'cb')]) + ## traced-value.h (module 'core'): long int ns3::TracedValue::Get() const [member function] + cls.add_method('Get', + 'long int', + [], + is_const=True) + ## traced-value.h (module 'core'): void ns3::TracedValue::Set(long int const & v) [member function] + cls.add_method('Set', + 'void', + [param('long int const &', 'v')]) + return + def register_Ns3TracedValue__Unsigned_int_methods(root_module, cls): ## traced-value.h (module 'core'): ns3::TracedValue::TracedValue() [constructor] cls.add_constructor([]) @@ -2905,10 +2953,10 @@ def register_Ns3TrafficControlHelper_methods(root_module, cls): cls.add_method('AddQueueDiscClasses', 'ns3::TrafficControlHelper::ClassIdList', [param('uint16_t', 'handle'), param('uint16_t', 'count'), param('std::string', 'type'), param('std::string', 'n01', default_value='""'), param('ns3::AttributeValue const &', 'v01', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n02', default_value='""'), param('ns3::AttributeValue const &', 'v02', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n03', default_value='""'), param('ns3::AttributeValue const &', 'v03', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n04', default_value='""'), param('ns3::AttributeValue const &', 'v04', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n05', default_value='""'), param('ns3::AttributeValue const &', 'v05', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n06', default_value='""'), param('ns3::AttributeValue const &', 'v06', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n07', default_value='""'), param('ns3::AttributeValue const &', 'v07', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n08', default_value='""'), param('ns3::AttributeValue const &', 'v08', default_value='ns3::EmptyAttributeValue()')]) - ## traffic-control-helper.h (module 'traffic-control'): static ns3::TrafficControlHelper ns3::TrafficControlHelper::Default() [member function] + ## traffic-control-helper.h (module 'traffic-control'): static ns3::TrafficControlHelper ns3::TrafficControlHelper::Default(std::size_t nTxQueues=1) [member function] cls.add_method('Default', 'ns3::TrafficControlHelper', - [], + [param('std::size_t', 'nTxQueues', default_value='1')], is_static=True) ## traffic-control-helper.h (module 'traffic-control'): ns3::QueueDiscContainer ns3::TrafficControlHelper::Install(ns3::NetDeviceContainer c) [member function] cls.add_method('Install', @@ -3161,11 +3209,11 @@ def register_Ns3Empty_methods(root_module, cls): return def register_Ns3Int64x64_t_methods(root_module, cls): - cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::int64x64_t'], param('ns3::Time const &', u'right')) - cls.add_binary_numeric_operator('+', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) - cls.add_binary_numeric_operator('-', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) - cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) - cls.add_binary_numeric_operator('/', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) + cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::int64x64_t'], param('ns3::Time const &', 'right')) + cls.add_binary_numeric_operator('+', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', 'right')) + cls.add_binary_numeric_operator('-', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', 'right')) + cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', 'right')) + cls.add_binary_numeric_operator('/', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', 'right')) cls.add_binary_comparison_operator('!=') cls.add_binary_comparison_operator('<=') cls.add_binary_comparison_operator('>=') @@ -3173,10 +3221,10 @@ def register_Ns3Int64x64_t_methods(root_module, cls): cls.add_binary_comparison_operator('==') cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('>') - cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', u'right')) - cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', u'right')) - cls.add_inplace_numeric_operator('*=', param('ns3::int64x64_t const &', u'right')) - cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', u'right')) + cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', 'right')) + cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', 'right')) + cls.add_inplace_numeric_operator('*=', param('ns3::int64x64_t const &', 'right')) + cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', 'right')) cls.add_unary_numeric_operator('-') ## int64x64-128.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor] cls.add_constructor([]) @@ -3237,7 +3285,7 @@ def register_Ns3Chunk_methods(root_module, cls): cls.add_method('Deserialize', 'uint32_t', [param('ns3::Buffer::Iterator', 'start')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## chunk.h (module 'network'): uint32_t ns3::Chunk::Deserialize(ns3::Buffer::Iterator start, ns3::Buffer::Iterator end) [member function] cls.add_method('Deserialize', 'uint32_t', @@ -3252,7 +3300,7 @@ def register_Ns3Chunk_methods(root_module, cls): cls.add_method('Print', 'void', [param('std::ostream &', 'os')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) return def register_Ns3Header_methods(root_module, cls): @@ -3265,12 +3313,12 @@ def register_Ns3Header_methods(root_module, cls): cls.add_method('Deserialize', 'uint32_t', [param('ns3::Buffer::Iterator', 'start')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## header.h (module 'network'): uint32_t ns3::Header::GetSerializedSize() const [member function] cls.add_method('GetSerializedSize', 'uint32_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## header.h (module 'network'): static ns3::TypeId ns3::Header::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -3280,12 +3328,12 @@ def register_Ns3Header_methods(root_module, cls): cls.add_method('Print', 'void', [param('std::ostream &', 'os')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## header.h (module 'network'): void ns3::Header::Serialize(ns3::Buffer::Iterator start) const [member function] cls.add_method('Serialize', 'void', [param('ns3::Buffer::Iterator', 'start')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) return def register_Ns3Object_methods(root_module, cls): @@ -3330,17 +3378,17 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') ## object.h (module 'core'): void ns3::Object::DoInitialize() [member function] cls.add_method('DoInitialize', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') ## object.h (module 'core'): void ns3::Object::NotifyNewAggregate() [member function] cls.add_method('NotifyNewAggregate', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') return def register_Ns3ObjectAggregateIterator_methods(root_module, cls): @@ -3380,12 +3428,12 @@ def register_Ns3PacketFilter_methods(root_module, cls): cls.add_method('CheckProtocol', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True, visibility='private') ## packet-filter.h (module 'traffic-control'): int32_t ns3::PacketFilter::DoClassify(ns3::Ptr item) const [member function] cls.add_method('DoClassify', 'int32_t', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True, visibility='private') return def register_Ns3QueueDisc_methods(root_module, cls): @@ -3528,12 +3576,12 @@ def register_Ns3QueueDisc_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') ## queue-disc.h (module 'traffic-control'): void ns3::QueueDisc::DoInitialize() [member function] cls.add_method('DoInitialize', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') ## queue-disc.h (module 'traffic-control'): void ns3::QueueDisc::DropAfterDequeue(ns3::Ptr item, char const * reason) [member function] cls.add_method('DropAfterDequeue', 'void', @@ -3553,27 +3601,27 @@ def register_Ns3QueueDisc_methods(root_module, cls): cls.add_method('CheckConfig', 'bool', [], - is_pure_virtual=True, visibility='private', is_virtual=True) + is_virtual=True, is_pure_virtual=True, visibility='private') ## queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::QueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - is_pure_virtual=True, visibility='private', is_virtual=True) + is_virtual=True, is_pure_virtual=True, visibility='private') ## queue-disc.h (module 'traffic-control'): bool ns3::QueueDisc::DoEnqueue(ns3::Ptr item) [member function] cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_pure_virtual=True, visibility='private', is_virtual=True) + is_virtual=True, is_pure_virtual=True, visibility='private') ## queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::QueueDisc::DoPeek() [member function] cls.add_method('DoPeek', 'ns3::Ptr< ns3::QueueDiscItem const >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## queue-disc.h (module 'traffic-control'): void ns3::QueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - is_pure_virtual=True, visibility='private', is_virtual=True) + is_virtual=True, is_pure_virtual=True, visibility='private') return def register_Ns3QueueDiscStats_methods(root_module, cls): @@ -3680,7 +3728,7 @@ def register_Ns3QueueDiscClass_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') return def register_Ns3RandomVariableStream_methods(root_module, cls): @@ -3713,12 +3761,12 @@ def register_Ns3RandomVariableStream_methods(root_module, cls): cls.add_method('GetValue', 'double', [], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## random-variable-stream.h (module 'core'): uint32_t ns3::RandomVariableStream::GetInteger() [member function] cls.add_method('GetInteger', 'uint32_t', [], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## random-variable-stream.h (module 'core'): ns3::RngStream * ns3::RandomVariableStream::Peek() const [member function] cls.add_method('Peek', 'ns3::RngStream *', @@ -3786,32 +3834,32 @@ def register_Ns3RedQueueDisc_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') ## red-queue-disc.h (module 'traffic-control'): bool ns3::RedQueueDisc::DoEnqueue(ns3::Ptr item) [member function] cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## red-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::RedQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## red-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::RedQueueDisc::DoPeek() [member function] cls.add_method('DoPeek', 'ns3::Ptr< ns3::QueueDiscItem const >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## red-queue-disc.h (module 'traffic-control'): bool ns3::RedQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## red-queue-disc.h (module 'traffic-control'): void ns3::RedQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') return def register_Ns3SequentialRandomVariable_methods(root_module, cls): @@ -3982,27 +4030,27 @@ def register_Ns3TbfQueueDisc_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') ## tbf-queue-disc.h (module 'traffic-control'): bool ns3::TbfQueueDisc::DoEnqueue(ns3::Ptr item) [member function] cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## tbf-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::TbfQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## tbf-queue-disc.h (module 'traffic-control'): bool ns3::TbfQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## tbf-queue-disc.h (module 'traffic-control'): void ns3::TbfQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') return def register_Ns3Time_methods(root_module, cls): @@ -4012,15 +4060,15 @@ 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_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_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right')) + cls.add_binary_numeric_operator('-', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right')) + cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('int64_t const &', 'right')) + cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::int64x64_t const &', 'right')) + cls.add_binary_numeric_operator('/', root_module['ns3::int64x64_t'], root_module['ns3::Time'], param('ns3::Time const &', 'right')) + cls.add_binary_numeric_operator('/', root_module['ns3::Time'], root_module['ns3::Time'], param('int64_t const &', 'right')) + cls.add_binary_numeric_operator('/', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::int64x64_t const &', 'right')) + cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right')) + cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right')) cls.add_output_stream_operator() ## nstime.h (module 'core'): ns3::Time::Time() [constructor] cls.add_constructor([]) @@ -4215,22 +4263,22 @@ def register_Ns3TraceSourceAccessor_methods(root_module, cls): cls.add_method('Connect', 'bool', [param('ns3::ObjectBase *', 'obj', transfer_ownership=False), param('std::string', 'context'), param('ns3::CallbackBase const &', 'cb')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## trace-source-accessor.h (module 'core'): bool ns3::TraceSourceAccessor::ConnectWithoutContext(ns3::ObjectBase * obj, ns3::CallbackBase const & cb) const [member function] cls.add_method('ConnectWithoutContext', 'bool', [param('ns3::ObjectBase *', 'obj', transfer_ownership=False), param('ns3::CallbackBase const &', 'cb')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## trace-source-accessor.h (module 'core'): bool ns3::TraceSourceAccessor::Disconnect(ns3::ObjectBase * obj, std::string context, ns3::CallbackBase const & cb) const [member function] cls.add_method('Disconnect', 'bool', [param('ns3::ObjectBase *', 'obj', transfer_ownership=False), param('std::string', 'context'), param('ns3::CallbackBase const &', 'cb')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## trace-source-accessor.h (module 'core'): bool ns3::TraceSourceAccessor::DisconnectWithoutContext(ns3::ObjectBase * obj, ns3::CallbackBase const & cb) const [member function] cls.add_method('DisconnectWithoutContext', 'bool', [param('ns3::ObjectBase *', 'obj', transfer_ownership=False), param('ns3::CallbackBase const &', 'cb')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) return def register_Ns3TrafficControlLayer_methods(root_module, cls): @@ -4288,17 +4336,17 @@ def register_Ns3TrafficControlLayer_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') ## traffic-control-layer.h (module 'traffic-control'): void ns3::TrafficControlLayer::DoInitialize() [member function] cls.add_method('DoInitialize', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') ## traffic-control-layer.h (module 'traffic-control'): void ns3::TrafficControlLayer::NotifyNewAggregate() [member function] cls.add_method('NotifyNewAggregate', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') return def register_Ns3Trailer_methods(root_module, cls): @@ -4311,7 +4359,7 @@ def register_Ns3Trailer_methods(root_module, cls): cls.add_method('Deserialize', 'uint32_t', [param('ns3::Buffer::Iterator', 'end')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## trailer.h (module 'network'): uint32_t ns3::Trailer::Deserialize(ns3::Buffer::Iterator start, ns3::Buffer::Iterator end) [member function] cls.add_method('Deserialize', 'uint32_t', @@ -4321,7 +4369,7 @@ def register_Ns3Trailer_methods(root_module, cls): cls.add_method('GetSerializedSize', 'uint32_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## trailer.h (module 'network'): static ns3::TypeId ns3::Trailer::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -4331,12 +4379,12 @@ def register_Ns3Trailer_methods(root_module, cls): cls.add_method('Print', 'void', [param('std::ostream &', 'os')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## trailer.h (module 'network'): void ns3::Trailer::Serialize(ns3::Buffer::Iterator start) const [member function] cls.add_method('Serialize', 'void', [param('ns3::Buffer::Iterator', 'start')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) return def register_Ns3TriangularRandomVariable_methods(root_module, cls): @@ -4543,22 +4591,22 @@ def register_Ns3AttributeAccessor_methods(root_module, cls): cls.add_method('Get', 'bool', [param('ns3::ObjectBase const *', 'object'), param('ns3::AttributeValue &', 'attribute')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## attribute.h (module 'core'): bool ns3::AttributeAccessor::HasGetter() const [member function] cls.add_method('HasGetter', 'bool', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## attribute.h (module 'core'): bool ns3::AttributeAccessor::HasSetter() const [member function] cls.add_method('HasSetter', 'bool', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## attribute.h (module 'core'): bool ns3::AttributeAccessor::Set(ns3::ObjectBase * object, ns3::AttributeValue const & value) const [member function] cls.add_method('Set', 'bool', [param('ns3::ObjectBase *', 'object', transfer_ownership=False), param('ns3::AttributeValue const &', 'value')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) return def register_Ns3AttributeChecker_methods(root_module, cls): @@ -4570,17 +4618,17 @@ def register_Ns3AttributeChecker_methods(root_module, cls): cls.add_method('Check', 'bool', [param('ns3::AttributeValue const &', 'value')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## attribute.h (module 'core'): bool ns3::AttributeChecker::Copy(ns3::AttributeValue const & source, ns3::AttributeValue & destination) const [member function] cls.add_method('Copy', 'bool', [param('ns3::AttributeValue const &', 'source'), param('ns3::AttributeValue &', 'destination')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## attribute.h (module 'core'): ns3::Ptr ns3::AttributeChecker::Create() const [member function] cls.add_method('Create', 'ns3::Ptr< ns3::AttributeValue >', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## attribute.h (module 'core'): ns3::Ptr ns3::AttributeChecker::CreateValidValue(ns3::AttributeValue const & value) const [member function] cls.add_method('CreateValidValue', 'ns3::Ptr< ns3::AttributeValue >', @@ -4590,17 +4638,17 @@ def register_Ns3AttributeChecker_methods(root_module, cls): cls.add_method('GetUnderlyingTypeInformation', 'std::string', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## attribute.h (module 'core'): std::string ns3::AttributeChecker::GetValueTypeName() const [member function] cls.add_method('GetValueTypeName', 'std::string', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## attribute.h (module 'core'): bool ns3::AttributeChecker::HasUnderlyingTypeInformation() const [member function] cls.add_method('HasUnderlyingTypeInformation', 'bool', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) return def register_Ns3AttributeValue_methods(root_module, cls): @@ -4612,17 +4660,17 @@ def register_Ns3AttributeValue_methods(root_module, cls): cls.add_method('Copy', 'ns3::Ptr< ns3::AttributeValue >', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## attribute.h (module 'core'): bool ns3::AttributeValue::DeserializeFromString(std::string value, ns3::Ptr checker) [member function] cls.add_method('DeserializeFromString', 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## attribute.h (module 'core'): std::string ns3::AttributeValue::SerializeToString(ns3::Ptr checker) const [member function] cls.add_method('SerializeToString', 'std::string', [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) return def register_Ns3BooleanChecker_methods(root_module, cls): @@ -4682,12 +4730,12 @@ def register_Ns3CallbackImplBase_methods(root_module, cls): cls.add_method('GetTypeid', 'std::string', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## callback.h (module 'core'): bool ns3::CallbackImplBase::IsEqual(ns3::Ptr other) const [member function] cls.add_method('IsEqual', 'bool', [param('ns3::Ptr< ns3::CallbackImplBase const >', 'other')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::Demangle(std::string const & mangled) [member function] cls.add_method('Demangle', 'std::string', @@ -4697,62 +4745,67 @@ def register_Ns3CallbackImplBase_methods(root_module, cls): cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, visibility='protected', template_parameters=[u'ns3::ObjectBase*']) + is_static=True, template_parameters=['ns3::ObjectBase*'], visibility='protected') + ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] + cls.add_method('GetCppTypeid', + 'std::string', + [], + is_static=True, template_parameters=['void'], visibility='protected') ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, visibility='protected', template_parameters=[u'void']) + is_static=True, template_parameters=['unsigned int'], visibility='protected') ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, visibility='protected', template_parameters=[u'unsigned int']) + is_static=True, template_parameters=['long'], visibility='protected') ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, visibility='protected', template_parameters=[u'bool']) + is_static=True, template_parameters=['bool'], visibility='protected') ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, visibility='protected', template_parameters=[u'ns3::Time']) + is_static=True, template_parameters=['ns3::Time'], visibility='protected') ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, visibility='protected', template_parameters=[u'ns3::Ptr ']) + is_static=True, template_parameters=['ns3::Ptr '], visibility='protected') ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, visibility='protected', template_parameters=[u'char const*']) + is_static=True, template_parameters=['char const*'], visibility='protected') ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, visibility='protected', template_parameters=[u'ns3::Ptr ']) + is_static=True, template_parameters=['ns3::Ptr '], visibility='protected') ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, visibility='protected', template_parameters=[u'ns3::Ptr ']) + is_static=True, template_parameters=['ns3::Ptr '], visibility='protected') ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, visibility='protected', template_parameters=[u'unsigned short']) + is_static=True, template_parameters=['unsigned short'], visibility='protected') ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, visibility='protected', template_parameters=[u'ns3::Address const&']) + is_static=True, template_parameters=['ns3::Address const&'], visibility='protected') ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function] cls.add_method('GetCppTypeid', 'std::string', [], - is_static=True, visibility='protected', template_parameters=[u'ns3::NetDevice::PacketType']) + is_static=True, template_parameters=['ns3::NetDevice::PacketType'], visibility='protected') return def register_Ns3CallbackValue_methods(root_module, cls): @@ -4811,22 +4864,92 @@ def register_Ns3CoDelQueueDisc_methods(root_module, cls): cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## codel-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::CoDelQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## codel-queue-disc.h (module 'traffic-control'): bool ns3::CoDelQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## codel-queue-disc.h (module 'traffic-control'): void ns3::CoDelQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') + return + +def register_Ns3CobaltQueueDisc_methods(root_module, cls): + ## cobalt-queue-disc.h (module 'traffic-control'): static ns3::TypeId ns3::CobaltQueueDisc::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## cobalt-queue-disc.h (module 'traffic-control'): ns3::CobaltQueueDisc::CobaltQueueDisc() [constructor] + cls.add_constructor([]) + ## cobalt-queue-disc.h (module 'traffic-control'): ns3::Time ns3::CobaltQueueDisc::GetTarget() [member function] + cls.add_method('GetTarget', + 'ns3::Time', + []) + ## cobalt-queue-disc.h (module 'traffic-control'): ns3::Time ns3::CobaltQueueDisc::GetInterval() [member function] + cls.add_method('GetInterval', + 'ns3::Time', + []) + ## cobalt-queue-disc.h (module 'traffic-control'): int64_t ns3::CobaltQueueDisc::GetDropNext() [member function] + cls.add_method('GetDropNext', + 'int64_t', + []) + ## cobalt-queue-disc.h (module 'traffic-control'): ns3::CobaltQueueDisc::TARGET_EXCEEDED_DROP [variable] + cls.add_static_attribute('TARGET_EXCEEDED_DROP', 'char const * const', is_const=True) + ## cobalt-queue-disc.h (module 'traffic-control'): ns3::CobaltQueueDisc::OVERLIMIT_DROP [variable] + cls.add_static_attribute('OVERLIMIT_DROP', 'char const * const', is_const=True) + ## cobalt-queue-disc.h (module 'traffic-control'): ns3::CobaltQueueDisc::FORCED_MARK [variable] + cls.add_static_attribute('FORCED_MARK', 'char const * const', is_const=True) + ## cobalt-queue-disc.h (module 'traffic-control'): double ns3::CobaltQueueDisc::GetPdrop() [member function] + cls.add_method('GetPdrop', + 'double', + []) + ## cobalt-queue-disc.h (module 'traffic-control'): int64_t ns3::CobaltQueueDisc::AssignStreams(int64_t stream) [member function] + cls.add_method('AssignStreams', + 'int64_t', + [param('int64_t', 'stream')]) + ## cobalt-queue-disc.h (module 'traffic-control'): int64_t ns3::CobaltQueueDisc::Time2CoDel(ns3::Time t) [member function] + cls.add_method('Time2CoDel', + 'int64_t', + [param('ns3::Time', 't')]) + ## cobalt-queue-disc.h (module 'traffic-control'): void ns3::CobaltQueueDisc::DoDispose() [member function] + cls.add_method('DoDispose', + 'void', + [], + is_virtual=True, visibility='protected') + ## cobalt-queue-disc.h (module 'traffic-control'): bool ns3::CobaltQueueDisc::DoEnqueue(ns3::Ptr item) [member function] + cls.add_method('DoEnqueue', + 'bool', + [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], + is_virtual=True, visibility='private') + ## cobalt-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::CobaltQueueDisc::DoDequeue() [member function] + cls.add_method('DoDequeue', + 'ns3::Ptr< ns3::QueueDiscItem >', + [], + is_virtual=True, visibility='private') + ## cobalt-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::CobaltQueueDisc::DoPeek() [member function] + cls.add_method('DoPeek', + 'ns3::Ptr< ns3::QueueDiscItem const >', + [], + is_virtual=True, visibility='private') + ## cobalt-queue-disc.h (module 'traffic-control'): bool ns3::CobaltQueueDisc::CheckConfig() [member function] + cls.add_method('CheckConfig', + 'bool', + [], + is_virtual=True, visibility='private') + ## cobalt-queue-disc.h (module 'traffic-control'): void ns3::CobaltQueueDisc::InitializeParams() [member function] + cls.add_method('InitializeParams', + 'void', + [], + is_virtual=True, visibility='private') return def register_Ns3ConstantRandomVariable_methods(root_module, cls): @@ -4985,12 +5108,12 @@ def register_Ns3EmpiricalRandomVariable_methods(root_module, cls): cls.add_method('Interpolate', 'double', [param('double', 'c1'), param('double', 'c2'), param('double', 'v1'), param('double', 'v2'), param('double', 'r')], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## random-variable-stream.h (module 'core'): void ns3::EmpiricalRandomVariable::Validate() [member function] cls.add_method('Validate', 'void', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') return def register_Ns3EmptyAttributeAccessor_methods(root_module, cls): @@ -5066,17 +5189,17 @@ def register_Ns3EmptyAttributeValue_methods(root_module, cls): cls.add_method('Copy', 'ns3::Ptr< ns3::AttributeValue >', [], - is_const=True, visibility='private', is_virtual=True) + is_const=True, is_virtual=True, visibility='private') ## attribute.h (module 'core'): bool ns3::EmptyAttributeValue::DeserializeFromString(std::string value, ns3::Ptr checker) [member function] cls.add_method('DeserializeFromString', 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## attribute.h (module 'core'): std::string ns3::EmptyAttributeValue::SerializeToString(ns3::Ptr checker) const [member function] cls.add_method('SerializeToString', 'std::string', [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], - is_const=True, visibility='private', is_virtual=True) + is_const=True, is_virtual=True, visibility='private') return def register_Ns3EnumChecker_methods(root_module, cls): @@ -5216,7 +5339,7 @@ def register_Ns3EventImpl_methods(root_module, cls): cls.add_method('Notify', 'void', [], - is_pure_virtual=True, visibility='protected', is_virtual=True) + is_virtual=True, is_pure_virtual=True, visibility='protected') return def register_Ns3ExponentialRandomVariable_methods(root_module, cls): @@ -5271,27 +5394,27 @@ def register_Ns3FifoQueueDisc_methods(root_module, cls): cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## fifo-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::FifoQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## fifo-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::FifoQueueDisc::DoPeek() [member function] cls.add_method('DoPeek', 'ns3::Ptr< ns3::QueueDiscItem const >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## fifo-queue-disc.h (module 'traffic-control'): bool ns3::FifoQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## fifo-queue-disc.h (module 'traffic-control'): void ns3::FifoQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') return def register_Ns3FqCoDelFlow_methods(root_module, cls): @@ -5353,22 +5476,22 @@ def register_Ns3FqCoDelQueueDisc_methods(root_module, cls): cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## fq-codel-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::FqCoDelQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## fq-codel-queue-disc.h (module 'traffic-control'): bool ns3::FqCoDelQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## fq-codel-queue-disc.h (module 'traffic-control'): void ns3::FqCoDelQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') return def register_Ns3GammaRandomVariable_methods(root_module, cls): @@ -5697,27 +5820,27 @@ def register_Ns3MqQueueDisc_methods(root_module, cls): cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## mq-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::MqQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## mq-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::MqQueueDisc::DoPeek() [member function] cls.add_method('DoPeek', 'ns3::Ptr< ns3::QueueDiscItem const >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## mq-queue-disc.h (module 'traffic-control'): bool ns3::MqQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## mq-queue-disc.h (module 'traffic-control'): void ns3::MqQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') return def register_Ns3NetDevice_methods(root_module, cls): @@ -5729,47 +5852,47 @@ def register_Ns3NetDevice_methods(root_module, cls): cls.add_method('AddLinkChangeCallback', 'void', [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): ns3::Address ns3::NetDevice::GetAddress() const [member function] cls.add_method('GetAddress', 'ns3::Address', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): ns3::Address ns3::NetDevice::GetBroadcast() const [member function] cls.add_method('GetBroadcast', 'ns3::Address', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDevice::GetChannel() const [member function] cls.add_method('GetChannel', 'ns3::Ptr< ns3::Channel >', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): uint32_t ns3::NetDevice::GetIfIndex() const [member function] cls.add_method('GetIfIndex', 'uint32_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): uint16_t ns3::NetDevice::GetMtu() const [member function] cls.add_method('GetMtu', 'uint16_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): ns3::Address ns3::NetDevice::GetMulticast(ns3::Ipv4Address multicastGroup) const [member function] cls.add_method('GetMulticast', 'ns3::Address', [param('ns3::Ipv4Address', 'multicastGroup')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): ns3::Address ns3::NetDevice::GetMulticast(ns3::Ipv6Address addr) const [member function] cls.add_method('GetMulticast', 'ns3::Address', [param('ns3::Ipv6Address', 'addr')], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDevice::GetNode() const [member function] cls.add_method('GetNode', 'ns3::Ptr< ns3::Node >', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDevice::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -5779,77 +5902,77 @@ def register_Ns3NetDevice_methods(root_module, cls): cls.add_method('IsBridge', 'bool', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::IsBroadcast() const [member function] cls.add_method('IsBroadcast', 'bool', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::IsLinkUp() const [member function] cls.add_method('IsLinkUp', 'bool', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::IsMulticast() const [member function] cls.add_method('IsMulticast', 'bool', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::IsPointToPoint() const [member function] cls.add_method('IsPointToPoint', 'bool', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::NeedsArp() const [member function] cls.add_method('NeedsArp', 'bool', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::Send(ns3::Ptr packet, ns3::Address const & dest, uint16_t protocolNumber) [member function] cls.add_method('Send', 'bool', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::SendFrom(ns3::Ptr packet, ns3::Address const & source, ns3::Address const & dest, uint16_t protocolNumber) [member function] cls.add_method('SendFrom', 'bool', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): void ns3::NetDevice::SetAddress(ns3::Address address) [member function] cls.add_method('SetAddress', 'void', [param('ns3::Address', 'address')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): void ns3::NetDevice::SetIfIndex(uint32_t const index) [member function] cls.add_method('SetIfIndex', 'void', [param('uint32_t const', 'index')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::SetMtu(uint16_t const mtu) [member function] cls.add_method('SetMtu', 'bool', [param('uint16_t const', 'mtu')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): void ns3::NetDevice::SetNode(ns3::Ptr node) [member function] cls.add_method('SetNode', 'void', [param('ns3::Ptr< ns3::Node >', 'node')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): void ns3::NetDevice::SetPromiscReceiveCallback(ns3::NetDevice::PromiscReceiveCallback cb) [member function] cls.add_method('SetPromiscReceiveCallback', 'void', [param('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::Address const &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty >', 'cb')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): void ns3::NetDevice::SetReceiveCallback(ns3::NetDevice::ReceiveCallback cb) [member function] cls.add_method('SetReceiveCallback', 'void', [param('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDevice::SupportsSendFrom() const [member function] cls.add_method('SupportsSendFrom', 'bool', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True, is_pure_virtual=True) return def register_Ns3NixVector_methods(root_module, cls): @@ -5976,12 +6099,12 @@ def register_Ns3Node_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') ## node.h (module 'network'): void ns3::Node::DoInitialize() [member function] cls.add_method('DoInitialize', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') return def register_Ns3NormalRandomVariable_methods(root_module, cls): @@ -6090,6 +6213,11 @@ def register_Ns3Packet_methods(root_module, cls): 'void', [param('ns3::Tag const &', 'tag')], is_const=True) + ## packet.h (module 'network'): void ns3::Packet::AddByteTag(ns3::Tag const & tag, uint32_t start, uint32_t end) const [member function] + cls.add_method('AddByteTag', + 'void', + [param('ns3::Tag const &', 'tag'), param('uint32_t', 'start'), param('uint32_t', 'end')], + is_const=True) ## packet.h (module 'network'): void ns3::Packet::AddHeader(ns3::Header const & header) [member function] cls.add_method('AddHeader', 'void', @@ -6275,7 +6403,7 @@ def register_Ns3ParetoRandomVariable_methods(root_module, cls): cls.add_method('GetMean', 'double', [], - deprecated=True, is_const=True) + is_const=True, deprecated=True) ## random-variable-stream.h (module 'core'): double ns3::ParetoRandomVariable::GetScale() const [member function] cls.add_method('GetScale', 'double', @@ -6325,27 +6453,27 @@ def register_Ns3PfifoFastQueueDisc_methods(root_module, cls): cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## pfifo-fast-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::PfifoFastQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## pfifo-fast-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::PfifoFastQueueDisc::DoPeek() [member function] cls.add_method('DoPeek', 'ns3::Ptr< ns3::QueueDiscItem const >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## pfifo-fast-queue-disc.h (module 'traffic-control'): bool ns3::PfifoFastQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## pfifo-fast-queue-disc.h (module 'traffic-control'): void ns3::PfifoFastQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') return def register_Ns3PieQueueDisc_methods(root_module, cls): @@ -6372,27 +6500,27 @@ def register_Ns3PieQueueDisc_methods(root_module, cls): cls.add_method('DoDispose', 'void', [], - visibility='protected', is_virtual=True) + is_virtual=True, visibility='protected') ## pie-queue-disc.h (module 'traffic-control'): bool ns3::PieQueueDisc::DoEnqueue(ns3::Ptr item) [member function] cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## pie-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::PieQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## pie-queue-disc.h (module 'traffic-control'): bool ns3::PieQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## pie-queue-disc.h (module 'traffic-control'): void ns3::PieQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') return def register_Ns3PrioQueueDisc_methods(root_module, cls): @@ -6416,27 +6544,27 @@ def register_Ns3PrioQueueDisc_methods(root_module, cls): cls.add_method('DoEnqueue', 'bool', [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## prio-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::PrioQueueDisc::DoDequeue() [member function] cls.add_method('DoDequeue', 'ns3::Ptr< ns3::QueueDiscItem >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## prio-queue-disc.h (module 'traffic-control'): ns3::Ptr ns3::PrioQueueDisc::DoPeek() [member function] cls.add_method('DoPeek', 'ns3::Ptr< ns3::QueueDiscItem const >', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## prio-queue-disc.h (module 'traffic-control'): bool ns3::PrioQueueDisc::CheckConfig() [member function] cls.add_method('CheckConfig', 'bool', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') ## prio-queue-disc.h (module 'traffic-control'): void ns3::PrioQueueDisc::InitializeParams() [member function] cls.add_method('InitializeParams', 'void', [], - visibility='private', is_virtual=True) + is_virtual=True, visibility='private') return def register_Ns3PriomapChecker_methods(root_module, cls): @@ -6750,7 +6878,7 @@ def register_Ns3CallbackImpl__Ns3ObjectBase___star___Ns3Empty_Ns3Empty_Ns3Empty_ cls.add_method('operator()', 'ns3::ObjectBase *', [], - is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') + custom_name='__call__', is_virtual=True, is_pure_virtual=True) return def register_Ns3CallbackImpl__Void_Bool_Bool_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -6772,7 +6900,29 @@ def register_Ns3CallbackImpl__Void_Bool_Bool_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty cls.add_method('operator()', 'void', [param('bool', 'arg0'), param('bool', 'arg1')], - is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') + custom_name='__call__', is_virtual=True, is_pure_virtual=True) + return + +def register_Ns3CallbackImpl__Void_Long_Long_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): + ## callback.h (module 'core'): ns3::CallbackImpl::CallbackImpl() [constructor] + cls.add_constructor([]) + ## callback.h (module 'core'): ns3::CallbackImpl::CallbackImpl(ns3::CallbackImpl const & arg0) [constructor] + cls.add_constructor([param('ns3::CallbackImpl< void, long, long, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty > const &', 'arg0')]) + ## callback.h (module 'core'): static std::string ns3::CallbackImpl::DoGetTypeid() [member function] + cls.add_method('DoGetTypeid', + 'std::string', + [], + is_static=True) + ## callback.h (module 'core'): std::string ns3::CallbackImpl::GetTypeid() const [member function] + cls.add_method('GetTypeid', + 'std::string', + [], + is_const=True, is_virtual=True) + ## callback.h (module 'core'): void ns3::CallbackImpl::operator()(long int arg0, long int arg1) [member operator] + cls.add_method('operator()', + 'void', + [param('long int', 'arg0'), param('long int', 'arg1')], + custom_name='__call__', is_virtual=True, is_pure_virtual=True) return def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__const_ns3QueueDiscItem__gt___Const_char___star___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -6794,7 +6944,7 @@ def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__const_ns3QueueDiscItem__gt___Cons cls.add_method('operator()', 'void', [param('ns3::Ptr< ns3::QueueDiscItem const >', 'arg0'), param('char const *', 'arg1')], - is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') + custom_name='__call__', is_virtual=True, is_pure_virtual=True) return def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__const_ns3QueueDiscItem__gt___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -6816,7 +6966,7 @@ def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__const_ns3QueueDiscItem__gt___Ns3E cls.add_method('operator()', 'void', [param('ns3::Ptr< ns3::QueueDiscItem const >', 'arg0')], - is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') + custom_name='__call__', is_virtual=True, is_pure_virtual=True) return def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__ns3NetDevice__gt___Ns3Ptr__lt__const_ns3Packet__gt___Unsigned_short_Const_ns3Address___amp___Const_ns3Address___amp___Ns3NetDevicePacketType_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -6838,7 +6988,7 @@ def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__ns3NetDevice__gt___Ns3Ptr__lt__co cls.add_method('operator()', 'void', [param('ns3::Ptr< ns3::NetDevice >', 'arg0'), param('ns3::Ptr< ns3::Packet const >', 'arg1'), param('short unsigned int', 'arg2'), param('ns3::Address const &', 'arg3'), param('ns3::Address const &', 'arg4'), param('ns3::NetDevice::PacketType', 'arg5')], - is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') + custom_name='__call__', is_virtual=True, is_pure_virtual=True) return def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__ns3NetDevice__gt___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -6860,7 +7010,7 @@ def register_Ns3CallbackImpl__Void_Ns3Ptr__lt__ns3NetDevice__gt___Ns3Empty_Ns3Em cls.add_method('operator()', 'void', [param('ns3::Ptr< ns3::NetDevice >', 'arg0')], - is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') + custom_name='__call__', is_virtual=True, is_pure_virtual=True) return def register_Ns3CallbackImpl__Void_Ns3Time_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -6882,7 +7032,7 @@ def register_Ns3CallbackImpl__Void_Ns3Time_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_N cls.add_method('operator()', 'void', [param('ns3::Time', 'arg0')], - is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') + custom_name='__call__', is_virtual=True, is_pure_virtual=True) return def register_Ns3CallbackImpl__Void_Unsigned_int_Unsigned_int_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): @@ -6904,7 +7054,7 @@ def register_Ns3CallbackImpl__Void_Unsigned_int_Unsigned_int_Ns3Empty_Ns3Empty_N cls.add_method('operator()', 'void', [param('unsigned int', 'arg0'), param('unsigned int', 'arg1')], - is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') + custom_name='__call__', is_virtual=True, is_pure_virtual=True) return def register_Ns3QueueDiscItem_methods(root_module, cls): @@ -6942,7 +7092,7 @@ def register_Ns3QueueDiscItem_methods(root_module, cls): cls.add_method('AddHeader', 'void', [], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## queue-item.h (module 'network'): void ns3::QueueDiscItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', @@ -6952,7 +7102,7 @@ def register_Ns3QueueDiscItem_methods(root_module, cls): cls.add_method('Mark', 'bool', [], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## queue-item.h (module 'network'): uint32_t ns3::QueueDiscItem::Hash(uint32_t perturbation=0) const [member function] cls.add_method('Hash', 'uint32_t', @@ -6969,7 +7119,7 @@ def register_Ns3HashImplementation_methods(root_module, cls): cls.add_method('GetHash32', 'uint32_t', [param('char const *', 'buffer'), param('std::size_t const', 'size')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) ## hash-function.h (module 'core'): uint64_t ns3::Hash::Implementation::GetHash64(char const * buffer, std::size_t const size) [member function] cls.add_method('GetHash64', 'uint64_t', @@ -6979,7 +7129,7 @@ def register_Ns3HashImplementation_methods(root_module, cls): cls.add_method('clear', 'void', [], - is_pure_virtual=True, is_virtual=True) + is_virtual=True, is_pure_virtual=True) return def register_Ns3HashFunctionFnv1a_methods(root_module, cls): diff --git a/src/traffic-control/doc/cobalt.rst b/src/traffic-control/doc/cobalt.rst new file mode 100644 index 00000000000..10e968ab386 --- /dev/null +++ b/src/traffic-control/doc/cobalt.rst @@ -0,0 +1,137 @@ +.. include:: replace.txt + + +Cobalt queue disc +----------------- + +This chapter describes the COBALT (CoDel BLUE Alternate) ([Cake16]_) queue disc +implementation in |ns3|. + +COBALT queue disc is an integral component of CAKE smart queue management system. +It is a combination of the CoDel ([Kath17]_) and BLUE ([BLUE02]_) Active Queue +Management algorithms. + + +Model Description +***************** + +The source code for the COBALT model is located in the directory +``src/traffic-control/model`` and consists of 2 files: `cobalt-queue-disc.h` and +`cobalt-queue-disc.cc` defining a CobaltQueueDisc class and a helper +CobaltTimestampTag class. The code was ported to |ns3| by Vignesh Kanan, +Harsh Lara, Shefali Gupta, Jendaipou Palmei and Mohit P. Tahiliani based on +the Linux kernel code. + +Stefano Avallone and Pasquale Imputato helped in verifying the correctness of +COBALT model in |ns3| by comparing the results obtained from it to those obtained +from the Linux model of COBALT. A detailed comparison of ns-3 model of COBALT with +Linux model of COBALT is provided in ([Cobalt19]_). + +* class :cpp:class:`CobaltQueueDisc`: This class implements the main Cobalt algorithm: + + * ``CobaltQueueDisc::DoEnqueue ()``: This routine tags a packet with the +current time before pushing it into the queue. The timestamp tag is used by +``CobaltQueue::DoDequeue()`` to compute the packet's sojourn time. If the +queue is full upon the packet arrival, this routine will drop the packet and +record the number of drops due to queue overflow, which is stored in +`m_stats.qLimDrop`. + + * ``CobaltQueueDisc::ShouldDrop ()``: This routine is +``CobaltQueueDisc::DoDequeue()``'s helper routine that determines whether a +packet should be dropped or not based on its sojourn time. If the sojourn time +goes above `m_target` and remains above continuously for at least `m_interval`, +the routine returns ``true`` indicating that it is OK to drop the packet. +``Otherwise, it returns ``false``. This routine decides if a packet should be +dropped based on the dropping state of CoDel and drop probability of BLUE. +The idea is to have both algorithms running in parallel and their effectiveness +is decided by their respective parameters (Pdrop of BLUE and dropping state of +CoDel). If either of them decide to drop the packet, the packet is dropped. + + * ``CobaltQueueDisc::DoDequeue ()``: This routine performs the actual packet +``drop based on ``CobaltQueueDisc::ShouldDrop ()``'s return value and schedules +the next drop. Cobalt will decrease BLUE's drop probability if the queue is +empty. This will ensure that the queue does not underflow. Otherwise Cobalt will +take the next packet from the queue and calculate its drop state by running +CoDel and BLUE in parallel till there are none left to drop. + +* class :cpp:class:`CobaltTimestampTag`: This class implements the timestamp +tagging for a packet. This tag is used to compute the packet's sojourn time +(the difference between the time the packet is dequeued and the time it is +pushed into the queue). + + + +References +========== + +[Cake16] Linux implementation of Cobalt as a part of the cake framework. +Available online at ``_. + +[Kath17] Controlled Delay Active Queue Management (draft-ietf-aqm-fq-codel-07) +Available online at ``_. + +[BLUE02] Feng, W. C., Shin, K. G., Kandlur, D. D., & Saha, D. (2002). The BLUE +Active Queue Management Algorithms. IEEE/ACM Transactions on Networking (ToN), +10(4), 513-528. + +[Cobalt19] Jendaipou Palmei, Shefali Gupta, Pasquale Imputato, Jonathan Morton, +Mohit P. Tahiliani, Stefano Avallone and Dave Taht (2019). Design and Evaluation +of COBALT Queue Discipline. IEEE International Symposium on Local and +Metropolitan Area Networks (LANMAN), July 2019. + + +Attributes +========== + +The key attributes that the CobaltQueue Disc class holds include the following: + +* ``MaxSize:`` The maximum number of packets/bytes accepted by this queue disc. +* ``MinBytes:`` The Cobalt algorithm minbytes parameter. The default value is +1500 bytes. +* ``Interval:`` The sliding-minimum window. The default value is 100 ms. +* ``Target:`` The Cobalt algorithm target queue delay. The default value is +5 ms. +* ``Pdrop:`` Value of drop probability. +* ``Increment:`` Increment value of drop probability. Default value is 1./256 . +* ``Decrement:`` Decrement value of drop probability. Default value is 1./4096 . +* ``Count:`` Cobalt count. +* ``DropState:`` Dropping state of Cobalt. Default value is false. +* ``Sojourn:`` Per packet time spent in the queue. +* ``DropNext:`` Time until next packet drop. + +Examples +======== + +An example program named `cobalt-vs-codel.cc` is located in +``src/traffic-control/examples``. Use the following command to run the program. + +:: + + $ ./waf --run cobalt-vs-codel + + +Validation +********** + +The COBALT model is tested using :cpp:class:`CobaltQueueDiscTestSuite` class +defined in `src/traffic-control/test/cobalt-queue-test-suite.cc`. +The suite includes 2 test cases: + +* Test 1: Simple enqueue/dequeue with no drops. +* Test 2: Change of BLUE's drop probability upon queue full +(Activation of Blue). + +The test suite can be run using the following commands: + +:: + + $ ./waf configure --enable-examples --enable-tests + $ ./waf build + $ ./test.py -s cobalt-queue-disc + +or + +:: + + $ NS_LOG="CobaltQueueDisc" ./waf --run "test-runner --suite=cobalt-queue-disc" + diff --git a/src/traffic-control/doc/fq-codel.rst b/src/traffic-control/doc/fq-codel.rst index 383919ce461..84cbb97d966 100644 --- a/src/traffic-control/doc/fq-codel.rst +++ b/src/traffic-control/doc/fq-codel.rst @@ -17,6 +17,9 @@ FqCoDel distinguishes between "new" queues (which don't build up a standing queue) and "old" queues, that have queued enough data to be around for more than one iteration of the round-robin scheduler. +FqCoDel is installed by default on single-queue NetDevices (such as PointToPoint, +Csma and Simple). Also, on multi-queue devices (such as Wifi), the default root +qdisc is Mq with as many FqCoDel child queue discs as the number of device queues. Model Description ***************** @@ -69,6 +72,12 @@ The key attributes that the FqCoDelQueue class holds include the following: * ``DropBatchSize:`` The maximum number of packets dropped from the fat flow. * ``Perturbation:`` The salt used as an additional input to the hash function used to classify packets. +Perturbation is an optional configuration attribute and can be used to generate +different hash outcomes for different inputs. For instance, the tuples +used as input to the hash may cause hash collisions (mapping to the same +bucket) for a given set of inputs, but by changing the perturbation value, +the same hash inputs now map to distinct buckets. + Note that the quantum, i.e., the number of bytes each queue gets to dequeue on each round of the scheduling algorithm, is set by default to the MTU size of the device (at initialisation time). The ``FqCoDelQueueDisc::SetQuantum ()`` method diff --git a/src/traffic-control/doc/mq.rst b/src/traffic-control/doc/mq.rst index 52587ab173e..3ab31c7ed32 100644 --- a/src/traffic-control/doc/mq.rst +++ b/src/traffic-control/doc/mq.rst @@ -12,6 +12,9 @@ traffic control API in Linux. The mq scheduler presents device transmission queu classes, allowing to attach different queue discs to them, which are grafted to the device transmission queues. +Mq is installed by default on multi-queue devices (such as Wifi) with as many FqCodel +child queue discs as the number of device queues. + Model Description ***************** diff --git a/src/traffic-control/doc/queue-discs.rst b/src/traffic-control/doc/queue-discs.rst index 63b09291405..02b97cbea59 100644 --- a/src/traffic-control/doc/queue-discs.rst +++ b/src/traffic-control/doc/queue-discs.rst @@ -171,8 +171,12 @@ Usage By default, the InternetStackHelper aggregates a TrafficControlLayer object to every node. When invoked to assign an IPv{4,6} address to a device, the Ipv{4,6}AddressHelper, -besides creating a Ipv{4,6}Interface, also installs the default qdisc, PfifoFastQueueDisc, -on the device, unless a queue disc has been already installed. Thus, devices get the default +besides creating an Ipv{4,6}Interface, also installs the default qdisc +on the device, unless a queue disc has been already installed. +For single-queue NetDevices (such as PointToPoint, Csma and Simple), the default root +qdisc is FqCoDel. For multi-queue NetDevices (such as Wifi), the default root qdisc is +Mq with as many FqCoDel child qdiscs as the number of device queues. +Thus, devices get the default queue disc installed even if they are added to the node after the Internet stack has been installed on the node. @@ -187,7 +191,7 @@ Helpers A typical usage pattern is to create a traffic control helper and to configure type and attributes of queue discs, queues, classes and filters from the helper, For example, -the default pfifo_fast can be configured as follows: +the pfifo_fast can be configured as follows: .. sourcecode:: cpp @@ -196,7 +200,7 @@ the default pfifo_fast can be configured as follows: tch.AddInternalQueues (handle, 3, "ns3::DropTailQueue", "MaxSize", StringValue ("1000p")); QueueDiscContainer qdiscs = tch.Install (devices); -The above code adds three internal queues and a packet filter to the root queue disc of type PfifoFast. +The above code adds three internal queues to the root queue disc of type PfifoFast. With the above configuration, the config path of the root queue disc installed on the j-th device of the i-th node (the index of a device is the same as in DeviceList) is: diff --git a/src/traffic-control/helper/traffic-control-helper.cc b/src/traffic-control/helper/traffic-control-helper.cc index c09120f3255..fded396704d 100644 --- a/src/traffic-control/helper/traffic-control-helper.cc +++ b/src/traffic-control/helper/traffic-control-helper.cc @@ -108,10 +108,22 @@ TrafficControlHelper::TrafficControlHelper () } TrafficControlHelper -TrafficControlHelper::Default (void) +TrafficControlHelper::Default (std::size_t nTxQueues) { + NS_LOG_FUNCTION (nTxQueues); + NS_ABORT_MSG_IF (nTxQueues == 0, "The device must have at least one queue"); TrafficControlHelper helper; - helper.SetRootQueueDisc ("ns3::PfifoFastQueueDisc"); + + if (nTxQueues == 1) + { + helper.SetRootQueueDisc ("ns3::FqCoDelQueueDisc"); + } + else + { + uint16_t handle = helper.SetRootQueueDisc ("ns3::MqQueueDisc"); + ClassIdList cls = helper.AddQueueDiscClasses (handle, nTxQueues, "ns3::QueueDiscClass"); + helper.AddChildQueueDiscs (handle, cls, "ns3::FqCoDelQueueDisc"); + } return helper; } diff --git a/src/traffic-control/helper/traffic-control-helper.h b/src/traffic-control/helper/traffic-control-helper.h index d1ec43e107f..9417b1910a9 100644 --- a/src/traffic-control/helper/traffic-control-helper.h +++ b/src/traffic-control/helper/traffic-control-helper.h @@ -128,10 +128,11 @@ class TrafficControlHelper /** * \returns a new TrafficControlHelper with a default configuration * - * The default configuration is a PfifoFastQueueDisc with three internal queues - * of type DropTailQueue and size 1000 packets. + * The default configuration is an FqCoDelQueueDisc, if the device has a single + * queue, or an MqQueueDisc with as many FqCoDelQueueDiscs as the number of + * device queues, otherwise. */ - static TrafficControlHelper Default (void); + static TrafficControlHelper Default (std::size_t nTxQueues = 1); /** * Helper function used to set a root queue disc of the given type and with the diff --git a/src/traffic-control/test/examples-to-run.py b/src/traffic-control/test/examples-to-run.py index e81bad59896..95e2d021a6a 100644 --- a/src/traffic-control/test/examples-to-run.py +++ b/src/traffic-control/test/examples-to-run.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 ## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*- # A list of C++ examples to run in order to ensure that they remain