OnixS C++ FIX Engine 4.13.0
API Documentation
Loading...
Searching...
No Matches
ThreadSafeQueue.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/ABI.h>
24
25namespace OnixS {
26namespace Threading {
27
29{
30 enum Enum
31 {
34
37
38 // We don't get data but was signaled to stop wait.
40 };
41};
42
46{
47public:
48
51
54
61 void enqueue(ItemBaseUniquePtr & enqueueItem);
62
70
72 void clear();
73
75 bool empty() const;
76
79 void signal();
80
81private:
82
84 struct Impl;
85 Impl * impl_;
86
89 ThreadSafeQueue & operator = (const ThreadSafeQueue &);
90};
91
92}
93}
#define ONIXS_FIXENGINE_API
Definition ABI.h:45
ThreadSafeQueueResult::Enum dequeue(ItemBaseUniquePtr &dequeueItem, const int waitInMs=InfiniteTimeout)
Tries to get an item from the queue during the timeout.
void signal()
Wakes up the queue if it was in the waiting mode.
void enqueue(ItemBaseUniquePtr &enqueueItem)
Adds an item to the queue.
bool empty() const
Returns 'true' if the queue is empty, otherwise 'false'.
ThreadSafeQueue()
Initializes the instance.
~ThreadSafeQueue()
Cleans up enqueued elements and internal resources.
void clear()
Removes all elements from the queue.
PtrTraits< ItemBase >::UniquePtr ItemBaseUniquePtr
Definition Definitions.h:89
@ Timeout
No data during the timeout.
@ Data
We get data immediately or after waiting during the timeout.