LibreOffice: salhelper/condition.hxx Source File

LibreOffice LibreOffice 7.1 SDK C/C++ API Reference

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 "salhelper/salhelperdllapi.h"
27
28namespace osl { class Mutex; }
29
30 namespace salhelper
31{
32
33 class SALHELPER_DLLPUBLIC Condition
34 {
35 friend class ConditionModifier;
36 friend class ConditionWaiter;
37
38 public:
39
40 Condition(osl::Mutex& aMutex);
41
42 virtual ~Condition();
43
44
45 protected:
46
47 virtual bool applies() const = 0;
48
49
50 private:
51 Condition(Condition &) SAL_DELETED_FUNCTION;
52 void operator =(Condition &) SAL_DELETED_FUNCTION;
53
54 osl::Mutex& m_aMutex;
55 osl::Condition m_aCondition;
56 };
57
58
59 class SALHELPER_DLLPUBLIC ConditionModifier
60 {
61 public:
62
63 ConditionModifier(Condition& aCond);
64
65 ~ConditionModifier();
66
67
68 private:
69 ConditionModifier(ConditionModifier &) SAL_DELETED_FUNCTION;
70 void operator =(ConditionModifier &) SAL_DELETED_FUNCTION;
71
72 Condition& m_aCond;
73 };
74
75
76 class SALHELPER_DLLPUBLIC ConditionWaiter
77 {
78 public:
79
80 ConditionWaiter(Condition& aCond);
81
82 struct SALHELPER_DLLPUBLIC timedout {
83 timedout();
84
85 timedout(timedout const &);
86
87 virtual ~timedout();
88
89 timedout & operator =(timedout const &);
90 };
91
93 ConditionWaiter(Condition& aCond,sal_uInt32 milliSec);
94
95
96 ~ConditionWaiter();
97
98
99 private:
100 ConditionWaiter(ConditionWaiter &) SAL_DELETED_FUNCTION;
101 void operator =(ConditionWaiter &) SAL_DELETED_FUNCTION;
102
103 Condition& m_aCond;
104 };
105
106
107} // namespace salhelper
108
109
110#endif
111
112/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
SAL_DELETED_FUNCTION
#define SAL_DELETED_FUNCTION
short-circuit extra-verbose API namespaces
Definition: types.h:374
salhelperdllapi.h
SALHELPER_DLLPUBLIC
#define SALHELPER_DLLPUBLIC
Definition: salhelperdllapi.h:28
conditn.hxx
osl
Definition: component.hxx:30
salhelper
Definition: condition.hxx:31
osl::Condition
Condition variable.
Definition: conditn.hxx:56
osl::Mutex
A mutual exclusion synchronization object.
Definition: mutex.hxx:31
salhelper::Condition
Definition: condition.hxx:34
salhelper::Condition::~Condition
virtual ~Condition()
salhelper::Condition::Condition
Condition(osl::Mutex &aMutex)
salhelper::Condition::applies
virtual bool applies() const =0
salhelper::ConditionModifier
Definition: condition.hxx:60
salhelper::ConditionModifier::ConditionModifier
ConditionModifier(Condition &aCond)
salhelper::ConditionModifier::~ConditionModifier
~ConditionModifier()
salhelper::ConditionWaiter
Definition: condition.hxx:77
salhelper::ConditionWaiter::~ConditionWaiter
~ConditionWaiter()
salhelper::ConditionWaiter::ConditionWaiter
ConditionWaiter(Condition &aCond, sal_uInt32 milliSec)
salhelper::ConditionWaiter::ConditionWaiter
ConditionWaiter(Condition &aCond)
salhelper::ConditionWaiter::timedout
Definition: condition.hxx:82
salhelper::ConditionWaiter::timedout::~timedout
virtual ~timedout()
salhelper::ConditionWaiter::timedout::timedout
timedout()
salhelper::ConditionWaiter::timedout::timedout
timedout(timedout const &)