root/OpenSceneGraph/trunk/include/OpenThreads/Condition @ 13041

Revision 13041, 2.1 kB (checked in by robert, 3 years ago)

Ran script to remove trailing spaces and tabs

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
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_
Note: See TracBrowser for help on using the browser.