ImagingTools Core SDK
CRestoringDatabaseControllerComp.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtCore/QProcess>
7
8// ACF includes
9#include <ilog/TLoggerCompWrap.h>
10#include <iprm/IParamsSet.h>
11
12// ImtCore includes
13#include <imtrest/IBinaryDataController.h>
14#include <imtrest/IBinaryDataProvider.h>
15#include <imtdb/IDatabaseLoginSettings.h>
16
17
18namespace imtdb
19{
20
21
22class CRestoringDatabaseControllerComp:
23 public ilog::CLoggerComponentBase,
26
27{
28public:
29 typedef ilog::CLoggerComponentBase BaseClass;
30
31 I_BEGIN_COMPONENT(CRestoringDatabaseControllerComp);
32 I_REGISTER_INTERFACE(IBinaryDataController);
33 I_REGISTER_INTERFACE(IBinaryDataProvider);
34 I_ASSIGN(m_databaseLoginSettingsCompPtr, "DatabaseLoginSettings", "Database login settings", true, "DatabaseLoginSettings");
35 I_ASSIGN(m_backupSettingsCompPtr, "BackupSettings", "Backup settings", false, "BackupSettings");
36 I_ASSIGN(m_backupBeforeRestoreAttrPtr, "BackupBeforeRestore", "Backup before restore", false, true);
37 I_ASSIGN(m_commandIdAttrPtr, "Command-ID", "Command ID", true, "");
38 I_END_COMPONENT;
39
40 // reimplemented (imtrest::IBinaryDataController)
41 virtual bool SetData(const QByteArray& data, QByteArray& dataId) const override;
42 virtual bool RemoveData(const QByteArray& dataId) const override;
43 virtual bool EnsureDataExists(const QByteArray& dataId) const override;
44
45 // reimplemented (imtrest::IBinaryDataProvider)
46 virtual bool GetData(
47 QByteArray& data,
48 const QByteArray& dataId,
49 qint64 readFromPosition = 0,
50 qint64 readMaxLength = -1) const override;
51
52protected:
53 bool ExecuteCommand(QProcess& process, const QString& command) const;
54
55protected:
56 I_REF(imtdb::IDatabaseLoginSettings, m_databaseLoginSettingsCompPtr);
57 I_REF(iprm::IParamsSet, m_backupSettingsCompPtr);
58 I_ATTR(bool, m_backupBeforeRestoreAttrPtr);
59 I_ATTR(QByteArray, m_commandIdAttrPtr);
60};
61
62
63} // namespace imtdb
64
65
Configuration interface for database connection credentials and parameters.
The IBinaryDataController provides managment of the file from disc, resources or memory.
The IBinaryDataProvider class provides file from disc, resources or memory.
Database Abstraction Layer (ORM Framework) for ImtCore applications.