Mantid
Loading...
Searching...
No Matches
RowPredicate.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2018 ISIS Rutherford Appleton Laboratory UKRI,
4// NScD Oak Ridge National Laboratory, European Spallation Source,
5// Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS
6// SPDX - License - Identifier: GPL - 3.0 +
11#pragma once
12
14#include <memory>
15
16namespace MantidQt {
17namespace MantidWidgets {
18namespace Batch {
20public:
21 bool operator()(RowLocation const &row) const;
22 virtual ~RowPredicate() = default;
23
24protected:
25 virtual bool rowMeetsCriteria(RowLocation const &row) const = 0;
26};
27
28template <typename LambdaPredicate> class LambdaRowPredicate : public RowPredicate {
29public:
30 LambdaRowPredicate(LambdaPredicate predicate) : m_predicate(std::move(predicate)) {}
31
32protected:
33 bool rowMeetsCriteria(RowLocation const &row) const override { return m_predicate(row); }
34
35private:
36 LambdaPredicate m_predicate;
37};
38
39template <typename Predicate> std::unique_ptr<RowPredicate> makeFilterFromLambda(Predicate predicate) {
40 return std::make_unique<LambdaRowPredicate<Predicate>>(predicate);
41}
42} // namespace Batch
43} // namespace MantidWidgets
44} // namespace MantidQt
bool rowMeetsCriteria(RowLocation const &row) const override
Definition: RowPredicate.h:33
bool operator()(RowLocation const &row) const
virtual bool rowMeetsCriteria(RowLocation const &row) const =0
std::unique_ptr< RowPredicate > makeFilterFromLambda(Predicate predicate)
Definition: RowPredicate.h:39
The AlgorithmProgressDialogPresenter keeps track of the running algorithms and displays a progress ba...
STL namespace.