libimgdoc2
Loading...
Searching...
No Matches
TileInfoQueryClause.h
1// SPDX-FileCopyrightText: 2023 Carl Zeiss Microscopy GmbH
2//
3// SPDX-License-Identifier: MIT
4
5#pragma once
6
7#include <vector>
8#include <tuple>
9#include "ITIleInfoQueryClause.h"
10
11using namespace std;
12
13namespace imgdoc2
14{
17 {
18 private:
19 std::vector<std::tuple< LogicalOperator, ComparisonOperation, int>> pyramid_level_conditionals;
20 public:
23
25 bool GetPyramidLevelCondition(int no, LogicalOperator* logical_operator, ComparisonOperation* comparison_operation, int* value) const override
26 {
27 if (no >= this->pyramid_level_conditionals.size())
28 {
29 return false;
30 }
31
32 const auto& element = this->pyramid_level_conditionals.at(no);
33 if (logical_operator != nullptr)
34 {
35 *logical_operator = get<0>(element);
36 }
37
38 if (comparison_operation != nullptr)
39 {
40 *comparison_operation = get<1>(element);
41 }
42
43 if (value != nullptr)
44 {
45 *value = get<2>(element);
46 }
47
48 return true;
49 }
50
55 void AddPyramidLevelCondition(LogicalOperator logical_operator, ComparisonOperation comparison_operation, int value)
56 {
57 this->pyramid_level_conditionals.emplace_back(make_tuple(logical_operator, comparison_operation, value));
58 }
59 };
60}
A simplistic implementation of the ITileInfoQueryClause interface.
Definition: TileInfoQueryClause.h:17
bool GetPyramidLevelCondition(int no, LogicalOperator *logical_operator, ComparisonOperation *comparison_operation, int *value) const override
Definition: TileInfoQueryClause.h:25
CTileInfoQueryClause()=default
Default constructor.
void AddPyramidLevelCondition(LogicalOperator logical_operator, ComparisonOperation comparison_operation, int value)
Definition: TileInfoQueryClause.h:55
Interface defining the query-clause on "tile-info".
Definition: ITIleInfoQueryClause.h:39