DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
iomanager
include
iomanager
queue
Queue.hpp
Go to the documentation of this file.
1
13
14
#ifndef IOMANAGER_INCLUDE_IOMANAGER_QUEUE_QUEUE_HPP_
15
#define IOMANAGER_INCLUDE_IOMANAGER_QUEUE_QUEUE_HPP_
16
17
#include "
iomanager/queue/QueueBase.hpp
"
18
#include "
iomanager/queue/QueueIssues.hpp
"
19
20
#include "
ers/Issue.hpp
"
21
#include "
logging/Logging.hpp
"
// NOTE: if ISSUES ARE DECLARED BEFORE include logging/Logging.hpp, TLOG_DEBUG<<issue wont work.
22
23
#include <chrono>
24
#include <cstddef>
25
#include <memory>
26
#include <string>
27
#include <vector>
28
29
namespace
dunedaq::iomanager
{
30
35
template
<
class
T>
36
class
Queue
:
public
QueueBase
37
{
38
public
:
39
using
value_t
= T;
40
using
duration_t
= std::chrono::milliseconds;
41
46
explicit
Queue
(
const
std::string& name)
47
:
QueueBase
(name)
48
{
49
}
50
56
virtual
bool
can_push
()
const
{
return
this->
get_num_elements
() < this->
get_capacity
(); }
57
63
virtual
bool
can_pop
()
const
{
return
this->
get_num_elements
() > 0; }
64
74
virtual
void
push
(
value_t
&& val,
const
duration_t
& timeout) = 0;
75
85
virtual
void
pop
(
value_t
& val,
const
duration_t
& timeout) = 0;
86
87
virtual
bool
try_push
(
value_t
&& val,
const
duration_t
& timeout) = 0;
88
virtual
bool
try_pop
(
value_t
& val,
const
duration_t
& timeout) = 0;
89
90
private
:
91
Queue
(
const
Queue
&) =
delete
;
92
Queue
&
operator=
(
const
Queue
&) =
delete
;
93
Queue
(
Queue
&&) =
delete
;
94
Queue
&
operator=
(
Queue
&&) =
delete
;
95
};
96
97
}
// namespace dunedaq::iomanager
98
99
#endif
// IOMANAGER_INCLUDE_IOMANAGER_QUEUE_QUEUE_HPP_
Issue.hpp
QueueBase.hpp
QueueIssues.hpp
dunedaq::iomanager::QueueBase::QueueBase
QueueBase(const std::string &name)
QueueBase Constructor.
Definition
QueueBase.hpp:51
dunedaq::iomanager::QueueBase::get_num_elements
virtual size_t get_num_elements() const =0
dunedaq::iomanager::QueueBase::get_capacity
virtual size_t get_capacity() const =0
Get the capacity (max size) of the queue.
dunedaq::iomanager::Queue::can_pop
virtual bool can_pop() const
Determine whether the Queue may be popped from.
Definition
Queue.hpp:63
dunedaq::iomanager::Queue::Queue
Queue(const Queue &)=delete
dunedaq::iomanager::Queue::pop
virtual void pop(value_t &val, const duration_t &timeout)=0
Pop the first value off of the queue.
dunedaq::iomanager::Queue::operator=
Queue & operator=(Queue &&)=delete
dunedaq::iomanager::Queue::push
virtual void push(value_t &&val, const duration_t &timeout)=0
Push a value onto the Queue.
dunedaq::iomanager::Queue::try_push
virtual bool try_push(value_t &&val, const duration_t &timeout)=0
dunedaq::iomanager::Queue::can_push
virtual bool can_push() const
Determine whether the Queue may be pushed onto.
Definition
Queue.hpp:56
dunedaq::iomanager::Queue::duration_t
std::chrono::milliseconds duration_t
Base duration type for timeouts.
Definition
Queue.hpp:40
dunedaq::iomanager::Queue::Queue
Queue(const std::string &name)
Queue Constructor.
Definition
Queue.hpp:46
dunedaq::iomanager::Queue::operator=
Queue & operator=(const Queue &)=delete
dunedaq::iomanager::Queue::value_t
T value_t
Type stored in the Queue.
Definition
Queue.hpp:39
dunedaq::iomanager::Queue::try_pop
virtual bool try_pop(value_t &val, const duration_t &timeout)=0
dunedaq::iomanager::Queue::Queue
Queue(Queue &&)=delete
Logging.hpp
dunedaq::iomanager
Definition
IOManager.hxx:19
Generated on
for DUNE-DAQ by
1.17.0