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

#include <BackendOpMonFacility.hpp>

Inheritance diagram for dunedaq::opmonlib::BackendOpMonFacility:
[legend]
Collaboration diagram for dunedaq::opmonlib::BackendOpMonFacility:
[legend]

Public Member Functions

 BackendOpMonFacility ()
 
void publish (entry_t &&e) const override
 
data_t get_entries (std::regex measurement_filter=std::regex(".*"))
 
- Public Member Functions inherited from dunedaq::opmonlib::OpMonFacility
 OpMonFacility (std::string uri)
 
virtual ~OpMonFacility ()=default
 
 OpMonFacility (const OpMonFacility &)=delete
 OpMonFacility is not copy-constructible.
 
OpMonFacilityoperator= (const OpMonFacility &)=delete
 OpMonFacility is not copy-assignable.
 
 OpMonFacility (OpMonFacility &&)=delete
 OpMonFacility is not move-constructible.
 
OpMonFacilityoperator= (OpMonFacility &&)=delete
 OpMonFacility is not move-assignable.
 
const auto & get_URI () const
 

Private Types

using entry_t = dunedaq::opmon::OpMonEntry
 
using data_t = std::list<entry_t>
 

Private Attributes

data_t m_list
 
std::mutex m_mutex
 

Detailed Description

Definition at line 13 of file BackendOpMonFacility.hpp.

Member Typedef Documentation

◆ data_t

Definition at line 16 of file BackendOpMonFacility.hpp.

◆ entry_t

Constructor & Destructor Documentation

◆ BackendOpMonFacility()

dunedaq::opmonlib::BackendOpMonFacility::BackendOpMonFacility ( )
inline

Definition at line 20 of file BackendOpMonFacility.hpp.

20: OpMonFacility("backend://") {;}

Member Function Documentation

◆ get_entries()

BackendOpMonFacility::data_t BackendOpMonFacility::get_entries ( std::regex measurement_filter = std::regex(".*"))

Definition at line 14 of file BackendOpMonFacility.cpp.

14 {
15
16 std::unique_lock<std::mutex> lk(m_mutex);
17 data_t ret;
18 m_list.swap(ret);
19 lk.unlock();
20
21 std::smatch values;
22 auto it = ret.begin();
23 while ( it != ret.end() ) {
24 if ( ! std::regex_match( it->measurement(), values, measurement_filter) ) {
25 it = ret.erase(it);
26 } else {
27 ++it;
28 }
29 }
30
31 return ret;
32}

◆ publish()

void BackendOpMonFacility::publish ( entry_t && ) const
overridevirtual

The implmentations of this functions need to be thread safe. It is a requirement to implement this function asyncronously. This function can throw, but it is guaranteed to throw an OpMonPublishFailure

Implements dunedaq::opmonlib::OpMonFacility.

Definition at line 6 of file BackendOpMonFacility.cpp.

6 {
7
8 std::lock_guard<std::mutex> lk(m_mutex);
9 m_list.push_back(e);
10
11}

Member Data Documentation

◆ m_list

data_t dunedaq::opmonlib::BackendOpMonFacility::m_list
mutableprivate

Definition at line 27 of file BackendOpMonFacility.hpp.

◆ m_mutex

std::mutex dunedaq::opmonlib::BackendOpMonFacility::m_mutex
mutableprivate

Definition at line 28 of file BackendOpMonFacility.hpp.


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