ChimeraTK-ApplicationCore 04.06.00
Loading...
Searching...
No Matches
VariableGroup.h
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#pragma once
4
5#include "Model.h"
6#include "Module.h"
7
8#include <boost/thread.hpp>
9
10#include <list>
11
12namespace ChimeraTK {
13
14 /********************************************************************************************************************/
15
16 class ApplicationModule;
17 class ModuleGroup;
18 class ConfigReader;
19
20 /********************************************************************************************************************/
21
22 class VariableGroup : public Module {
23 public:
32 VariableGroup(VariableGroup* owner, const std::string& name, const std::string& description,
33 const std::unordered_set<std::string>& tags = {});
34
38 VariableGroup() = default;
39
41 VariableGroup(VariableGroup&& other) noexcept { operator=(std::move(other)); }
42 VariableGroup(const VariableGroup& other) noexcept = delete;
43
45 VariableGroup& operator=(VariableGroup&& other) noexcept;
46 VariableGroup& operator=(const VariableGroup& other) noexcept = delete;
47
49
52
53 std::string getVirtualQualifiedName() const override;
54
55 void unregisterModule(Module* module) override;
56
57 protected:
60
61 private:
62 friend class ApplicationModule;
63
64 VariableGroup(ModuleGroup* owner, const std::string& name, const std::string& description,
65 const std::unordered_set<std::string>& tags = {});
66 };
67
68 /********************************************************************************************************************/
69
70} /* namespace ChimeraTK */
Implementation class for the model.
Definition Model.h:1360
Base class for ApplicationModule and DeviceModule, to have a common interface for these module types.
Definition Module.h:21
VariableGroup(const VariableGroup &other) noexcept=delete
ChimeraTK::Model::VariableGroupProxy _model
ModuleType getModuleType() const override
Return the module type of this module, or in case of a VirtualModule the module type this VirtualModu...
std::string getVirtualQualifiedName() const override
VariableGroup & operator=(VariableGroup &&other) noexcept
Move assignment.
VariableGroup(VariableGroup &&other) noexcept
Move constructor.
VariableGroup & operator=(const VariableGroup &other) noexcept=delete
ChimeraTK::Model::VariableGroupProxy getModel()
Return the application model proxy representing this module.
void unregisterModule(Module *module) override
Unregister another module as a sub-module.
VariableGroup()=default
Default constructor: Allows late initialisation of VariableGroups (e.g.
InvalidityTracer application module.