OnixS C++ CBOE CFE Binary Order Entry (BOE) Handler 1.12.0
API documentation
Loading...
Searching...
No Matches
Thread.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#pragma once
20
21#include <set>
22
25
26namespace OnixS {
27namespace CboeCFE {
28namespace Trading {
29namespace BOE {
30namespace Threading {
31
33typedef size_t CpuIndex;
34typedef std::set<CpuIndex> CpuIndexes;
35
37class ONIXS_CBOE_CFE_BOE_API ThreadAffinity
38{
39public:
42 explicit ThreadAffinity(const std::string &str);
43
46
48 const CpuIndexes &cpuIndexes() const;
49
52
54 std::string toString();
55
56private:
58 ThreadAffinity &operator=(const ThreadAffinity &);
59
60 CpuIndexes *indexes_;
61};
62
64class ONIXS_CBOE_CFE_BOE_API ThisThread
65{
66public:
69 static void sleep(unsigned int milliseconds);
70
72 static void spinWait(unsigned int microseconds);
73
75 static void affinity(const CpuIndexes &cpuIndexes);
76
78 static void affinity(CpuIndex cpuIndex);
79
81 static void priority(int priority);
82
87 static void policy(int policy);
88
89
91 static unsigned int processorNumber();
92
93private:
94 ThisThread(const ThisThread &);
95 ThisThread &operator=(const ThisThread &);
96};
97
98}
99}
100}
101}
102}
static void priority(int priority)
Sets the priority for the current thread.
static void affinity(const CpuIndexes &cpuIndexes)
Sets the processor affinity mask for the current thread.
static void affinity(CpuIndex cpuIndex)
Sets the processor affinity mask for the current thread.
static void spinWait(unsigned int microseconds)
Executes a single instruction during the given number of microseconds.
static void sleep(unsigned int milliseconds)
CpuIndexes & cpuIndexes()
Collection of CPU indices.
const CpuIndexes & cpuIndexes() const
Read-only access to index collection.
std::string toString()
Serializes thread affinity to the string presentation.
size_t CpuIndex
Logical processors that a thread is allowed to run on (first logical CPU has index 0).
Definition Thread.h:33
std::set< CpuIndex > CpuIndexes
Definition Thread.h:34