libimgdoc2
Loading...
Searching...
No Matches
IDoc.h
1// SPDX-FileCopyrightText: 2023 Carl Zeiss Microscopy GmbH
2//
3// SPDX-License-Identifier: MIT
4
5#pragma once
6
7#include <memory>
8
9namespace imgdoc2
10{
11 class IDocWrite2d;
12 class IDocRead2d;
13 class IDocumentMetadataWrite;
14 class IDocumentMetadataRead;
15
18 class IDoc
19 {
20 public:
24 virtual std::shared_ptr<imgdoc2::IDocWrite2d> GetWriter2d() = 0;
25
29 virtual std::shared_ptr<imgdoc2::IDocRead2d> GetReader2d() = 0;
30
34 virtual std::shared_ptr<imgdoc2::IDocWrite3d> GetWriter3d() = 0;
35
39 virtual std::shared_ptr<imgdoc2::IDocRead3d> GetReader3d() = 0;
40
41 virtual std::shared_ptr<imgdoc2::IDocumentMetadataWrite> GetDocumentMetadataWriter() = 0;
42
43 virtual std::shared_ptr<imgdoc2::IDocumentMetadataRead> GetDocumentMetadataReader() = 0;
44
45 virtual ~IDoc() = default;
46
47 public:
48 // no copy and no move (-> https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#c21-if-you-define-or-delete-any-copy-move-or-destructor-function-define-or-delete-them-all )
49 IDoc() = default;
50 IDoc(const IDoc&) = delete; // copy constructor
51 IDoc& operator=(const IDoc&) = delete; // copy assignment
52 IDoc(IDoc&&) = delete; // move constructor
53 IDoc& operator=(IDoc&&) = delete; // move assignment
54 };
55}
Definition: IDoc.h:19
virtual std::shared_ptr< imgdoc2::IDocRead3d > GetReader3d()=0
virtual std::shared_ptr< imgdoc2::IDocWrite2d > GetWriter2d()=0
virtual std::shared_ptr< imgdoc2::IDocRead2d > GetReader2d()=0
virtual std::shared_ptr< imgdoc2::IDocWrite3d > GetWriter3d()=0