7#include <QtCore/QTimer>
8#include <QtCore/QFutureWatcher>
11#include <icomp/CComponentBase.h>
12#include <ifile/IFileNameParam.h>
13#include <ilog/TLoggerCompWrap.h>
14#include <ifile/IFilePersistence.h>
15#include <ifile/IRelativeFilePath.h>
16#include <iprm/IParamsSet.h>
19#include <imtdb/IDatabaseLoginSettings.h>
20#include <imtapp/IBackupSettings.h>
27class CDatabaseAutomaticBackupComp:
29 public ilog::CLoggerComponentBase
33 typedef ilog::CLoggerComponentBase BaseClass;
35 I_BEGIN_COMPONENT(CDatabaseAutomaticBackupComp);
36 I_ASSIGN(m_databaseLoginSettingsCompPtr,
"DatabaseLoginSettings",
"Database login settings",
false,
"DatabaseLoginSettings");
37 I_ASSIGN(m_backupSettingsCompPtr,
"BackupSettings",
"Backup settings",
false,
"BackupSettings");
38 I_ASSIGN(m_programAttrPtr,
"Program",
"Program name",
true,
"Program");
39 I_ASSIGN(m_checkIntervalAttrPtr,
"CheckInterval",
"Interval for backup timer (in msec)",
true, 60000);
40 I_ASSIGN(m_maxBackupCountAttrPtr,
"MaxBackupCount",
"Maximum number of backups, if -1 - unlimited",
true, 20);
41 I_ASSIGN(m_backupOnStartAttrPtr,
"BackupOnStart",
"Backup on start",
true,
true);
46 virtual void OnComponentCreated()
override;
47 virtual void OnComponentDestroyed()
override;
51 void CleanupOldBackups(
const QString& backupFolderPath);
52 QStringList GetPrevBackupsList(
const QString& backupFolderPath,
const QDir::SortFlags& sortFlags = QDir::Time | QDir::Reversed);
56 void OnBackupFinished();
63 I_REF(iprm::IParamsSet, m_backupSettingsCompPtr);
64 I_ATTR(QString, m_programAttrPtr);
65 I_ATTR(
int, m_checkIntervalAttrPtr);
66 I_ATTR(
int, m_maxBackupCountAttrPtr);
67 I_ATTR(
bool, m_backupOnStartAttrPtr);
70 QDateTime m_lastBackupDateTime;
72 QFutureWatcher<bool> m_backupWatcher;
Configuration interface for database connection credentials and parameters.
Database Abstraction Layer (ORM Framework) for ImtCore applications.