rssguard/src/librssguard/database/mariadbdriver.h

59 lines
1.9 KiB
C
Raw Normal View History

2021-03-05 13:32:16 +01:00
// For license of this file, see <project-root-folder>/LICENSE.md.
#ifndef MARIADBDRIVER_H
#define MARIADBDRIVER_H
#include "database/databasedriver.h"
class MariaDbDriver : public DatabaseDriver {
2024-03-19 10:31:49 +01:00
Q_OBJECT
2021-03-05 13:32:16 +01:00
public:
enum class MariaDbError {
Ok = 0,
UnknownError = 1,
AccessDenied = 1045,
UnknownDatabase = 1049,
ConnectionError = 2002,
CantConnect = 2003,
UnknownHost = 2005
};
explicit MariaDbDriver(QObject* parent = nullptr);
2024-03-19 10:31:49 +01:00
MariaDbError testConnection(const QString& hostname,
int port,
const QString& w_database,
const QString& username,
const QString& password);
2021-03-05 13:32:16 +01:00
virtual QString location() const;
2021-03-05 13:32:16 +01:00
virtual QString humanDriverType() const;
virtual QString qtDriverCode() const;
virtual QString ddlFilePrefix() const;
2021-03-05 13:32:16 +01:00
virtual DriverType driverType() const;
virtual bool vacuumDatabase();
virtual bool saveDatabase();
virtual void backupDatabase(const QString& backup_folder, const QString& backup_name);
virtual bool initiateRestoration(const QString& database_package_file);
virtual bool finishRestoration();
virtual qint64 databaseDataSize();
virtual QSqlDatabase connection(const QString& connection_name,
2024-03-19 10:31:49 +01:00
DatabaseDriver::DesiredStorageType desired_type =
DatabaseDriver::DesiredStorageType::FromSettings);
2021-03-05 21:13:40 +01:00
virtual QString autoIncrementPrimaryKey() const;
virtual QString blob() const;
2021-03-05 13:32:16 +01:00
QString interpretErrorCode(MariaDbError error_code) const;
private:
QSqlDatabase initializeDatabase(const QString& connection_name);
2022-01-18 11:28:38 +01:00
void setPragmas(QSqlQuery& query);
2021-03-05 13:32:16 +01:00
private:
bool m_databaseInitialized;
};
#endif // MARIADBDRIVER_H