A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
core.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2017 Peter D. Barnes, Jr.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation;
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 *
17 * Authors:
18 * Tom Henderson <tomh@tomh.org>
19 * Mitch Watrous <watrous@u.washington.edu>
20 * Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
21 * Peter D. Barnes, Jr. <pdbarnes\llnl.gov>
22 */
23
24/**
25 * \file
26 * \ingroup core
27 * This file provides some doxygen documentation for the core module.
28 */
29
30/**
31 * \defgroup core Core
32 * \brief The "core" module contains:
33 * - a time management class to hold a time and convert between various
34 * time units: ns3::Time
35 * - a scheduler base class used to implement new simulation event
36 * schedulers:
37 * ns3::Scheduler and ns3::SchedulerFactory
38 * - a simulator class used to create, schedule and cancel events:
39 * ns3::Simulator
40 * - a Functor class: ns3::Callback
41 * - an os-independent interface to get access to the elapsed wall clock
42 * time: ns3::SystemWallClockMs
43 * - a class to register regression tests with the test manager: ns3::Test
44 * and ns3::TestManager
45 * - debugging facilities: \ref debugging
46 * - \ref randomvariable
47 * - a base class for objects which need to support per-instance
48 * "attributes" and trace sources: ns3::ObjectBase
49 * - a base class for objects which need to support reference counting
50 * and dynamic object aggregation: ns3::Object
51 * - a smart-pointer class ns3::Ptr designed to work together with
52 * ns3::Object
53 * - a configuration class used to set and control all attributes and
54 * trace sources in a simulation: ns3::Config.
55 *
56 * \todo Move all Private and Impl classes to namespace ns3::impl?
57 */
58
59/**
60 * \ingroup core
61 * \defgroup debugging Debugging tools
62 *
63 * Assertions, breakpoints, logging, and abnormal program termination
64 */
65
66/**
67 * \ingroup core
68 * \defgroup core-examples Core module examples
69 * Programs which illustrate use of core module functionality.
70 */
71
72/**
73 * \ingroup core
74 * \defgroup core-helpers Core module helper classes
75 * Helper classes for the Core module
76 */
77
78/**
79 * \ingroup tests
80 * \ingroup core
81 * \defgroup core-tests Core module tests
82 * TestSuites for the Core module
83 */
84
85/**
86 * \ingroup core
87 * \defgroup system System Services
88 *
89 * System-independent interfaces to operating system services:
90 * environment variables, files system, threading, wall clock time.
91 *
92 * Services provided:
93 *
94 * - Environment variables
95 * - File and directory paths.
96 * - Thread primitives: threads, conditional waits, mutex, critical sections.
97 * - Asynchronous input from a file descriptor.
98 * - Wall clock time.
99 */