GCC Code Coverage Report


Directory: libimgdoc2/
File: libimgdoc2/inc/IDimCoordinateQueryClause.h
Date: 2025-02-03 12:41:04
Exec Total Coverage
Lines: 1 1 100.0%
Functions: 1 1 100.0%
Branches: 0 0 -%

Line Branch Exec Source
1 // SPDX-FileCopyrightText: 2023 Carl Zeiss Microscopy GmbH
2 //
3 // SPDX-License-Identifier: MIT
4
5 #pragma once
6
7 #include <vector>
8 #include <set>
9 #include "ITileCoordinate.h"
10 #include "types.h"
11
12 namespace imgdoc2
13 {
14 /// This interface describes a query clause for the dimension-columns.
15 /// It is important that this object is idempotent - meaning if the methods are
16 /// called multiple times, an implementation is required to give identical results.
17 class IDimCoordinateQueryClause
18 {
19 public:
20 /// A range clause means that the value must be greater than or equal to the
21 /// 'start' field and less than or equal than the 'end'. Use int-min for start
22 /// in order to have only a "less than or equal" comparison, and int-max for
23 /// "greater or equal".
24 struct RangeClause
25 {
26 int start; ///< The start value of the range (inclusive).
27 int end; ///< The end value of the range (inclusive).
28 };
29
30 /// Gets the set of dimensions for which there is a clause present. It is important that the order
31 /// of elements is idempotent (as of course the content itself).
32 /// \returns The set of dimensions for which there are clauses.
33 [[nodiscard]] virtual const std::set<imgdoc2::Dimension>& GetTileDimsForClause() const = 0;
34
35 /// Gets range clauses for the specified dimension if they exist. Otherwise, null is returned.
36 /// \param d The dimension to query the range clauses for.
37 /// \returns Null if it fails, else the range clauses.
38 [[nodiscard]] virtual const std::vector<RangeClause>* GetRangeClause(imgdoc2::Dimension d) const = 0;
39
40 92 virtual ~IDimCoordinateQueryClause() = default;
41 };
42 }
43