ChimeraTK-DeviceAccess 03.25.00
Loading...
Searching...
No Matches
LNMVariable.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 "TransferElement.h"
6
7#include <boost/shared_ptr.hpp>
8
9#include <mutex>
10
11namespace ChimeraTK {
12
13 namespace LNMBackend {
14 class MathPlugin;
15 }
16
17 struct LNMVariable {
22 template<typename T>
23 struct ValueTable {
24 std::vector<T> latestValue;
32 std::map<TransferElementID, cppext::future_queue<QueuedValue>> subscriptions;
33 };
35
37 std::mutex valueTable_mutex;
38
40 std::set<LNMBackend::MathPlugin*> usingFormulas;
41
44
46 bool isConstant{false};
47 };
48
49} /* namespace ChimeraTK */
A class to describe which of the supported data types is used.
Map of UserType to a class template with the UserType as template argument.
Class for generating and holding version numbers without exposing a numeric representation.
DataValidity
The current state of the data.
Hold values of CONSTANT or VARIABLE types in a type-dependent table.
Definition LNMVariable.h:23
std::map< TransferElementID, cppext::future_queue< QueuedValue > > subscriptions
Definition LNMVariable.h:32
TemplateUserTypeMap< ValueTable > valueTable
Definition LNMVariable.h:34
bool isConstant
flag whether this variable is actaully a constant
Definition LNMVariable.h:46
std::mutex valueTable_mutex
Mutex one needs to hold while accessing valueTable.
Definition LNMVariable.h:37
ChimeraTK::DataType valueType
type of the variable
Definition LNMVariable.h:43
std::set< LNMBackend::MathPlugin * > usingFormulas
formulas which need updates after variable was written
Definition LNMVariable.h:40