A Discrete-Event Network Simulator
API
system-condition.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2008 University of Washington
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  */
18 
19 #ifndef SYSTEM_CONDITION_H
20 #define SYSTEM_CONDITION_H
21 
22 #include "ptr.h"
23 
30 namespace ns3 {
31 
39 class SystemConditionPrivate;
40 
71 {
72 public:
73  SystemCondition ();
75 
80  void SetCondition (bool condition);
81 
86  bool GetCondition (void);
87 
93  void Signal (void);
94 
100  void Broadcast (void);
101 
105  void Wait (void);
106 
113  bool TimedWait (uint64_t ns);
114 
115 
116 private:
119 };
120 
121 } // namespace ns3
122 
123 #endif /* SYSTEM_CONDITION_H */
124 
125 
ns3::Ptr smart pointer declaration and implementation.
A class which provides a relatively platform-independent conditional-wait thread synchronization prim...
void Signal(void)
Release one thread if waiting for the condition to be true.
void Broadcast(void)
Release all threads waiting for the condition to be true.
void Wait(void)
Wait, possibly forever, for the condition to be true.
void SetCondition(bool condition)
Set the value of the underlying condition.
bool GetCondition(void)
Get the value of the underlying condition.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
bool TimedWait(uint64_t ns)
Wait a maximum of ns nanoseconds for the condition to be true.
Implementation of SystemCondition for Unix-like systems.
SystemConditionPrivate * m_priv
The (system-dependent) implementation.