- Q_ASSERT(!query.next());
- return true;
-}
-
-NetworkId SqliteStorage::getNetworkId(UserId user, const QString &network) {
- QSqlQuery query(logDb());
- query.prepare("SELECT networkid FROM network "
- "WHERE userid = :userid AND networkname = :networkname");
- query.bindValue(":userid", user.toInt());
- query.bindValue(":networkname", network);
- safeExec(query);
-
- if(query.first())
- return query.value(0).toInt();
- else
- return NetworkId();
-}
-
-QList<NetworkId> SqliteStorage::connectedNetworks(UserId user) {
- QList<NetworkId> connectedNets;
- QSqlQuery query(logDb());
- query.prepare(queryString("select_connected_networks"));
- query.bindValue(":userid", user.toInt());
- safeExec(query);
- watchQuery(query);
-
- while(query.next()) {
- connectedNets << query.value(0).toInt();
- }
-
- return connectedNets;
-}
-
-void SqliteStorage::setNetworkConnected(UserId user, const NetworkId &networkId, bool isConnected) {
- QSqlQuery query(logDb());
- query.prepare(queryString("update_network_connected"));
- query.bindValue(":userid", user.toInt());
- query.bindValue(":networkid", networkId.toInt());
- query.bindValue(":connected", isConnected ? 1 : 0);
- safeExec(query);
- watchQuery(query);
-}
-
-QHash<QString, QString> SqliteStorage::persistentChannels(UserId user, const NetworkId &networkId) {
- QHash<QString, QString> persistentChans;
- QSqlQuery query(logDb());
- query.prepare(queryString("select_persistent_channels"));
- query.bindValue(":userid", user.toInt());
- query.bindValue(":networkid", networkId.toInt());
- safeExec(query);
- watchQuery(query);
-
- while(query.next()) {
- persistentChans[query.value(0).toString()] = query.value(1).toString();
- }
-
- return persistentChans;
-}
-
-void SqliteStorage::setChannelPersistent(UserId user, const NetworkId &networkId, const QString &channel, bool isJoined) {
- QSqlQuery query(logDb());
- query.prepare(queryString("update_buffer_persistent_channel"));
- query.bindValue(":userid", user.toInt());
- query.bindValue(":networkId", networkId.toInt());
- query.bindValue(":buffercname", channel.toLower());
- query.bindValue(":joined", isJoined ? 1 : 0);
- safeExec(query);
- watchQuery(query);
-}
-
-void SqliteStorage::setPersistentChannelKey(UserId user, const NetworkId &networkId, const QString &channel, const QString &key) {
- QSqlQuery query(logDb());
- query.prepare(queryString("update_buffer_set_channel_key"));
- query.bindValue(":userid", user.toInt());
- query.bindValue(":networkId", networkId.toInt());
- query.bindValue(":buffercname", channel.toLower());
- query.bindValue(":key", key);
- safeExec(query);
- watchQuery(query);
-}
-
-
-void SqliteStorage::createBuffer(UserId user, const NetworkId &networkId, BufferInfo::Type type, const QString &buffer) {
- QSqlQuery query(logDb());
- query.prepare(queryString("insert_buffer"));
- query.bindValue(":userid", user.toInt());
- query.bindValue(":networkid", networkId.toInt());
- query.bindValue(":buffertype", (int)type);
- query.bindValue(":buffername", buffer);
- query.bindValue(":buffercname", buffer.toLower());
- safeExec(query);
-
- watchQuery(query);
-}
-
-BufferInfo SqliteStorage::getBufferInfo(UserId user, const NetworkId &networkId, BufferInfo::Type type, const QString &buffer) {
- QSqlQuery query(logDb());
- query.prepare(queryString("select_bufferByName"));
- query.bindValue(":networkid", networkId.toInt());
- query.bindValue(":userid", user.toInt());
- query.bindValue(":buffercname", buffer.toLower());
- safeExec(query);
-
- if(!query.first()) {
- createBuffer(user, networkId, type, buffer);
- safeExec(query);
- if(!query.first()) {
- watchQuery(query);
- qWarning() << "unable to create BufferInfo for:" << user << networkId << buffer;
- return BufferInfo();
- }
- }
-
- BufferInfo bufferInfo = BufferInfo(query.value(0).toInt(), networkId, (BufferInfo::Type)query.value(1).toInt(), 0, buffer);
- if(query.next()) {
- qCritical() << "SqliteStorage::getBufferInfo(): received more then one Buffer!";
- qCritical() << " Query:" << query.lastQuery();
- qCritical() << " bound Values:";
- QList<QVariant> list = query.boundValues().values();
- for (int i = 0; i < list.size(); ++i)
- qCritical() << i << ":" << list.at(i).toString().toAscii().data();
- Q_ASSERT(false);
- }
-
- return bufferInfo;
-}
-
-BufferInfo SqliteStorage::getBufferInfo(UserId user, const BufferId &bufferId) {
- QSqlQuery query(logDb());
- query.prepare(queryString("select_buffer_by_id"));
- query.bindValue(":userid", user.toInt());
- query.bindValue(":bufferid", bufferId.toInt());
- safeExec(query);
- if(!watchQuery(query))
- return BufferInfo();
-
- if(!query.first())
- return BufferInfo();
-
- BufferInfo bufferInfo(query.value(0).toInt(), query.value(1).toInt(), (BufferInfo::Type)query.value(2).toInt(), 0, query.value(4).toString());
- Q_ASSERT(!query.next());
-
- return bufferInfo;
-}
-
-QList<BufferInfo> SqliteStorage::requestBuffers(UserId user) {
- QList<BufferInfo> bufferlist;
- QSqlQuery query(logDb());
- query.prepare(queryString("select_buffers"));
- query.bindValue(":userid", user.toInt());
-
- safeExec(query);
- watchQuery(query);
- while(query.next()) {
- bufferlist << BufferInfo(query.value(0).toInt(), query.value(1).toInt(), (BufferInfo::Type)query.value(2).toInt(), query.value(3).toInt(), query.value(4).toString());
- }
- return bufferlist;
-}
-
-QList<BufferId> SqliteStorage::requestBufferIdsForNetwork(UserId user, NetworkId networkId) {
- QList<BufferId> bufferList;
- QSqlQuery query(logDb());
- query.prepare(queryString("select_buffers_for_network"));
- query.bindValue(":networkid", networkId.toInt());
- query.bindValue(":userid", user.toInt());
-
- safeExec(query);
- watchQuery(query);
- while(query.next()) {
- bufferList << BufferId(query.value(0).toInt());
- }
- return bufferList;
-}
-
-bool SqliteStorage::removeBuffer(const UserId &user, const BufferId &bufferId) {
- if(!isValidBuffer(user, bufferId))
- return false;