DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq::ipm::ZmqContext Class Reference

#include <ZmqContext.hpp>

Public Member Functions

zmq::context_t & GetContext ()
 
void set_context_threads (int nthreads)
 
void set_context_maxsockets (int max_sockets)
 

Static Public Member Functions

static ZmqContextinstance ()
 

Private Member Functions

 ZmqContext ()
 
 ~ZmqContext ()
 
 ZmqContext (ZmqContext const &)=delete
 
 ZmqContext (ZmqContext &&)=delete
 
ZmqContextoperator= (ZmqContext const &)=delete
 
ZmqContextoperator= (ZmqContext &&)=delete
 

Private Attributes

zmq::context_t m_context
 

Static Private Attributes

static constexpr int s_minimum_sockets = 16636
 

Detailed Description

Definition at line 110 of file ZmqContext.hpp.

Constructor & Destructor Documentation

◆ ZmqContext() [1/3]

dunedaq::ipm::ZmqContext::ZmqContext ( )
inlineprivate

Definition at line 133 of file ZmqContext.hpp.

134 {
135 auto threads_c = getenv("IPM_ZMQ_IO_THREADS");
136 if (threads_c != nullptr) {
137 auto threads = std::atoi(threads_c); // NOLINT If a conversion error occurs, we discard the result
138 if (threads > 1) {
139 set_context_threads(threads);
140 }
141 }
142
143 bool sockets_set = false;
144 auto sockets_c = getenv("IPM_ZMQ_MAX_SOCKETS");
145 if (sockets_c != nullptr) {
146 auto sockets = std::atoi(sockets_c); // NOLINT If a conversion error occurs, we discard the result
147 if (sockets > s_minimum_sockets) {
148 set_context_maxsockets(sockets);
149 sockets_set = true;
150 }
151 }
152 if (!sockets_set) {
154 }
155 }
void set_context_threads(int nthreads)
void set_context_maxsockets(int max_sockets)
static constexpr int s_minimum_sockets

◆ ~ZmqContext()

dunedaq::ipm::ZmqContext::~ZmqContext ( )
inlineprivate

Definition at line 156 of file ZmqContext.hpp.

157 {
158 TLOG_DEBUG(TLVL_ZMQCONTEXT) << "Closing ZMQ Context";
159 m_context.close();
160 TLOG_DEBUG(TLVL_ZMQCONTEXT) << "ZMQ Context closed";
161 }
@ TLVL_ZMQCONTEXT
#define TLOG_DEBUG(lvl,...)
Definition Logging.hpp:112

◆ ZmqContext() [2/3]

dunedaq::ipm::ZmqContext::ZmqContext ( ZmqContext const & )
privatedelete

◆ ZmqContext() [3/3]

dunedaq::ipm::ZmqContext::ZmqContext ( ZmqContext && )
privatedelete

Member Function Documentation

◆ GetContext()

zmq::context_t & dunedaq::ipm::ZmqContext::GetContext ( )
inline

Definition at line 119 of file ZmqContext.hpp.

119{ return m_context; }

◆ instance()

static ZmqContext & dunedaq::ipm::ZmqContext::instance ( )
inlinestatic

Definition at line 113 of file ZmqContext.hpp.

114 {
115 static ZmqContext s_ctx;
116 return s_ctx;
117 }

◆ operator=() [1/2]

ZmqContext & dunedaq::ipm::ZmqContext::operator= ( ZmqContext && )
privatedelete

◆ operator=() [2/2]

ZmqContext & dunedaq::ipm::ZmqContext::operator= ( ZmqContext const & )
privatedelete

◆ set_context_maxsockets()

void dunedaq::ipm::ZmqContext::set_context_maxsockets ( int max_sockets)
inline

Definition at line 126 of file ZmqContext.hpp.

127 {
128 TLOG_DEBUG(TLVL_ZMQCONTEXT) << "Setting ZMQ Context max sockets to " << max_sockets;
129 m_context.set(zmq::ctxopt::max_sockets, max_sockets);
130 }

◆ set_context_threads()

void dunedaq::ipm::ZmqContext::set_context_threads ( int nthreads)
inline

Definition at line 121 of file ZmqContext.hpp.

122 {
123 TLOG_DEBUG(TLVL_ZMQCONTEXT) << "Setting ZMQ Context IO thread count to " << nthreads;
124 m_context.set(zmq::ctxopt::io_threads, nthreads);
125 }

Member Data Documentation

◆ m_context

zmq::context_t dunedaq::ipm::ZmqContext::m_context
private

Definition at line 162 of file ZmqContext.hpp.

◆ s_minimum_sockets

int dunedaq::ipm::ZmqContext::s_minimum_sockets = 16636
staticconstexprprivate

Definition at line 163 of file ZmqContext.hpp.


The documentation for this class was generated from the following file: