ChimeraTK-DeviceAccess 03.25.00
Loading...
Searching...
No Matches
DataConsistencyGroupSimpleMatcher.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
5
7
8 /********************************************************************************************************************/
9
10 bool SimpleMatcher::update(const TransferElementID& transferElementID) {
11 auto getVNFromElement = _pushElements.at(transferElementID).getVersionNumber();
12 assert(getVNFromElement != VersionNumber{nullptr});
13 if(getVNFromElement < _versionNumberToBeConsistentTo) {
14 return false;
15 }
16 if(_versionNumberToBeConsistentTo != getVNFromElement) {
17 _versionNumberToBeConsistentTo = getVNFromElement;
18 _consistentElements.clear();
19 }
20 _consistentElements.insert(transferElementID);
21 return _consistentElements.size() == _pushElements.size();
22 }
23
24 /********************************************************************************************************************/
25
27 return _consistentElements.size() == _pushElements.size();
28 }
29
30 /********************************************************************************************************************/
31
32} // namespace ChimeraTK::DataConsistencyGroupDetail
std::map< TransferElementID, TransferElementAbstractor > _pushElements
map of push-type elements in this group, there are only push type elements, like in ReadAnyGroup
bool update(const TransferElementID &transferElementID)
This function updates consistentElements, a set of TransferElementID.
bool isConsistent() const
returns true if consistent state is reached
Simple class holding a unique ID for a TransferElement.
Class for generating and holding version numbers without exposing a numeric representation.