OnixS C++ CBOE CFE Binary Order Entry (BOE) Handler
1.11.0
API documentation
Home
Contents
Namespaces
Classes
Files
File List
File Members
include
OnixS
CboeCFE
Trading
BOE
Threading
Semaphore.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/CboeCFE/Trading/BOE/ABI.h
>
23
24
namespace
OnixS
{
25
namespace
CboeCFE {
26
namespace
Trading {
27
namespace
BOE {
28
namespace
Threading {
29
30
/// Semaphore.
31
///
32
/// Limits number of threads that can access the shared resource simultaneously.
33
class
ONIXS_CBOE_CFE_BOE_API
Semaphore
34
{
35
public
:
36
/// Constructor.
37
///
38
/// The state of the semaphore is signaled
39
/// when its counter is greater than zero and
40
/// non-signaled when it is zero.
41
///
42
/// \param count the counter value.
43
Semaphore
(
unsigned
int
count = 1);
44
45
~
Semaphore
();
46
47
/// Decrements the counter by one.
48
///
49
/// If the counter is already zero,
50
/// blocks the thread until the counter
51
/// becomes greater than zero.
52
bool
acquire(
int
timeoutInMs = -1);
53
54
/// Tries to decrement the counter by one.
55
///
56
/// \return `false' if the counter is already zero,
57
/// otherwise - `true`.
58
bool
tryAcquire();
59
60
/// Increments the counter by one.
61
void
release();
62
63
private
:
64
void
*impl_;
65
66
// Copying & assignment is prohibited.
67
Semaphore
(
const
Semaphore
&);
68
Semaphore
&operator=(
const
Semaphore
&);
69
};
70
71
}
72
}
73
}
74
}
75
}
OnixS::CboeCFE::Trading::BOE::Threading::Semaphore
Definition:
Semaphore.h:33
ABI.h
OnixS
Definition:
BinaryMessage.h:29