A Discrete-Event Network Simulator
API
Core

The "core" module contains: More...

+ Collaboration diagram for Core:

Modules

 Attributes
 The ns-3 attribute system is the mechanism used in ns-3 to organize, document, and modify the values used by the various component models.
 
 Build version reporting
 Version information is pulled from the local git repository during the build process.
 
 CSV File Reader
 A way to extract data from simple csv files.
 
 Callbacks
 Wrap functions, objects, and arguments into self contained callbacks.
 
 Command Line Parsing
 A uniform way to specify program documentation, allowed command line arguments and help strings, and set any attribute or global value, all from the command line directly.
 
 Configuration
 Configuration of simulation parameters and tracing.
 
 Core module examples
 Programs which illustrate use of core module functionality.
 
 Core module helper classes
 Helper classes for the Core module.
 
 Core module tests
 TestSuites for the Core module.
 
 Debugging tools
 Assertions, breakpoints, logging, and abnormal program termination.
 
 Fatal Error Handlers
 Functions to help clean up when a fatal error is encountered.
 
 Geometry primitives
 Primitives for geometry, such as vectors and angles.
 
 Hash Functions
 Generic Hash function interface.
 
 High Precision Q64.64
 Functions and class for high precision Q64.64 fixed point arithmetic.
 
 Length
 Management of lengths in real world units.
 
 Object
 Base classes which provide memory management and object aggregation.
 
 Random Variables
 ns-3 random numbers are provided via instances of ns3::RandomVariableStream.
 
 Scheduler and Events
 Manage the event list by creating and scheduling events.
 
 Simulator
 Control the virtual time and the execution of simulation events.
 
 Smart Pointer
 Heap memory management.
 
 System Services
 System-independent interfaces to operating system services: files system, threading, wall clock time.
 
 Testing
 Tools to define and execute unit tests.
 
 Tracing
 Publish/subscribe tools to collect and report changes to any values used by the various model components.
 
 Virtual Time
 Management of virtual time in real world units.
 
 Virtual Time Timer and Watchdog
 The Timer and Watchdog objects both facilitate scheduling functions to execute a specified virtual time in the future.
 

Files

file  core.h
 This file provides some doxygen documentation for the core module.
 
file  csv-reader.cc
 ns3::CsvReader implementation
 
file  csv-reader.h
 ns3::CsvReader declaration
 
file  deprecated.h
 NS_DEPRECATED macro definition.
 
file  global-value-test-suite.cc
 GlobalValue test suite.
 
file  global-value.cc
 ns3::GlobalValue implementation.
 
file  global-value.h
 ns3::GlobalValue declaration.
 
file  math.h
 log2() macro definition; to deal with Bug 1467.
 
file  show-progress.cc
 ns3::ShowProgress implementation.
 
file  show-progress.h
 ns3::ShowProgress declaration.
 
file  simulation-singleton.h
 ns3::SimulationSingleton declaration and template implementation.
 
file  unused.h
 NS_UNUSED and NS_UNUSED_GLOBAL macro definitions.
 

Classes

class  ns3::ShowProgress
 Periodically print a status message indicating simulator progress. More...
 
class  ns3::SimulationSingleton< T >
 This singleton class template ensures that the type for which we want a singleton has a lifetime bounded by the simulation run lifetime. More...
 

Macros

#define NS_DEPRECATED(msg)   [[deprecated (msg)]]
 Mark a function as deprecated. More...
 
#define NS_DEPRECATED_3_34   NS_DEPRECATED("")
 Tag for things deprecated in version ns-3.34. More...
 
#define NS_DEPRECATED_3_35   NS_DEPRECATED("")
 Tag for things deprecated in version ns-3.35. More...
 
#define NS_DEPRECATED_3_36(msg)   NS_DEPRECATED(msg)
 Tag for things deprecated in version ns-3.36. More...
 
#define NS_UNUSED(x)
 Mark a local variable as unused. More...
 
#define NS_UNUSED_GLOBAL(x)
 Mark a variable at file scope as unused. More...
 

Detailed Description

The "core" module contains:

Todo:
Move all Private and Impl classes to namespace ns3::impl?

Macro Definition Documentation

◆ NS_DEPRECATED

#define NS_DEPRECATED (   msg)    [[deprecated (msg)]]

Mark a function as deprecated.

Users should expect deprecated features to be removed eventually.

When deprecating a feature, please update the documentation with information for users on how to update their code.

For example,

/*
* Do something useful.
*
* \deprecated This method will go away in future versions of ns-3.
* See instead TheNewWay()
*/
NS_DEPRECATED_3_XX ("see TheNewWay")
/*
* Do something more useful.
*/
void TheNewWay ();
void TheNewWay()
void SomethingUseful()

Please follow these two guidelines to ease future maintenance (primarily the eventual removal of the deprecated code):

  1. Please use the versioned form NS_DEPRECATED_3_XX, not the generic NS_DEPRECATED.
  2. Typically only the declaration needs to be deprecated,
NS_DEPRECATED_3_XX ("see TheNewWay") void SomethingUseful ();

but it's helpful to put the same macro as a comment at the site of the definition, to make it easier to find all the bits which eventually have to be removed:

\/\* NS_DEPRECATED_3_XX ("see TheNewWay") *\\/
void SomethingUseful () { ... }

.

Parameters
msgOptional message to add to the compiler warning.

Definition at line 67 of file deprecated.h.

◆ NS_DEPRECATED_3_34

#define NS_DEPRECATED_3_34   NS_DEPRECATED("")

Tag for things deprecated in version ns-3.34.

Definition at line 88 of file deprecated.h.

◆ NS_DEPRECATED_3_35

#define NS_DEPRECATED_3_35   NS_DEPRECATED("")

Tag for things deprecated in version ns-3.35.

Definition at line 81 of file deprecated.h.

◆ NS_DEPRECATED_3_36

#define NS_DEPRECATED_3_36 (   msg)    NS_DEPRECATED(msg)

Tag for things deprecated in version ns-3.36.

Definition at line 74 of file deprecated.h.

◆ NS_UNUSED

#define NS_UNUSED (   x)
Value:
_Pragma ("GCC warning \"NS_UNUSED is deprecated, use [[maybe_unused]] directly\"") \
((void)(x))
list x
Random number samples.

Mark a local variable as unused.

Deprecated:
Please use [[maybe_unused]] directly. This macro is being kept temporarily to support older code.

Definition at line 51 of file unused.h.

◆ NS_UNUSED_GLOBAL

#define NS_UNUSED_GLOBAL (   x)
Value:
NS_DEPRECATED_3_36 ("NS_UNUSED_GLOBAL is deprecated, use [[maybe_unused]] directly") \
x
#define NS_DEPRECATED_3_36(msg)
Tag for things deprecated in version ns-3.36.
Definition: deprecated.h:74

Mark a variable at file scope as unused.

Deprecated:
Please use [[maybe_unused]] directly. This macro is being kept temporarily to support older code.

Definition at line 74 of file unused.h.