{
public:
- ServerSettings(QSettings *settings)
- : settings_(settings)
- { }
+ ServerSettings(QSettings *settings)
+ : settings_(settings) { }
- ~ServerSettings()
- {
+ ~ServerSettings() {
- }
+ }
- QString getDbEngine() const
- {
- return getParamAndStore("db_engine", getDefaultDbEngine()).toString();
- }
+ QString getDbEngine() const {
+ return getParamAndStore("db_engine", getDefaultDbEngine()).toString();
+ }
- QString getDbName() const
- {
- QString default_db_path(QDir::home().filePath(appName() + ".sqlite"));
- return getParamAndStore("db", default_db_path).toString();
- }
+ QString getDbName() const {
+ QString default_db_path(QDir::home().filePath(appName() + ".sqlite"));
+ return getParamAndStore("db", default_db_path).toString();
+ }
- QString getTorrentsDir() const
- {
- QString default_dir(QDir::home().filePath(QString(".") + appName()));
- return getParamAndStore("db", default_dir).toString();
+ QString getTorrentsDir() const {
+ QString default_dir(QDir::home().filePath(QString(".") + appName()));
+ return getParamAndStore("db", default_dir).toString();
- }
+ }
private:
- ServerSettings(ServerSettings const&);
- ServerSettings& operator= (ServerSettings const&);
-
- static inline QString appName()
- {
- return QCoreApplication::applicationName();
- }
-
- static QString getDefaultDbEngine()
- {
- // for (QStringListIterator p = QSqlDatabase::drivers(); p.hasNext();) {
- // return p.next();
- // }
- return "QSQLITE";
- }
-
- QVariant getParamAndStore(QString const& name, QVariant default_value) const
- {
- QVariant v(settings_->value(name));
- if (!v.isNull())
- {
- return v;
- }
-
- settings_->setValue(name, default_value);
- return default_value;
- }
-
- mutable QSettings *settings_;
+ ServerSettings(ServerSettings const&);
+ ServerSettings& operator= (ServerSettings const&);
+
+ static inline QString appName() {
+ return QCoreApplication::applicationName();
+ }
+
+ static QString getDefaultDbEngine() {
+ // for (QStringListIterator p = QSqlDatabase::drivers(); p.hasNext();) {
+ // return p.next();
+ // }
+ return "QSQLITE";
+ }
+
+ QVariant getParamAndStore(QString const& name, QVariant default_value) const {
+ QVariant v(settings_->value(name));
+ if (!v.isNull()) {
+ return v;
+ }
+
+ settings_->setValue(name, default_value);
+ return default_value;
+ }
+
+ mutable QSettings *settings_;
};
class ServerDb
{
public:
- ServerDb(ServerSettings *settings)
- : db_(QSqlDatabase::addDatabase(settings->getDbEngine()))
- {
- QString db_name(settings->getDbName());
- db_.setDatabaseName(db_name);
-
- if (!db_.open())
- {
- qDebug() << "cant open db";
- return;
- }
- qDebug() << "opened " << db_name;
-
- QSqlQuery q;
- if (!q.exec("create table torrents (hash varchar primary key, path varchar, savepath varchar);\n"))
- {
- qDebug() << "cant create table: " << q.lastError().text();
- }
- }
-
- ~ServerDb()
- {
- db_.close();
- }
-
- void addTorrent(const QString &hash, const QString &path, const QString &save_path)
- {
- if (!db_.open())
- {
- qDebug() << "cant open db";
- }
- QSqlQuery query_add_;
- query_add_.prepare("INSERT INTO torrents (hash, path, savepath) VALUES (?, ?, ?)");
- query_add_.bindValue(0, hash);
- query_add_.bindValue(1, path);
- query_add_.bindValue(2, save_path);
- if (!query_add_.exec())
- {
- qDebug() << "cant add torrent info into db: "
- << query_add_.lastError().text();
- }
- db_.close();
- }
+ ServerDb(ServerSettings *settings)
+ : db_(QSqlDatabase::addDatabase(settings->getDbEngine())) {
+ QString db_name(settings->getDbName());
+ db_.setDatabaseName(db_name);
+
+ if (!db_.open()) {
+ qDebug() << "cant open db";
+ return;
+ }
+ qDebug() << "opened " << db_name;
+
+ QSqlQuery q;
+ if (!q.exec("create table torrents (hash varchar primary key, path varchar, savepath varchar);\n")) {
+ qDebug() << "cant create table: " << q.lastError().text();
+ }
+ }
+
+ ~ServerDb() {
+ db_.close();
+ }
+
+ void addTorrent(const QString &hash, const QString &path, const QString &save_path) {
+ if (!db_.open()) {
+ qDebug() << "cant open db";
+ }
+ QSqlQuery query_add_;
+ query_add_.prepare("INSERT INTO torrents (hash, path, savepath) VALUES (?, ?, ?)");
+ query_add_.bindValue(0, hash);
+ query_add_.bindValue(1, path);
+ query_add_.bindValue(2, save_path);
+ if (!query_add_.exec()) {
+ qDebug() << "cant add torrent info into db: "
+ << query_add_.lastError().text();
+ }
+ db_.close();
+ }
private:
- ServerDb(ServerDb const&);
- ServerDb& operator= (ServerDb const&);
+ ServerDb(ServerDb const&);
+ ServerDb& operator= (ServerDb const&);
- QSqlDatabase db_;
+ QSqlDatabase db_;
};
} // namespace qtrapids