Lunchbox
1.8.0
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
install
include
lunchbox
timedLock.h
1
2
/* Copyright (c) 2005-2012, Stefan Eilemann <eile@equalizergraphics.com>
3
*
4
* This library is free software; you can redistribute it and/or modify it under
5
* the terms of the GNU Lesser General Public License version 2.1 as published
6
* by the Free Software Foundation.
7
*
8
* This library is distributed in the hope that it will be useful, but WITHOUT
9
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
10
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
11
* details.
12
*
13
* You should have received a copy of the GNU Lesser General Public License
14
* along with this library; if not, write to the Free Software Foundation, Inc.,
15
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16
*/
17
18
#ifndef LUNCHBOX_TIMEDLOCK_H
19
#define LUNCHBOX_TIMEDLOCK_H
20
21
#include <
lunchbox/api.h
>
22
#include <lunchbox/nonCopyable.h>
// base class
23
#include <
lunchbox/types.h
>
24
25
namespace
lunchbox
26
{
27
namespace
detail {
class
TimedLock; }
28
30
class
TimedLock
:
public
NonCopyable
31
{
32
public
:
34
LUNCHBOX_API
TimedLock
();
35
37
LUNCHBOX_API
~TimedLock
();
38
47
LUNCHBOX_API
bool
set
(
const
uint32_t timeout = LB_TIMEOUT_INDEFINITE );
48
50
LUNCHBOX_API
void
unset
();
51
58
LUNCHBOX_API
bool
trySet
();
59
66
LUNCHBOX_API
bool
isSet
();
67
68
private
:
69
detail::TimedLock*
const
_impl;
70
};
71
}
72
#endif //LUNCHBOX_TIMEDLOCK_H
Generated on Thu Jun 27 2013 13:28:50 for Lunchbox by
1.8.1.2