ChimeraTK-ApplicationCore 04.06.00
Loading...
Searching...
No Matches
StatusMonitor.cc
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Deutsches Elektronen-Synchrotron DESY, MSK, ChimeraTK Project <chimeratk-support@desy.de>
2// SPDX-License-Identifier: LGPL-3.0-or-later
3
4#include "StatusMonitor.h"
5
6namespace ChimeraTK {
7
8 /********************************************************************************************************************/
9 /* Implementation of MonitorBase ***********************************************************************************/
10 /********************************************************************************************************************/
11
12 MonitorBase::MonitorBase(ModuleGroup* owner, const std::string& description, const std::string& outputPath,
13 const std::string& disablePath, const std::unordered_set<std::string>& outputTags,
14 const std::unordered_set<std::string>& parameterTags)
15 : ApplicationModule(owner, ".", description),
16 disable(this, disablePath, "", "Disable the status monitor", parameterTags),
17 status(this, outputPath, "Resulting status", outputTags) {}
18
19 /********************************************************************************************************************/
20
21 void MonitorBase::setStatus(StatusOutput::Status newStatus) {
22 // update only if status has changed, but always in case of initial value
23 if(status != newStatus || getDataValidity() != _lastStatusValidity ||
24 status.getVersionNumber() == VersionNumber{nullptr}) {
25 status = newStatus;
26 status.write();
28 }
29 }
30
31 /********************************************************************************************************************/
32
33} // namespace ChimeraTK
DataValidity getDataValidity() const override
Return the data validity flag.
bool write(ChimeraTK::VersionNumber versionNumber)=delete
InvalidityTracer application module.
void setStatus(StatusOutput::Status newStatus)
DataValidity _lastStatusValidity
StatusOutput status
Result of the monitor.