OnixS C++ FIX Engine
4.12.0
API Documentation
Home
Contents
Namespaces
Classes
Files
File List
File Members
OnixS
FIXEngine
Threading
Condition.h
Go to the documentation of this file.
1
/*
2
* Copyright Onix Solutions Limited [OnixS]. All rights reserved.
3
*
4
* This software owned by Onix Solutions Limited [OnixS] and is protected by copyright law
5
* and international copyright treaties.
6
*
7
* Access to and use of the software is governed by the terms of the applicable OnixS Software
8
* Services Agreement (the Agreement) and Customer end user license agreements granting
9
* a non-assignable, non-transferable and non-exclusive license to use the software
10
* for it's own data processing purposes under the terms defined in the Agreement.
11
*
12
* Except as otherwise granted within the terms of the Agreement, copying or reproduction of any part
13
* of this source code or associated reference material to any other location for further reproduction
14
* or redistribution, and any amendments to this copyright notice, are expressly prohibited.
15
*
16
* Any reproduction or redistribution for sale or hiring of the Software not in accordance with
17
* the terms of the Agreement is a violation of copyright law.
18
*/
19
20
#pragma once
21
22
#include <
OnixS/FIXEngine/Threading/Mutex.h
>
23
24
namespace
OnixS
{
25
namespace
Threading {
26
/// The condition variable - a synchronization objects that
27
/// allows threads to wait for certain events (conditions)
28
/// to occur.
29
///
30
/// The condition variable enables threads to atomically block
31
/// and test a condition under the protection of the mutual exclusion
32
/// lock (Mutex) until the condition is satisfied.
33
class
ONIXS_FIXENGINE_API
Condition
34
{
35
public
:
36
/// Initializes the instance.
37
Condition
();
38
39
/// Destructs the instance.
40
~
Condition
();
41
42
/// Signals the one waiting thread.
43
void
signal();
44
45
/// Signals all waiting threads.
46
void
signalAll();
47
48
/// Blocks on a condition.
49
/// @param lock Represents a reference to the Mutex
50
/// which is used to protect the condition testing.
51
void
wait(
Mutex
& lock);
52
53
private
:
54
// Implementation details.
55
void
* impl_;
56
57
// Copying & assignment is prohibited.
58
59
Condition
(
const
Condition
&);
60
Condition
& operator = (
const
Condition
&);
61
};
62
}
63
}
ONIXS_FIXENGINE_API
#define ONIXS_FIXENGINE_API
Definition:
ABI.h:45
OnixS
Definition:
Definitions.h:24
OnixS::Threading::Mutex
Protects a resources from the simultaneous access by multiple threads.
Definition:
Mutex.h:34
Mutex.h
OnixS::Threading::Condition
The condition variable - a synchronization objects that allows threads to wait for certain events (co...
Definition:
Condition.h:33