Loading...
Searching...
No Matches
MonitorLink.hpp
1#pragma once
2#include <Process/Monitoring/Monitor.hpp>
3
4#include <QObject>
5
6#include <score_lib_process_export.h>
7
8#include <functional>
9#include <memory>
10
11class QGraphicsItem;
12namespace Process
13{
14class ProcessModel;
15
30class SCORE_LIB_PROCESS_EXPORT MonitorLink final : public QObject
31{
32public:
34 const ProcessModel& process, const QGraphicsItem& view,
35 std::function<void(Monitor&)> refresh,
36 std::function<void(Monitor*)> attached = {}, QObject* parent = nullptr);
37 ~MonitorLink() override;
38
39 Monitor* monitor() const noexcept { return m_monitor.get(); }
41 template <typename T>
42 T* monitor_as() const noexcept
43 {
44 return static_cast<T*>(m_monitor.get());
45 }
46
48 static void setRefreshInterval(int ms);
49 static int refreshInterval() noexcept;
50
51 void tick();
52
53private:
54 void setMonitor(std::shared_ptr<Monitor> m);
55 void setWatching(bool w);
56
57 const QGraphicsItem& m_view;
58 std::shared_ptr<Monitor> m_monitor;
59 std::function<void(Monitor&)> m_refresh;
60 std::function<void(Monitor*)> m_attached;
61 bool m_watching{};
62};
63}
The Process class.
Definition score-lib-process/Process/Process.hpp:82
Base classes and tools to implement processes and layers.
Definition JSONVisitor.hpp:1115
STL namespace.
Definition Monitor.hpp:27