libimgdoc2
Loading...
Searching...
No Matches
ICreateOptions.h
1// SPDX-FileCopyrightText: 2023 Carl Zeiss Microscopy GmbH
2//
3// SPDX-License-Identifier: MIT
4
5#pragma once
6
7#include <string>
8#include <unordered_set>
9#include "types.h"
10#include "DocumentType.h"
11
12namespace imgdoc2
13{
16 {
17 public:
20 virtual void SetDocumentType(imgdoc2::DocumentType document_type) = 0;
21
27 virtual void SetFilename(const char* filename) = 0;
28
34 virtual void AddDimension(imgdoc2::Dimension dim) = 0;
35
38 virtual void SetUseSpatialIndex(bool use_spatial_index) = 0;
39
45 virtual void AddIndexForDimension(imgdoc2::Dimension dim) = 0;
46
49 virtual void SetCreateBlobTable(bool create_blob_table) = 0;
50
53 [[nodiscard]] virtual imgdoc2::DocumentType GetDocumentType() const = 0;
54
57 [[nodiscard]] virtual bool GetUseSpatialIndex() const = 0;
58
61 [[nodiscard]] virtual const std::string& GetFilename() const = 0;
62
65 [[nodiscard]] virtual const std::unordered_set<imgdoc2::Dimension>& GetDimensions() const = 0;
66
69 [[nodiscard]] virtual const std::unordered_set<imgdoc2::Dimension>& GetIndexedDimensions() const = 0;
70
73 [[nodiscard]] virtual bool GetCreateBlobTable() const = 0;
74
75 virtual ~ICreateOptions() = default;
76
82 void SetFilename(const std::string& filename)
83 {
84 this->SetFilename(filename.c_str());
85 }
86 public:
91 template<class ForwardIterator>
92 void AddDimensions(ForwardIterator start, ForwardIterator end)
93 {
94 while (start != end)
95 {
96 this->AddDimension(*start++);
97 }
98 }
99 };
100}
Options for creating an imgdoc2-document.
Definition: ICreateOptions.h:16
virtual void SetUseSpatialIndex(bool use_spatial_index)=0
virtual const std::unordered_set< imgdoc2::Dimension > & GetDimensions() const =0
virtual void AddDimension(imgdoc2::Dimension dim)=0
void AddDimensions(ForwardIterator start, ForwardIterator end)
Definition: ICreateOptions.h:92
virtual bool GetCreateBlobTable() const =0
void SetFilename(const std::string &filename)
Definition: ICreateOptions.h:82
virtual const std::unordered_set< imgdoc2::Dimension > & GetIndexedDimensions() const =0
virtual void SetCreateBlobTable(bool create_blob_table)=0
virtual void SetDocumentType(imgdoc2::DocumentType document_type)=0
virtual void AddIndexForDimension(imgdoc2::Dimension dim)=0
virtual bool GetUseSpatialIndex() const =0
virtual imgdoc2::DocumentType GetDocumentType() const =0
virtual const std::string & GetFilename() const =0
virtual void SetFilename(const char *filename)=0