A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 
24 namespace ns3 {
25 
26 class SystemConditionPrivate;
27 
57 {
58 public:
59  SystemCondition ();
61 
66  void SetCondition (bool condition);
67 
71  bool GetCondition (void);
72 
78  void Signal (void);
79 
85  void Broadcast (void);
86 
90  void Wait (void);
91 
97  bool TimedWait (uint64_t ns);
98 
99 
100 private:
102 };
103 
104 } // namespace ns3
105 
106 #endif /* SYSTEM_CONDITION_H */
107 
108 
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.
bool TimedWait(uint64_t ns)
Wait a maximum of ns nanoseconds for the condition to be true.
SystemConditionPrivate * m_priv