DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq::oks::OksXmlTokenPool Struct Reference

#include <xml.hpp>

Public Member Functions

 ~OksXmlTokenPool ()

Private Member Functions

OksXmlToken * get ()
void release (OksXmlToken *token)

Private Attributes

std::mutex m_mutex
std::stack< OksXmlToken * > m_tokens

Friends

class OksXmlInputStream

Detailed Description

Definition at line 291 of file xml.hpp.

Constructor & Destructor Documentation

◆ ~OksXmlTokenPool()

dunedaq::oks::OksXmlTokenPool::~OksXmlTokenPool ( )
inline

Definition at line 297 of file xml.hpp.

298 {
299 while (!m_tokens.empty()) {
300 OksXmlToken* t = m_tokens.top();
301 m_tokens.pop();
302 delete t;
303 }
304 }
std::stack< OksXmlToken * > m_tokens
Definition xml.hpp:332

Member Function Documentation

◆ get()

OksXmlToken * dunedaq::oks::OksXmlTokenPool::get ( )
inlineprivate

Get free OksXmlToken from pool or create new one. Lock mutex before usage!

Definition at line 312 of file xml.hpp.

313 {
314 if (!m_tokens.empty()) {
315 OksXmlToken* t = m_tokens.top();
316 m_tokens.pop();
317 return t;
318 } else {
319 return new OksXmlToken();
320 }
321 }
OksXmlToken(size_t len=2048)
Definition xml.hpp:200

◆ release()

void dunedaq::oks::OksXmlTokenPool::release ( OksXmlToken * token)
inlineprivate

Add OksXmlToken to pool. Lock mutex before usage!

Definition at line 328 of file xml.hpp.

328{ m_tokens.push(token); }

◆ OksXmlInputStream

friend class OksXmlInputStream
friend

Definition at line 294 of file xml.hpp.

Member Data Documentation

◆ m_mutex

std::mutex dunedaq::oks::OksXmlTokenPool::m_mutex
private

Definition at line 331 of file xml.hpp.

◆ m_tokens

std::stack<OksXmlToken*> dunedaq::oks::OksXmlTokenPool::m_tokens
private

Definition at line 332 of file xml.hpp.


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