GCC Code Coverage Report


Directory: libimgdoc2/
File: libimgdoc2/src/db/database_creator.h
Date: 2025-02-03 12:41:04
Exec Total Coverage
Lines: 3 3 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 <string>
8 #include <memory>
9 #include "IDbConnection.h"
10 #include "database_configuration.h"
11
12 class DbCreator
13 {
14 private:
15 std::shared_ptr<IDbConnection> db_connection_;
16 public:
17 258 explicit DbCreator(std::shared_ptr<IDbConnection> dbConnection) :
18 258 db_connection_(dbConnection)
19 258 {}
20
21 std::shared_ptr<DatabaseConfiguration2D> CreateTables2d(const imgdoc2::ICreateOptions* create_options);
22 std::shared_ptr<DatabaseConfiguration3D> CreateTables3d(const imgdoc2::ICreateOptions* create_options);
23 private:
24 void Initialize2dConfigurationFromCreateOptions(DatabaseConfiguration2D* database_configuration, const imgdoc2::ICreateOptions* create_options);
25 void Initialize3dConfigurationFromCreateOptions(DatabaseConfiguration3D* database_configuration, const imgdoc2::ICreateOptions* create_options);
26
27 std::string GenerateSqlStatementForCreatingGeneralTable_Sqlite(const DatabaseConfigurationCommon* database_configuration_common);
28 std::string GenerateSqlStatementForFillingGeneralTable_Sqlite(const DatabaseConfigurationCommon* database_configuration_common);
29 std::string GenerateSqlStatementForCreatingTilesDataTable_Sqlite(const DatabaseConfiguration2D* database_configuration);
30 std::string GenerateSqlStatementForCreatingTilesInfoTable_Sqlite(const DatabaseConfiguration2D* database_configuration);
31 std::string GenerateSqlStatementForCreatingSpatialTilesIndex_Sqlite(const DatabaseConfiguration2D* database_configuration);
32 std::string GenerateSqlStatementForCreatingBlobTable_Sqlite(const DatabaseConfiguration2D* database_configuration);
33
34 std::string GenerateSqlStatementForCreatingTilesDataTable_Sqlite(const DatabaseConfiguration3D* database_configuration);
35 std::string GenerateSqlStatementForCreatingTilesInfoTable_Sqlite(const DatabaseConfiguration3D* database_configuration);
36 std::string GenerateSqlStatementForCreatingSpatialTilesIndex_Sqlite(const DatabaseConfiguration3D* database_configuration);
37 std::string GenerateSqlStatementForCreatingBlobTable_Sqlite(const DatabaseConfiguration3D* database_configuration);
38
39 /// Generates the SQL statement for creating metadata table (for SQLite).
40 /// \param database_configuration_common The database configuration.
41 /// \returns The SQL statement for creating the metadata table.
42 std::string GenerateSqlStatementForCreatingMetadataTable_Sqlite(const DatabaseConfigurationCommon* database_configuration_common);
43
44 void SetBlobTableNameInGeneralTable(const DatabaseConfigurationCommon* database_configuration_common);
45
46 void SetGeneralTableInfoForSpatialIndex(const DatabaseConfigurationCommon* database_configuration_common);
47
48 static void ThrowIfDocumentTypeIsNotAsSpecified(const imgdoc2::ICreateOptions* create_options, imgdoc2::DocumentType document_type);
49 };
50