doc: Fix rendering issues due to excessive indentation

This commit is contained in:
Eduardo Almeida
2024-10-14 15:29:06 +01:00
parent f9b7ac722d
commit a92941c6ab
8 changed files with 207 additions and 197 deletions

View File

@@ -80,11 +80,11 @@ merging of your code.
In brief, we can summarize the guidelines as follows:
1. Be licensed appropriately (see :ref:`General`)
2. Understand how and why |ns3| conducts code reviews before merging
3. Follow the ns-3 coding style (:ref:`Coding style`) and software
engineering and consistency feedback that maintainers may provide
4. Write associated documentation, tests, and example programs
1. Be licensed appropriately (see :ref:`General`)
2. Understand how and why |ns3| conducts code reviews before merging
3. Follow the ns-3 coding style (:ref:`Coding style`) and software
engineering and consistency feedback that maintainers may provide
4. Write associated documentation, tests, and example programs
If you do not have the time to follow through the process to include your
code in the main tree, please see the next chapter (:ref:`External`)

View File

@@ -24,15 +24,15 @@ Requirements
The minimum supported version of Ubuntu is Ubuntu 18.04 LTS (as long as a modern compiler
version such as g++ version 9 or later is added).
+--------------------+---------------------------------------------------------------------+
| **ns-3 Version** | **apt Packages** |
+====================+==================+==================================================+
| 3.36 and later | ``g++ python3 cmake ninja-build git`` |
+--------------------+---------------------------------------------------------------------+
| 3.30-3.35 | ``g++ python3 git`` |
+--------------------+---------------------------------------------------------------------+
| 3.29 and earlier | ``g++ python2`` |
+--------------------+---------------------------------------------------------------------+
+--------------------+---------------------------------------------------------------------+
| **ns-3 Version** | **apt Packages** |
+====================+==================+==================================================+
| 3.36 and later | ``g++ python3 cmake ninja-build git`` |
+--------------------+---------------------------------------------------------------------+
| 3.30-3.35 | ``g++ python3 git`` |
+--------------------+---------------------------------------------------------------------+
| 3.29 and earlier | ``g++ python2`` |
+--------------------+---------------------------------------------------------------------+
.. note::
As of July 2023 (ns-3.39 release and later), the minimum g++ version is g++-9.
@@ -41,15 +41,15 @@ version such as g++ version 9 or later is added).
Recommended
***********
+-----------------------------+------------------------------------------------------------+
| **Feature** | **apt Packages** |
+=============================+============================================================+
| Compiler cache optimization | ``ccache`` |
+-----------------------------+------------------------------------------------------------+
| Code linting | ``clang-format clang-tidy`` |
+-----------------------------+------------------------------------------------------------+
| Debugging | ``gdb valgrind`` |
+-----------------------------+------------------------------------------------------------+
+-----------------------------+------------------------------------------------------------+
| **Feature** | **apt Packages** |
+=============================+============================================================+
| Compiler cache optimization | ``ccache`` |
+-----------------------------+------------------------------------------------------------+
| Code linting | ``clang-format clang-tidy`` |
+-----------------------------+------------------------------------------------------------+
| Debugging | ``gdb valgrind`` |
+-----------------------------+------------------------------------------------------------+
.. note::
For Ubuntu 20.04 release and earlier, the version of ccache provided by apt
@@ -65,37 +65,37 @@ Optional
Please see below subsections for Python-related package requirements.
+-----------------------------+------------------------------------------------------------+
| **Feature** | **apt Packages** |
+=============================+============================================================+
| Reading pcap traces | ``tcpdump wireshark`` |
+-----------------------------+------------------------------------------------------------+
| Database support | ``sqlite sqlite3 libsqlite3-dev`` |
+-----------------------------+------------------------------------------------------------+
| NetAnim animator | ``qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools`` |
+-----------------------------+------------------------------------------------------------+
| MPI-based distributed | |
| simulation | ``openmpi-bin openmpi-common openmpi-doc libopenmpi-dev`` |
+-----------------------------+------------------------------------------------------------+
| Building Doxygen | ``doxygen graphviz imagemagick`` |
+-----------------------------+------------------------------------------------------------+
| Sphinx documentation | ``python3-sphinx dia imagemagick texlive dvipng latexmk`` |
| | ``texlive-extra-utils texlive-latex-extra`` |
| | ``texlive-font-utils`` |
+-----------------------------+------------------------------------------------------------+
| Eigen3 | ``libeigen3-dev`` |
+-----------------------------+------------------------------------------------------------+
| GNU Scientific Library | ``gsl-bin libgsl-dev libgslcblas0`` |
+-----------------------------+------------------------------------------------------------+
| XML config store | ``libxml2 libxml2-dev`` |
+-----------------------------+------------------------------------------------------------+
| GTK-based config store | ``libgtk-3-dev`` |
+-----------------------------+------------------------------------------------------------+
| Emulation with virtual | |
| machines and tap bridge | ``lxc-utils lxc-templates iproute2 iptables`` |
+-----------------------------+------------------------------------------------------------+
| Support for openflow | ``libxml2 libxml2-dev libboost-all-dev`` |
+-----------------------------+------------------------------------------------------------+
+-----------------------------+------------------------------------------------------------+
| **Feature** | **apt Packages** |
+=============================+============================================================+
| Reading pcap traces | ``tcpdump wireshark`` |
+-----------------------------+------------------------------------------------------------+
| Database support | ``sqlite sqlite3 libsqlite3-dev`` |
+-----------------------------+------------------------------------------------------------+
| NetAnim animator | ``qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools`` |
+-----------------------------+------------------------------------------------------------+
| MPI-based distributed | |
| simulation | ``openmpi-bin openmpi-common openmpi-doc libopenmpi-dev`` |
+-----------------------------+------------------------------------------------------------+
| Building Doxygen | ``doxygen graphviz imagemagick`` |
+-----------------------------+------------------------------------------------------------+
| Sphinx documentation | ``python3-sphinx dia imagemagick texlive dvipng latexmk`` |
| | ``texlive-extra-utils texlive-latex-extra`` |
| | ``texlive-font-utils`` |
+-----------------------------+------------------------------------------------------------+
| Eigen3 | ``libeigen3-dev`` |
+-----------------------------+------------------------------------------------------------+
| GNU Scientific Library | ``gsl-bin libgsl-dev libgslcblas0`` |
+-----------------------------+------------------------------------------------------------+
| XML config store | ``libxml2 libxml2-dev`` |
+-----------------------------+------------------------------------------------------------+
| GTK-based config store | ``libgtk-3-dev`` |
+-----------------------------+------------------------------------------------------------+
| Emulation with virtual | |
| machines and tap bridge | ``lxc-utils lxc-templates iproute2 iptables`` |
+-----------------------------+------------------------------------------------------------+
| Support for openflow | ``libxml2 libxml2-dev libboost-all-dev`` |
+-----------------------------+------------------------------------------------------------+
.. note::
For Ubuntu 20.10 and earlier, the single 'qt5-default' package suffices for NetAnim (``apt install qt5-default``)

View File

@@ -52,13 +52,13 @@ to install ``g++``.
The following table provides package names for installing CMake and Ninja build system from Homebrew or MacPorts.
+--------------------+-------------------------------+-------------------------------------+
| **ns-3 Version** | **Homebrew packages** | **MacPorts packages** |
+====================+===============================+=====================================+
| 3.36 and later | ``cmake ninja`` | ``cmake ninja`` |
+--------------------+-------------------------------+-------------------------------------+
| 3.35 and earlier | None | None |
+--------------------+-------------------------------+-------------------------------------+
+--------------------+-------------------------------+-------------------------------------+
| **ns-3 Version** | **Homebrew packages** | **MacPorts packages** |
+====================+===============================+=====================================+
| 3.36 and later | ``cmake ninja`` | ``cmake ninja`` |
+--------------------+-------------------------------+-------------------------------------+
| 3.35 and earlier | None | None |
+--------------------+-------------------------------+-------------------------------------+
You will know you are done when you can successfully type `clang++ -v` at the command line, and when you type `cmake --help` and it identifies that you have at least one installed generator (in the below example, Unix Makefiles):
@@ -75,15 +75,15 @@ You will know you are done when you can successfully type `clang++ -v` at the co
Recommended
***********
+-----------------------------+----------------------------+-----------------------------------+
| **Feature** | **Homebrew packages** | **MacPorts packages** |
+=============================+============================+===================================+
| Compiler cache optimization | ``ccache`` | ``ccache`` |
+-----------------------------+----------------------------+-----------------------------------+
| Code linting | clang-format included with | clang-format included with |
| | ``llvm``, need to select | ``clang``, need to select |
| | ``llvm@XX`` version | ``clang-XX llvm-XX`` versions |
+-----------------------------+----------------------------+-----------------------------------+
+-----------------------------+----------------------------+-----------------------------------+
| **Feature** | **Homebrew packages** | **MacPorts packages** |
+=============================+============================+===================================+
| Compiler cache optimization | ``ccache`` | ``ccache`` |
+-----------------------------+----------------------------+-----------------------------------+
| Code linting | clang-format included with | clang-format included with |
| | ``llvm``, need to select | ``clang``, need to select |
| | ``llvm@XX`` version | ``clang-XX llvm-XX`` versions |
+-----------------------------+----------------------------+-----------------------------------+
.. note::
@@ -120,42 +120,42 @@ Please see below subsections for Python-related package requirements.
For MacPorts packages we show the most recent package version available as of early 2023.
+-----------------------------+----------------------------------+--------------------------+
| **Feature** | **Homebrew packages** | **MacPort packages** |
+=============================+==================================+==========================+
| Reading pcap traces | ``wireshark`` | ``wireshark4`` |
+-----------------------------+----------------------------------+--------------------------+
| Database support | ``sqlite`` | ``sqlite3`` |
+-----------------------------+----------------------------------+--------------------------+
| NetAnim animator | ``qt@5`` | ``qt513`` |
+-----------------------------+----------------------------------+--------------------------+
| MPI-based distributed | | ``openmpi`` |
| simulation | ``open-mpi`` | |
+-----------------------------+----------------------------------+--------------------------+
| Building Doxygen | ``doxygen graphviz imagemagick`` | ``doxygen graphviz`` |
| | | ``ImageMagick`` |
+-----------------------------+----------------------------------+--------------------------+
| Sphinx documentation | ``sphinx-doc texlive`` | ``dia texlive`` |
| | | ``texlive-fonts-extra`` |
| | | ``texlive-latex-extra`` |
| | | ``py3XX-sphinx``, with |
| | | `XX`` the Python minor |
| | | version such as `12` |
+-----------------------------+----------------------------------+--------------------------+
| Eigen3 | ``eigen`` | ``eigen3`` |
+-----------------------------+----------------------------------+--------------------------+
| GNU Scientific Library | ``gsl`` | ``gsl`` |
+-----------------------------+----------------------------------+--------------------------+
| XML config store | ``libxml2`` | ``libxml2`` |
+-----------------------------+----------------------------------+--------------------------+
| GTK-based config store | ``gtk+3`` | ``gtk3`` or ``gtk4`` |
+-----------------------------+----------------------------------+--------------------------+
| Emulation with virtual | | |
| machines | Not available for macOS | Not available for macOS |
+-----------------------------+----------------------------------+--------------------------+
| Support for openflow, | ``boost`` | ``boost`` |
| CircularApertureAntennaModel| | |
+-----------------------------+----------------------------------+--------------------------+
+-----------------------------+----------------------------------+--------------------------+
| **Feature** | **Homebrew packages** | **MacPort packages** |
+=============================+==================================+==========================+
| Reading pcap traces | ``wireshark`` | ``wireshark4`` |
+-----------------------------+----------------------------------+--------------------------+
| Database support | ``sqlite`` | ``sqlite3`` |
+-----------------------------+----------------------------------+--------------------------+
| NetAnim animator | ``qt@5`` | ``qt513`` |
+-----------------------------+----------------------------------+--------------------------+
| MPI-based distributed | | ``openmpi`` |
| simulation | ``open-mpi`` | |
+-----------------------------+----------------------------------+--------------------------+
| Building Doxygen | ``doxygen graphviz imagemagick`` | ``doxygen graphviz`` |
| | | ``ImageMagick`` |
+-----------------------------+----------------------------------+--------------------------+
| Sphinx documentation | ``sphinx-doc texlive`` | ``dia texlive`` |
| | | ``texlive-fonts-extra`` |
| | | ``texlive-latex-extra`` |
| | | ``py3XX-sphinx``, with |
| | | `XX`` the Python minor |
| | | version such as `12` |
+-----------------------------+----------------------------------+--------------------------+
| Eigen3 | ``eigen`` | ``eigen3`` |
+-----------------------------+----------------------------------+--------------------------+
| GNU Scientific Library | ``gsl`` | ``gsl`` |
+-----------------------------+----------------------------------+--------------------------+
| XML config store | ``libxml2`` | ``libxml2`` |
+-----------------------------+----------------------------------+--------------------------+
| GTK-based config store | ``gtk+3`` | ``gtk3`` or ``gtk4`` |
+-----------------------------+----------------------------------+--------------------------+
| Emulation with virtual | | |
| machines | Not available for macOS | Not available for macOS |
+-----------------------------+----------------------------------+--------------------------+
| Support for openflow, | ``boost`` | ``boost`` |
| CircularApertureAntennaModel| | |
+-----------------------------+----------------------------------+--------------------------+
Caveats and troubleshooting
***************************

View File

@@ -34,25 +34,25 @@ Prerequisites
Make sure that your system has these prerequisites. Download can be via either ``git`` or via
source archive download (via a web browser, ``wget``, or ``curl``).
+--------------------+--------------------------------------+------------------------------+
| **Purpose** | **Tool** | **Minimum Version** |
+====================+==================+===================+==============================+
| **Download** | ``git`` (for Git download) | No minimum version |
+ + + +
| | or ``tar`` and ``bunzip2`` | No minimum version |
| | (for Web download) | |
+--------------------+--------------------------------------+------------------------------+
| **Compiler** | ``g++`` | >= 10 |
+ + + +
| | or ``clang++`` | >= 11 |
+--------------------+--------------------------------------+------------------------------+
| **Configuration** | ``python3`` | >= 3.8 |
+--------------------+--------------------------------------+------------------------------+
| **Build system** | ``cmake``, | >= 3.13 |
+ + + +
| | and at least one of: | No minimum version |
| | ``make``, ``ninja``, or ``Xcode`` | |
+--------------------+--------------------------------------+------------------------------+
+--------------------+--------------------------------------+------------------------------+
| **Purpose** | **Tool** | **Minimum Version** |
+====================+==================+===================+==============================+
| **Download** | ``git`` (for Git download) | No minimum version |
+ + + +
| | or ``tar`` and ``bunzip2`` | No minimum version |
| | (for Web download) | |
+--------------------+--------------------------------------+------------------------------+
| **Compiler** | ``g++`` | >= 10 |
+ + + +
| | or ``clang++`` | >= 11 |
+--------------------+--------------------------------------+------------------------------+
| **Configuration** | ``python3`` | >= 3.8 |
+--------------------+--------------------------------------+------------------------------+
| **Build system** | ``cmake``, | >= 3.13 |
+ + + +
| | and at least one of: | No minimum version |
| | ``make``, ``ninja``, or ``Xcode`` | |
+--------------------+--------------------------------------+------------------------------+
.. note::
@@ -63,17 +63,17 @@ source archive download (via a web browser, ``wget``, or ``curl``).
From the command line, you can check the version of each of the above tools with version
requirements as follows:
+--------------------------------------+------------------------------------+
| **Tool** | **Version check command** |
+======================================+====================================+
| ``g++`` | ``$ g++ --version`` |
+--------------------------------------+------------------------------------+
| ``clang++`` | ``$ clang++ --version`` |
+--------------------------------------+------------------------------------+
| ``python3`` | ``$ python3 -V`` |
+--------------------------------------+------------------------------------+
| ``cmake`` | ``$ cmake --version`` |
+--------------------------------------+------------------------------------+
+--------------------------------------+------------------------------------+
| **Tool** | **Version check command** |
+======================================+====================================+
| ``g++`` | ``$ g++ --version`` |
+--------------------------------------+------------------------------------+
| ``clang++`` | ``$ clang++ --version`` |
+--------------------------------------+------------------------------------+
| ``python3`` | ``$ python3 -V`` |
+--------------------------------------+------------------------------------+
| ``cmake`` | ``$ cmake --version`` |
+--------------------------------------+------------------------------------+
Download
********

View File

@@ -19,7 +19,10 @@ The list of requirements depends on which version of ns-3 you are trying to buil
extensions you need.
.. note::
**"Do I need to install all of these packages?"** Some users want to install everything so
**"Do I need to install all of these packages?"**
Some users want to install everything so
that their configuration output shows that every feature is enabled. However, there is
no real need to install prerequisites related to features you are not yet using; you can always
come back later and install more prerequisites as needed. The build system should warn
@@ -29,7 +32,10 @@ In the following, we have classified the prerequisites as either being required,
for all users, or optional depending on use cases.
.. note::
**"Is there a maintained list of all prerequisites?"** We use GitLab.com's continuous
**"Is there a maintained list of all prerequisites?"**
We use GitLab.com's continuous
integration system for testing; the configuration YAML files for these jobs can be found
in the directory ``utils/tests/``. So, for instance, if you want to look at what packages
the CI is installing for Alpine Linux, look at ``utils/tests/gitlab-ci-alpine.yml``. The
@@ -75,7 +81,7 @@ Recommended
The following are recommended for most users of |ns3|.
compiler cache optimization (for ns-3.37 and later)
Compiler cache optimization (for ns-3.37 and later)
===================================================
`Ccache <https://ccache.dev>`_ is a compiler cache optimization that will speed up builds across
@@ -93,6 +99,7 @@ Users can invoke these tools directly from the command-line or through the
Moreover, clang-tidy is integrated with CMake, enabling code scanning during the build phase.
.. note::
clang-format-14 through clang-format-16 version is required.
clang-format is strongly recommended to write code that follows the ns-3 code conventions, but
@@ -118,6 +125,7 @@ Optional
The remaining prerequisites listed below are only needed for optional ns-3 components.
.. note::
As of ns-3.30 release (August 2019), ns-3 uses Python 3 by default, but earlier
releases depend on Python 2 packages, and at least a Python 2 interpreter is recommended.
If installing the below prerequisites for an earlier release, one may in general substitute
@@ -189,6 +197,7 @@ reStructuredText for Sphinx, and figures are typically in dia. To build PDF ver
Eigen3 support
==============
`Eigen3 <https://gitlab.com/libeigen/eigen>`_ is used to support more efficient calculations
when using the `3GPP propagation loss models <https://www.nsnam.org/docs//models/html/propagation.html#threegpppropagationlossmodel>`_
in LTE and NR simulations.

View File

@@ -18,6 +18,7 @@ via the Msys2/MinGW64 toolchain. Both options are listed below; users may choos
either WSL or the Msys2/MinGW64 toolchain (installing both is not required).
.. note::
|ns3| is not fully compatible with Visual Studio IDE / MSVC compiler; only Visual Studio Code
editor, the Msys2/MinGW64 toolchain, and WSL, as explained below.

View File

@@ -349,37 +349,37 @@ Supported Trace Types
The following traced values are supported with Probes as of this writing:
+------------------+-------------------+------------------------------------+
| TracedValue type | Probe type | File |
+==================+=========+=========+====================================+
| double | DoubleProbe | stats/model/double-probe.h |
+------------------+-------------------+------------------------------------+
| uint8_t | Uinteger8Probe | stats/model/uinteger-8-probe.h |
+------------------+-------------------+------------------------------------+
| uint16_t | Uinteger16Probe | stats/model/uinteger-16-probe.h |
+------------------+-------------------+------------------------------------+
| uint32_t | Uinteger32Probe | stats/model/uinteger-32-probe.h |
+------------------+-------------------+------------------------------------+
| bool | BooleanProbe | stats/model/uinteger-16-probe.h |
+------------------+-------------------+------------------------------------+
| ns3::Time | TimeProbe | stats/model/time-probe.h |
+------------------+-------------------+------------------------------------+
+------------------+-------------------+------------------------------------+
| TracedValue type | Probe type | File |
+==================+=========+=========+====================================+
| double | DoubleProbe | stats/model/double-probe.h |
+------------------+-------------------+------------------------------------+
| uint8_t | Uinteger8Probe | stats/model/uinteger-8-probe.h |
+------------------+-------------------+------------------------------------+
| uint16_t | Uinteger16Probe | stats/model/uinteger-16-probe.h |
+------------------+-------------------+------------------------------------+
| uint32_t | Uinteger32Probe | stats/model/uinteger-32-probe.h |
+------------------+-------------------+------------------------------------+
| bool | BooleanProbe | stats/model/uinteger-16-probe.h |
+------------------+-------------------+------------------------------------+
| ns3::Time | TimeProbe | stats/model/time-probe.h |
+------------------+-------------------+------------------------------------+
The following TraceSource types are supported by Probes as of this writing:
+------------------------------------------+------------------------+---------------+----------------------------------------------------+
| TracedSource type | Probe type | Probe outputs | File |
+==========================================+========================+===============+====================================================+
| Ptr<const Packet> | PacketProbe | OutputBytes | network/utils/packet-probe.h |
+------------------------------------------+------------------------+---------------+----------------------------------------------------+
| Ptr<const Packet>, Ptr<Ipv4>, uint32_t | Ipv4PacketProbe | OutputBytes | internet/model/ipv4-packet-probe.h |
+------------------------------------------+------------------------+---------------+----------------------------------------------------+
| Ptr<const Packet>, Ptr<Ipv6>, uint32_t | Ipv6PacketProbe | OutputBytes | internet/model/ipv6-packet-probe.h |
+------------------------------------------+------------------------+---------------+----------------------------------------------------+
| Ptr<const Packet>, Ptr<Ipv6>, uint32_t | Ipv6PacketProbe | OutputBytes | internet/model/ipv6-packet-probe.h |
+------------------------------------------+------------------------+---------------+----------------------------------------------------+
| Ptr<const Packet>, const Address& | ApplicationPacketProbe | OutputBytes | applications/model/application-packet-probe.h |
+------------------------------------------+------------------------+---------------+----------------------------------------------------+
+------------------------------------------+------------------------+---------------+----------------------------------------------------+
| TracedSource type | Probe type | Probe outputs | File |
+==========================================+========================+===============+====================================================+
| Ptr<const Packet> | PacketProbe | OutputBytes | network/utils/packet-probe.h |
+------------------------------------------+------------------------+---------------+----------------------------------------------------+
| Ptr<const Packet>, Ptr<Ipv4>, uint32_t | Ipv4PacketProbe | OutputBytes | internet/model/ipv4-packet-probe.h |
+------------------------------------------+------------------------+---------------+----------------------------------------------------+
| Ptr<const Packet>, Ptr<Ipv6>, uint32_t | Ipv6PacketProbe | OutputBytes | internet/model/ipv6-packet-probe.h |
+------------------------------------------+------------------------+---------------+----------------------------------------------------+
| Ptr<const Packet>, Ptr<Ipv6>, uint32_t | Ipv6PacketProbe | OutputBytes | internet/model/ipv6-packet-probe.h |
+------------------------------------------+------------------------+---------------+----------------------------------------------------+
| Ptr<const Packet>, const Address& | ApplicationPacketProbe | OutputBytes | applications/model/application-packet-probe.h |
+------------------------------------------+------------------------+---------------+----------------------------------------------------+
As can be seen, only a few trace sources are supported, and they are all
oriented towards outputting the Packet size (in bytes). However,

View File

@@ -452,7 +452,7 @@ Let's ignore the bit about context for now.
Finally, the line assigning a value to ``m_myInt``::
myObject->m_myInt = 1234;
myObject->m_myInt = 1234;
should be interpreted as an invocation of ``operator=`` on the member
variable ``m_myInt`` with the integer ``1234`` passed as a parameter.
@@ -712,12 +712,12 @@ you select the "API Documentation" link, you will be taken to the
In the sidebar you should see a hierarchy that begins
* ns-3
* ns-3
* ns-3 Documentation
* All TraceSources
* All Attributes
* All GlobalValues
* ns-3 Documentation
* All TraceSources
* All Attributes
* All GlobalValues
The list of interest to us here is "All TraceSources". Go ahead and
select that link. You will see, perhaps not too surprisingly, a list
@@ -1168,23 +1168,23 @@ itself around, rather than passing the address of the object. We
extend that requirement to include the full set of assignment-style
operators that are pre-defined for plain-old-data (POD) types:
+---------------------+---------------------+
| ``operator=`` (assignment) |
+---------------------+---------------------+
| ``operator*=`` | ``operator/=`` |
+---------------------+---------------------+
| ``operator+=`` | ``operator-=`` |
+---------------------+---------------------+
| ``operator++`` (both prefix and postfix) |
+---------------------+---------------------+
| ``operator--`` (both prefix and postfix) |
+---------------------+---------------------+
| ``operator<<=`` | ``operator>>=`` |
+---------------------+---------------------+
| ``operator&=`` | ``operator|=`` |
+---------------------+---------------------+
| ``operator%=`` | ``operator^=`` |
+---------------------+---------------------+
+---------------------+---------------------+
| ``operator=`` (assignment) |
+---------------------+---------------------+
| ``operator*=`` | ``operator/=`` |
+---------------------+---------------------+
| ``operator+=`` | ``operator-=`` |
+---------------------+---------------------+
| ``operator++`` (both prefix and postfix) |
+---------------------+---------------------+
| ``operator--`` (both prefix and postfix) |
+---------------------+---------------------+
| ``operator<<=`` | ``operator>>=`` |
+---------------------+---------------------+
| ``operator&=`` | ``operator|=`` |
+---------------------+---------------------+
| ``operator%=`` | ``operator^=`` |
+---------------------+---------------------+
What this all really means is that you will be able to trace all
changes made using those operators to a C++ object which has value
@@ -2424,13 +2424,13 @@ behaving identically, but we do strive to make them all work as
similarly as possible; and whenever possible there are analogs for all
methods in all classes.
+-----------------+---------+---------+
| | PCAP | ASCII |
+=================+=========+=========+
| Device Helper | |check| | |check| |
+-----------------+---------+---------+
| Protocol Helper | |check| | |check| |
+-----------------+---------+---------+
+-----------------+---------+---------+
| | PCAP | ASCII |
+=================+=========+=========+
| Device Helper | |check| | |check| |
+-----------------+---------+---------+
| Protocol Helper | |check| | |check| |
+-----------------+---------+---------+
We use an approach called a ``mixin`` to add tracing functionality to
our helper classes. A ``mixin`` is a class that provides