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