15 ServerSettings(QSettings *settings)
24 QString getDbEngine() const
26 return getParamAndStore("db_engine", getDefaultDbEngine()).toString();
29 QString getDbName() const
31 QString default_db_path(QDir::home().filePath(appName() + ".sqlite"));
32 return getParamAndStore("db", default_db_path).toString();
35 QString getTorrentsDir() const
37 QString default_dir(QDir::home().filePath(QString(".") + appName()));
38 return getParamAndStore("db", default_dir).toString();
44 ServerSettings(ServerSettings const&);
45 ServerSettings& operator= (ServerSettings const&);
47 static inline QString appName()
49 return QCoreApplication::applicationName();
52 static QString getDefaultDbEngine()
54 // for (QStringListIterator p = QSqlDatabase::drivers(); p.hasNext();) {
60 QVariant getParamAndStore(QString const& name, QVariant default_value) const
62 QVariant v(settings_->value(name));
67 settings_->setValue(name, default_value);
71 mutable QSettings *settings_;
78 ServerDb(ServerSettings *settings)
79 : db_(QSqlDatabase::addDatabase(settings->getDbEngine()))
81 QString db_name(settings->getDbName());
82 db_.setDatabaseName(db_name);
85 qDebug() << "cant open db";
88 qDebug() << "opened " << db_name;
91 if (!q.exec("create table torrents (hash varchar primary key, path varchar, savepath varchar);\n")) {
92 qDebug() << "cant create table: " << q.lastError().text();
101 void addTorrent(const QString &hash, const QString &path, const QString &save_path)
104 qDebug() << "cant open db";
106 QSqlQuery query_add_;
107 query_add_.prepare("INSERT INTO torrents (hash, path, savepath) VALUES (?, ?, ?)");
108 query_add_.bindValue(0, hash);
109 query_add_.bindValue(1, path);
110 query_add_.bindValue(2, save_path);
111 if (!query_add_.exec()) {
112 qDebug() << "cant add torrent info into db: "
113 << query_add_.lastError().text();
120 ServerDb(ServerDb const&);
121 ServerDb& operator= (ServerDb const&);
126 } // namespace qtrapids
128 #endif // _SERVERDB_HPP_