LibreOffice
LibreOffice 6.0 SDK C/C++ API Reference
salhelper
condition.hxx
Go to the documentation of this file.
1
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
/*
3
* This file is part of the LibreOffice project.
4
*
5
* This Source Code Form is subject to the terms of the Mozilla Public
6
* License, v. 2.0. If a copy of the MPL was not distributed with this
7
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
8
*
9
* This file incorporates work covered by the following license notice:
10
*
11
* Licensed to the Apache Software Foundation (ASF) under one or more
12
* contributor license agreements. See the NOTICE file distributed
13
* with this work for additional information regarding copyright
14
* ownership. The ASF licenses this file to you under the Apache
15
* License, Version 2.0 (the "License"); you may not use this file
16
* except in compliance with the License. You may obtain a copy of
17
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
18
*/
19
20
21
#ifndef INCLUDED_SALHELPER_CONDITION_HXX
22
#define INCLUDED_SALHELPER_CONDITION_HXX
23
24
25
#include "
osl/conditn.hxx
"
26
#include "
osl/mutex.hxx
"
27
#include "
salhelper/salhelperdllapi.h
"
28
29
namespace
salhelper
30
{
31
class
ConditionModifier
;
32
class
ConditionWaiter
;
33
34
35
class
SALHELPER_DLLPUBLIC
Condition
36
{
37
friend
class
ConditionModifier
;
38
friend
class
ConditionWaiter
;
39
40
public
:
41
42
Condition
(
osl::Mutex
& aMutex);
43
44
virtual
~
Condition
();
45
46
47
protected
:
48
49
virtual
bool
applies()
const
= 0;
50
51
52
private
:
53
Condition
(
Condition
&)
SAL_DELETED_FUNCTION
;
54
void
operator =(
Condition
&)
SAL_DELETED_FUNCTION
;
55
56
osl::Mutex
& m_aMutex;
57
osl::Condition
m_aCondition;
58
};
59
60
61
class
SALHELPER_DLLPUBLIC
ConditionModifier
62
{
63
public
:
64
65
ConditionModifier
(
Condition
& aCond);
66
67
~
ConditionModifier
();
68
69
70
private
:
71
ConditionModifier
(
ConditionModifier
&)
SAL_DELETED_FUNCTION
;
72
void
operator =(
ConditionModifier
&)
SAL_DELETED_FUNCTION
;
73
74
Condition
& m_aCond;
75
};
76
77
78
class
SALHELPER_DLLPUBLIC
ConditionWaiter
79
{
80
public
:
81
82
ConditionWaiter
(
Condition
& aCond);
83
84
struct
SALHELPER_DLLPUBLIC
timedout
{
85
timedout
();
86
87
timedout
(
timedout
const
&);
88
89
virtual
~
timedout
();
90
91
timedout
& operator =(
timedout
const
&);
92
};
93
95
ConditionWaiter
(
Condition
& aCond,sal_uInt32 milliSec);
96
97
98
~
ConditionWaiter
();
99
100
101
private
:
102
ConditionWaiter
(
ConditionWaiter
&)
SAL_DELETED_FUNCTION
;
103
void
operator =(
ConditionWaiter
&)
SAL_DELETED_FUNCTION
;
104
105
Condition
& m_aCond;
106
};
107
108
109
}
// namespace salhelper
110
111
112
#endif
113
114
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
mutex.hxx
SALHELPER_DLLPUBLIC
#define SALHELPER_DLLPUBLIC
Definition:
salhelperdllapi.h:28
salhelper::ConditionModifier
Definition:
condition.hxx:61
salhelper
Definition:
condition.hxx:29
salhelper::ConditionWaiter::timedout
Definition:
condition.hxx:84
salhelper::Condition
Definition:
condition.hxx:35
osl::Condition
Condition variable.
Definition:
conditn.hxx:55
conditn.hxx
osl::Mutex
A mutual exclusion synchronization object.
Definition:
mutex.hxx:30
salhelper::ConditionWaiter
Definition:
condition.hxx:78
salhelperdllapi.h
SAL_DELETED_FUNCTION
#define SAL_DELETED_FUNCTION
short-circuit extra-verbose API namespaces
Definition:
types.h:402
Generated by
1.8.17