implemented CommonQueries
This commit is contained in:
@@ -230,13 +230,13 @@ static Result(void) ClientCLI_selectServerFromCache(ClientCLI* self){
|
||||
idb_lockTable(self->servers.table);
|
||||
Defer(idb_unlockTable(self->servers.table));
|
||||
|
||||
u32 servers_count = self->servers.list.len;
|
||||
if(servers_count == 0){
|
||||
u32 server_count = self->servers.list.len;
|
||||
if(server_count == 0){
|
||||
printf("No servers found in cache\n");
|
||||
Return RESULT_VOID;
|
||||
}
|
||||
|
||||
for(u32 id = 0; id < servers_count; id++){
|
||||
for(u32 id = 0; id < server_count; id++){
|
||||
ServerInfo* server = self->servers.list.data + id;
|
||||
printf("[%02u] "FMT_str" "FMT_str"\n",
|
||||
id, server->address_len, server->address, server->name_len, server->name);
|
||||
@@ -256,7 +256,7 @@ static Result(void) ClientCLI_selectServerFromCache(ClientCLI* self){
|
||||
if(sscanf(buf, FMT_u32, &id) != 1){
|
||||
printf("ERROR: not a number\n");
|
||||
}
|
||||
else if(id >= servers_count){
|
||||
else if(id >= server_count){
|
||||
printf("ERROR: not a server number: %u\n", id);
|
||||
}
|
||||
else break;
|
||||
@@ -316,9 +316,9 @@ static Result(void) ClientCLI_openUserDB(ClientCLI* self){
|
||||
|
||||
str username = Client_getUserName(self->client);
|
||||
Array(u8) user_data_key = Client_getUserDataKey(self->client);
|
||||
str user_db_dir = str_from_cstr(strcat_malloc("client-db", path_seps, username.data));
|
||||
Defer(free(user_db_dir.data));
|
||||
try(self->db, p, idb_open(user_db_dir, user_data_key));
|
||||
str user_db_path = str_from_cstr(strcat_malloc("client-db", path_seps, username.data));
|
||||
Defer(free(user_db_path.data));
|
||||
try(self->db, p, idb_open(user_db_path, user_data_key));
|
||||
|
||||
// Lock DB until this function returns.
|
||||
idb_lockDB(self->db);
|
||||
@@ -339,11 +339,11 @@ static Result(void) ClientCLI_openUserDB(ClientCLI* self){
|
||||
);
|
||||
|
||||
// build address-id map
|
||||
try(u64 servers_count, u,
|
||||
try(i64 server_count, u,
|
||||
idb_getRowCount(self->servers.table, false)
|
||||
);
|
||||
HashMap_construct(&self->servers.addr_id_map, u64, NULL);
|
||||
for(u64 id = 0; id < servers_count; id++){
|
||||
HashMap_construct(&self->servers.addr_id_map, i64, NULL);
|
||||
for(i64 id = 0; id < server_count; id++){
|
||||
ServerInfo* server = self->servers.list.data + id;
|
||||
str key = str_construct(server->address, server->address_len, true);
|
||||
if(!HashMap_tryPush(&self->servers.addr_id_map, key, &id)){
|
||||
@@ -391,11 +391,11 @@ static Result(ServerInfo*) ClientCLI_saveServerInfo(ClientCLI* self,
|
||||
|
||||
// try find server id in cache
|
||||
ServerInfo* cached_row_ptr = NULL;
|
||||
u64* id_ptr = NULL;
|
||||
i64* id_ptr = NULL;
|
||||
id_ptr = HashMap_tryGetPtr(&self->servers.addr_id_map, addr);
|
||||
if(id_ptr){
|
||||
// update existing server
|
||||
u64 id = *id_ptr;
|
||||
i64 id = *id_ptr;
|
||||
try_void(idb_updateRow(self->servers.table, id, &server, false));
|
||||
try_assert(id < self->servers.list.len);
|
||||
cached_row_ptr = self->servers.list.data + id;
|
||||
@@ -403,7 +403,7 @@ static Result(ServerInfo*) ClientCLI_saveServerInfo(ClientCLI* self,
|
||||
}
|
||||
else {
|
||||
// push new server
|
||||
try(u64 id, u, idb_pushRow(self->servers.table, &server, false));
|
||||
try(i64 id, u, idb_pushRow(self->servers.table, &server, false));
|
||||
try_assert(id == self->servers.list.len);
|
||||
List_ServerInfo_pushMany(&self->servers.list, &server, 1);
|
||||
cached_row_ptr = self->servers.list.data + id;
|
||||
@@ -416,10 +416,10 @@ static Result(ServerInfo*) ClientCLI_saveServerInfo(ClientCLI* self,
|
||||
static Result(void) ClientCLI_register(ClientCLI* self){
|
||||
Deferral(8);
|
||||
|
||||
u64 user_id = 0;
|
||||
i64 user_id = 0;
|
||||
try_void(Client_register(self->client, &user_id));
|
||||
printf("Registered successfully\n");
|
||||
printf("user_id: "FMT_u64"\n", user_id);
|
||||
printf("user_id: "FMT_i64"\n", user_id);
|
||||
// TODO: use user_id somewhere
|
||||
|
||||
Return RESULT_VOID;
|
||||
@@ -428,10 +428,10 @@ static Result(void) ClientCLI_register(ClientCLI* self){
|
||||
static Result(void) ClientCLI_login(ClientCLI* self){
|
||||
Deferral(8);
|
||||
|
||||
u64 user_id = 0, landing_channel_id = 0;
|
||||
i64 user_id = 0, landing_channel_id = 0;
|
||||
try_void(Client_login(self->client, &user_id, &landing_channel_id));
|
||||
printf("Authorized successfully\n");
|
||||
printf("user_id: "FMT_u64", landing_channel_id: "FMT_u64"\n", user_id, landing_channel_id);
|
||||
printf("user_id: "FMT_i64", landing_channel_id: "FMT_i64"\n", user_id, landing_channel_id);
|
||||
// TODO: use user_id, landing_channel_id somewhere
|
||||
|
||||
Return RESULT_VOID;
|
||||
|
||||
Reference in New Issue
Block a user