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.
OpMonFacility & operator= (const OpMonFacility &)=delete
 OpMonFacility is not copy-assignable.
 OpMonFacility (OpMonFacility &&)=delete
 OpMonFacility is not move-constructible.
OpMonFacility & operator= (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 17 of file BackendOpMonFacility.hpp.

◆ entry_t

Constructor & Destructor Documentation

◆ BackendOpMonFacility()

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

Definition at line 20 of file BackendOpMonFacility.hpp.

21 : OpMonFacility("backend://")
22 {
23 ;
24 }

Member Function Documentation

◆ get_entries()

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

Definition at line 15 of file BackendOpMonFacility.cpp.

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

◆ publish()

void BackendOpMonFacility::publish ( entry_t && e) 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 7 of file BackendOpMonFacility.cpp.

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

Member Data Documentation

◆ m_list

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

Definition at line 31 of file BackendOpMonFacility.hpp.

◆ m_mutex

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

Definition at line 32 of file BackendOpMonFacility.hpp.


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