8 #include "helics/external/optional.hpp"
10 #include <boost/interprocess/mapped_region.hpp>
11 #include <boost/interprocess/shared_memory_object.hpp>
12 #include <boost/interprocess/sync/interprocess_condition.hpp>
13 #include <boost/interprocess/sync/interprocess_mutex.hpp>
27 unsigned char* origin =
nullptr;
28 unsigned char* next =
nullptr;
34 dataBlock(
unsigned char* newBlock,
size_t blockSize);
38 int getCurrentCount()
const {
return dataCount; }
39 bool isSpaceAvaialble(
int sz)
const;
40 bool empty()
const {
return (dataCount == 0); }
42 bool push(
const unsigned char* block,
int blockSize);
44 int next_data_size()
const;
46 int pop(
unsigned char* block);
60 mutable boost::interprocess::interprocess_mutex
63 mutable boost::interprocess::interprocess_mutex
66 mutable boost::interprocess::interprocess_mutex
68 bool queueEmptyFlag{
true};
69 bool queueFullFlag{
false};
71 boost::interprocess::interprocess_condition
73 boost::interprocess::interprocess_condition
75 unsigned char* data1 =
nullptr;
76 unsigned char* data2 =
nullptr;
79 unsigned char* dataPriority =
nullptr;
80 size_t dataPrioritySize = 0;
96 void push(
const unsigned char* data,
size_t size);
104 bool try_push(
const unsigned char* data,
size_t size);
115 stx::optional<std::pair<unsigned char*, int>>
try_peek()
const;
121 bool try_pop(
unsigned char* data,
int maxSize);
123 int pop(
unsigned char* data,
int maxSize);
126 void pop(std::chrono::milliseconds timeout,
unsigned char* data,
int maxSize);
Definition: IpcBlockingPriorityQueueImpl.hpp:58
IpcBlockingPriorityQueueImpl(void *dataBlock, size_t blockSize)
Definition: IpcBlockingPriorityQueueImpl.cpp:35
IpcBlockingPriorityQueueImpl(const IpcBlockingPriorityQueueImpl &)=delete
stx::optional< std::pair< unsigned char *, int > > try_peek() const
void clear()
Definition: IpcBlockingPriorityQueueImpl.cpp:41
void pushPriority(const unsigned char *data, size_t size)
bool try_push(const unsigned char *data, size_t size)
void push(const unsigned char *data, size_t size)
Definition: IpcBlockingPriorityQueueImpl.cpp:55
void pop(std::chrono::milliseconds timeout, unsigned char *data, int maxSize)
bool try_pop(unsigned char *data, int maxSize)
bool try_pushPriority(const unsigned char *data, size_t size)
Definition: IpcBlockingPriorityQueueImpl.hpp:25
void reverse()
Definition: IpcBlockingPriorityQueueImpl.cpp:30
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
Definition: IpcBlockingPriorityQueueImpl.hpp:20