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 |
|
|
|