void AvatarService::fetchImageFromServer(const QString& email) { if (get_avatar_req_) { if (email == get_avatar_req_->email()) { return; } queue_->enqueue(email); return; } if (!seafApplet->accountManager()->hasAccount()) return; const Account& account = seafApplet->accountManager()->accounts().front(); qint64 mtime = 0; if (autoupdate_db_) { char *zql = sqlite3_mprintf("SELECT timestamp FROM Avatar " "WHERE filename = %Q", avatarPathForEmail(account, email).toUtf8().data()); sqlite_foreach_selected_row(autoupdate_db_, zql, loadTimeStampCB, &mtime); sqlite3_free(zql); } get_avatar_req_ = new GetAvatarRequest(account, email, mtime, devicePixelRatio() * kAvatarSize); connect(get_avatar_req_, SIGNAL(success(const QImage&)), this, SLOT(onGetAvatarSuccess(const QImage&))); connect(get_avatar_req_, SIGNAL(failed(const ApiError&)), this, SLOT(onGetAvatarFailed(const ApiError&))); get_avatar_req_->send(); }
const std::vector<Account>& AccountManager::loadAccounts() { const char *sql = "SELECT url, username, token, lastVisited FROM Accounts " "ORDER BY lastVisited DESC"; accounts_.clear(); sqlite_foreach_selected_row (db, sql, loadAccountsCB, this); return accounts_; }
const std::vector<Account>& AccountManager::loadAccounts() { const char *sql = "SELECT url, username, token, lastVisited, isShibboleth FROM Accounts "; accounts_.clear(); UserData userdata; userdata.accounts = &accounts_; userdata.db = db; sqlite_foreach_selected_row (db, sql, loadAccountsCB, &userdata); std::stable_sort(accounts_.begin(), accounts_.end(), compareAccount); return accounts_; }
static void load_clone_more_info (CloneTask *task) { char sql[256]; snprintf (sql, sizeof(sql), "SELECT more_info FROM CloneTasksMoreInfo WHERE repo_id='%s'", task->repo_id); sqlite_foreach_selected_row (task->manager->db, sql, load_more_info_cb, task); }
QString FileCacheDB::getCachedFileId(const QString& repo_id, const QString& path) { QString sql = "SELECT file_id" " FROM FileCache" " WHERE repo_id = '%1'" " AND path = '%2'"; sql = sql.arg(repo_id).arg(path); QString file_id; sqlite_foreach_selected_row (db_, toCStr(sql), getCacheIdCB, &file_id); return file_id; }
static char * config_get_string (sqlite3 *config_db, const char *key) { char sql[256]; char *value = NULL; snprintf (sql, sizeof(sql), "SELECT value FROM Config WHERE key='%s';", key); if (sqlite_foreach_selected_row (config_db, sql, get_value, &value) < 0) return NULL; return value; }
int seaf_clone_manager_start (SeafCloneManager *mgr) { mgr->check_timer = seaf_timer_new (check_connect_pulse, mgr, CHECK_CONNECT_INTERVAL * 1000); char *sql = "SELECT * FROM CloneTasks"; if (sqlite_foreach_selected_row (mgr->db, sql, restart_task, mgr) < 0) return -1; g_signal_connect (seaf, "repo-http-fetched", (GCallback)on_repo_http_fetched, mgr); return 0; }
static int load_clone_enc_info (CloneTask *task) { char sql[256]; snprintf (sql, sizeof(sql), "SELECT enc_version, random_key FROM CloneEncInfo WHERE repo_id='%s'", task->repo_id); if (sqlite_foreach_selected_row (task->manager->db, sql, load_enc_info_cb, task) < 0) return -1; return 0; }
bool AccountManager::loadAccountsCB(sqlite3_stmt *stmt, void *data) { UserData *userdata = static_cast<UserData*>(data); const char *url = (const char *)sqlite3_column_text (stmt, 0); const char *username = (const char *)sqlite3_column_text (stmt, 1); const char *token = (const char *)sqlite3_column_text (stmt, 2); qint64 atime = (qint64)sqlite3_column_int64 (stmt, 3); int isShibboleth = sqlite3_column_int (stmt, 4); if (!token) { token = ""; } Account account = Account(QUrl(QString(url)), QString(username), QString(token), atime, isShibboleth != 0); char* zql = sqlite3_mprintf("SELECT key, value FROM ServerInfo WHERE url = %Q AND username = %Q", url, username); sqlite_foreach_selected_row (userdata->db, zql, loadServerInfoCB, &account.serverInfo); sqlite3_free(zql); userdata->accounts->push_back(account); return true; }
int seaf_clone_manager_init (SeafCloneManager *mgr) { const char *sql; sql = "CREATE TABLE IF NOT EXISTS CloneTasks " "(repo_id TEXT, repo_name TEXT, " "token TEXT, dest_id TEXT," "worktree_parent TEXT, passwd TEXT, " "server_addr TEXT, server_port TEXT, email TEXT);"; if (sqlite_query_exec (mgr->db, sql) < 0) return -1; sql = "SELECT * FROM CloneTasks"; if (sqlite_foreach_selected_row (mgr->db, sql, restart_task, mgr) < 0) return -1; g_signal_connect (seaf, "repo-fetched", (GCallback)on_repo_fetched, mgr); return 0; }