DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
OpMonFacility.hpp
Go to the documentation of this file.
1
8
9#ifndef OPMONLIB_INCLUDE_OPMONLIB_OPMONFACILITY_HPP_
10#define OPMONLIB_INCLUDE_OPMONLIB_OPMONFACILITY_HPP_
11
12#include "Issues.hpp"
13
14#include "logging/Logging.hpp" // NOTE: if ISSUES ARE DECLARED BEFORE include logging/Logging.hpp, TLOG_DEBUG<<issue wont work.
16#include <cetlib/BasicPluginFactory.h>
17#include <cetlib/compiler_macros.h>
18
19#include <iostream>
20#include <memory>
21#include <optional>
22#include <string>
23
24#ifndef EXTERN_C_FUNC_DECLARE_START
25// NOLINTNEXTLINE(build/define_used)
26#define EXTERN_C_FUNC_DECLARE_START \
27 extern "C" \
28 {
29#endif
30
35
36// NOLINTNEXTLINE(build/define_used)
37#define DEFINE_DUNE_OPMON_FACILITY(klass) \
38 EXTERN_C_FUNC_DECLARE_START \
39 std::shared_ptr<dunedaq::opmonlib::OpMonFacility> make(std::string facility, \
40 std::optional<dunedaq::opmon::OpMonId> o) \
41 { \
42 return std::shared_ptr<dunedaq::opmonlib::OpMonFacility>(new klass(facility, o)); \
43 } \
44 }
45
46namespace dunedaq {
47
49 OpMonPublishFailure,
50 uri << " Failed to publish " << measurment << " from " << opmon_id,
51 ((std::string)uri)((std::string)measurment)((std::string)opmon_id))
52
53}
54
55namespace dunedaq::opmonlib {
56
58{
59public:
60 explicit OpMonFacility(std::string uri)
61 : m_uri(uri)
62 {
63 ;
64 }
65
66 virtual ~OpMonFacility() = default;
67 OpMonFacility(const OpMonFacility&) = delete;
71
72 const auto& get_URI() const { return m_uri; }
73
74 // Publish information
80 virtual void publish(opmon::OpMonEntry&&) const = 0;
81
82private:
83 std::string m_uri;
84};
85
86using OptionalOrigin = std::optional<dunedaq::opmon::OpMonId>;
87std::shared_ptr<OpMonFacility>
88makeOpMonFacility(std::string const& facility, OptionalOrigin = OptionalOrigin());
89
90} // namespace dunedaq::opmonlib
91
92#endif // OPMONLIB_INCLUDE_OPMONLIB_OPMONFACILITY_HPP_
virtual ~OpMonFacility()=default
OpMonFacility & operator=(const OpMonFacility &)=delete
OpMonFacility is not copy-assignable.
OpMonFacility(const OpMonFacility &)=delete
OpMonFacility is not copy-constructible.
OpMonFacility(OpMonFacility &&)=delete
OpMonFacility is not move-constructible.
OpMonFacility & operator=(OpMonFacility &&)=delete
OpMonFacility is not move-assignable.
virtual void publish(opmon::OpMonEntry &&) const =0
#define ERS_DECLARE_ISSUE(namespace_name, class_name, message_, attributes)
Definition macro.hpp:71
std::shared_ptr< OpMonFacility > makeOpMonFacility(std::string const &facility, OptionalOrigin=OptionalOrigin())
std::optional< dunedaq::opmon::OpMonId > OptionalOrigin
The DUNE-DAQ namespace.
Unsupported std::string uri Execution of command std::string error Failed to create CommandFacility uri
Definition Issues.hpp:71