OpenThreads
Condition
Go to the documentation of this file.
1/* -*-c++-*- OpenThreads library, Copyright (C) 2002 - 2007 The Open Thread Group
2 *
3 * This library is open source and may be redistributed and/or modified under
4 * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
5 * (at your option) any later version. The full license is in LICENSE file
6 * included with this distribution, and on the openscenegraph.org website.
7 *
8 * This library 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 * OpenSceneGraph Public License for more details.
12*/
13
14
15//
16// Condition - C++ condition class
17// ~~~~~~~~~
18//
19
20#ifndef _OPENTHREADS_CONDITION_
21#define _OPENTHREADS_CONDITION_
22
23#include <OpenThreads/Exports>
24#include <OpenThreads/Mutex>
25
26namespace OpenThreads {
27
28/**
29 * @class Condition
30 * @brief This class provides an object-oriented thread condition interface.
31 */
32class OPENTHREAD_EXPORT_DIRECTIVE Condition {
33
34public:
35
36 /**
37 * Constructor
38 */
39 Condition();
40
41 /**
42 * Destructor
43 */
44 virtual ~Condition();
45
46 /**
47 * Wait on a mutex.
48 */
49 virtual int wait(Mutex *mutex);
50
51 /**
52 * Wait on a mutex for a given amount of time (ms)
53 *
54 * @return 0 if normal, -1 if errno set, errno code otherwise.
55 */
56 virtual int wait(Mutex *mutex, unsigned long int ms);
57
58 /**
59 * Signal a SINGLE thread to wake if it's waiting.
60 *
61 * @return 0 if normal, -1 if errno set, errno code otherwise.
62 */
63 virtual int signal();
64
65 /**
66 * Wake all threads waiting on this condition.
67 *
68 * @return 0 if normal, -1 if errno set, errno code otherwise.
69 */
70 virtual int broadcast();
71
72private:
73
74 /**
75 * Private copy constructor, to prevent tampering.
76 */
77 Condition(const Condition &/*c*/) {};
78
79 /**
80 * Private copy assignment, to prevent tampering.
81 */
82 Condition &operator=(const Condition &/*c*/) {return *(this);};
83
84 /**
85 * Implementation-specific data
86 */
87 void *_prvData;
88
89};
90
91}
92
93#endif // !_OPENTHREADS_CONDITION_

osg logo
Generated at Mon Jan 22 2024 00:00:00 for the OpenThreads by doxygen 1.10.0.