GCC Code Coverage Report


Directory: libimgdoc2/
File: libimgdoc2/src/doc/documentWrite2d.h
Date: 2025-02-03 12:41:04
Exec Total Coverage
Lines: 3 3 100.0%
Functions: 2 2 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 <utility>
8 #include <memory>
9 #include <imgdoc2.h>
10 #include "document.h"
11 #include "ITileCoordinate.h"
12
13 class DocumentWrite2d : public imgdoc2::IDocWrite2d
14 {
15 private:
16 std::shared_ptr < Document> document_;
17 public:
18 68 explicit DocumentWrite2d(std::shared_ptr<Document> document) : document_(std::move(document))
19 68 {}
20
21 imgdoc2::dbIndex AddTile(
22 const imgdoc2::ITileCoordinate* coordinate,
23 const imgdoc2::LogicalPositionInfo* info,
24 const imgdoc2::TileBaseInfo* tileInfo,
25 imgdoc2::DataTypes datatype,
26 imgdoc2::TileDataStorageType storage_type,
27 const imgdoc2::IDataObjBase* data) override;
28
29 void BeginTransaction() override;
30 void CommitTransaction() override;
31 void RollbackTransaction() override;
32
33 136 ~DocumentWrite2d() override = default;
34
35 private:
36 imgdoc2::dbIndex AddTileInternal(
37 const imgdoc2::ITileCoordinate* coordinate,
38 const imgdoc2::LogicalPositionInfo* info,
39 const imgdoc2::TileBaseInfo* tileInfo,
40 imgdoc2::DataTypes datatype,
41 imgdoc2::TileDataStorageType storage_type,
42 const imgdoc2::IDataObjBase* data);
43
44 void AddToSpatialIndex(imgdoc2::dbIndex index, const imgdoc2::LogicalPositionInfo& logical_position_info);
45
46 imgdoc2::dbIndex AddTileData(const imgdoc2::TileBaseInfo* tile_info, imgdoc2::DataTypes datatype, imgdoc2::TileDataStorageType storage_type, const imgdoc2::IDataObjBase* data);
47 imgdoc2::dbIndex AddBlobData(imgdoc2::TileDataStorageType storage_type, const imgdoc2::IDataObjBase* data);
48
49 std::shared_ptr<IDbStatement> CreateInsertDataStatement(const imgdoc2::IDataObjBase* data);
50
51 [[nodiscard]] const std::shared_ptr<imgdoc2::IHostingEnvironment>& GetHostingEnvironment() const { return this->document_->GetHostingEnvironment(); }
52
53 public:
54 // 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 )
55 DocumentWrite2d() = default;
56 DocumentWrite2d(const DocumentWrite2d&) = delete; // copy constructor
57 DocumentWrite2d& operator=(const DocumentWrite2d&) = delete; // copy assignment
58 DocumentWrite2d(DocumentWrite2d&&) = delete; // move constructor
59 DocumentWrite2d& operator=(DocumentWrite2d&&) = delete; // move assignment
60 };
61