DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
OpMonFacility.hpp
Go to the documentation of this file.
1
9#ifndef OPMONLIB_INCLUDE_OPMONLIB_OPMONFACILITY_HPP_
10#define OPMONLIB_INCLUDE_OPMONLIB_OPMONFACILITY_HPP_
11
12#include "Issues.hpp"
13
14#include <cetlib/BasicPluginFactory.h>
15#include <cetlib/compiler_macros.h>
17#include "logging/Logging.hpp" // NOTE: if ISSUES ARE DECLARED BEFORE include logging/Logging.hpp, TLOG_DEBUG<<issue wont work.
18
19#include <iostream>
20#include <memory>
21#include <string>
22#include <optional>
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
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, std::optional<dunedaq::opmon::OpMonId> o ) \
40 { \
41 return std::shared_ptr<dunedaq::opmonlib::OpMonFacility>(new klass(facility, o)); \
42 } \
43 }
44
45namespace dunedaq {
46
48 OpMonPublishFailure,
49 uri << " Failed to publish " << measurment << " from " << opmon_id,
50 ((std::string)uri)((std::string)measurment)((std::string)opmon_id)
51 )
52
53}
54
55
56
57namespace dunedaq::opmonlib {
58
60{
61public:
62 explicit OpMonFacility(std::string uri ) : m_uri(uri) {;}
63
64 virtual ~OpMonFacility() = default;
65 OpMonFacility(const OpMonFacility&) = delete;
69
70 const auto & get_URI() const { return m_uri; }
71
72 // Publish information
78 virtual void publish(opmon::OpMonEntry &&) const = 0;
79
80private:
81 std::string m_uri;
82};
83
84 using OptionalOrigin = std::optional<dunedaq::opmon::OpMonId>;
85 std::shared_ptr<OpMonFacility> makeOpMonFacility(std::string const& facility, OptionalOrigin = OptionalOrigin() ) ;
86
87} // namespace dunedaq::opmonlib
88
89#endif // OPMONLIB_INCLUDE_OPMONLIB_OPMONFACILITY_HPP_
#define ERS_DECLARE_ISSUE(namespace_name, class_name, message, attributes)
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
std::shared_ptr< OpMonFacility > makeOpMonFacility(std::string const &facility, OptionalOrigin=OptionalOrigin())
std::optional< dunedaq::opmon::OpMonId > OptionalOrigin
Including Qt Headers.
Unsupported std::string uri Execution of command std::string error Failed to create CommandFacility uri
Definition Issues.hpp:77