From 02f3d3565602146bbbfce85b2719246f24036cb9 Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Tue, 9 Apr 2024 11:24:01 -0400 Subject: Massive restructure and many changes - The server-side list concept is still a wip Signed-off-by: Andrew Opalach --- src/libclient/client.c | 37 ++++++++++++++++++++++++++++++------- src/libclient/client.h | 4 +++- src/libclient/meson.build | 2 +- 3 files changed, 34 insertions(+), 9 deletions(-) (limited to 'src/libclient') diff --git a/src/libclient/client.c b/src/libclient/client.c index bf22fee..cd0bdf5 100644 --- a/src/libclient/client.c +++ b/src/libclient/client.c @@ -1,6 +1,6 @@ #include -#include "../tree/common.h" +#include "../server/common.h" #include "client.h" @@ -15,8 +15,8 @@ static void connection_callback(void *userdata, struct aki_rpc_connection *conn) { struct camu_client *client = (struct camu_client *)userdata; client->conn = conn; - struct aki_packet *packet = aki_rpc_get_packet(&client->client, TREE_CMD_IDENTIFY); - aki_packet_write_u8(packet, TREE_CLIENT); + struct aki_packet *packet = aki_rpc_get_packet(&client->client, CAMU_SRV_IDENTIFY); + aki_packet_write_u8(packet, CAMU_CLIENT); aki_packet_write_str(packet, &client->username); aki_rpc_connection_command(client->conn, packet, identifed_callback, client); } @@ -78,7 +78,7 @@ static bool update_state_command_callback(void *userdata, struct aki_rpc_connect } static struct aki_rpc_command commands[] = { - { .op = TREE_CMD_UPDATE_STATE, .callback = update_state_command_callback, .userdata = NULL } + { .op = CAMU_CONN_STATE, .callback = update_state_command_callback, .userdata = NULL } }; bool camu_client_init(struct camu_client *client, struct aki_event_loop *loop, @@ -125,11 +125,13 @@ static void create_search_callback(void *userdata, struct aki_packet *packet) void camu_client_create_search(struct camu_client *client, str *module, str *query) { + /* struct aki_packet *packet = aki_rpc_get_packet(&client->client, TREE_CMD_CREATE_SEARCH); aki_packet_write_str(packet, module); aki_packet_write_str(packet, query); packet->userdata = create_search_callback; aki_packet_pool_submit(&client->pool, packet); + */ } static struct camu_search *get_search_from_id(struct camu_client *client, s32 id) @@ -145,6 +147,7 @@ static void results_callback(void *userdata, struct aki_packet *packet) { struct camu_client *client = (struct camu_client *)userdata; + // We still get the requested id even if there was an error. s32 id = aki_packet_read_s32(packet); s32 ok = aki_packet_read_s32(packet); @@ -192,28 +195,48 @@ static void results_callback(void *userdata, struct aki_packet *packet) void camu_client_get_page(struct camu_client *client, struct camu_search *search, u32 num) { + /* struct aki_packet *packet = aki_rpc_get_packet(&client->client, TREE_CMD_GET_PAGE); aki_packet_write_s32(packet, search->id); aki_packet_write_u32(packet, num); packet->userdata = results_callback; aki_packet_pool_submit(&client->pool, packet); + */ } -void camu_client_add(struct camu_client *client, str *unique_id, u32 index) +void camu_client_add(struct camu_client *client, str *unique_id, u32 index, bool set) { - struct aki_packet *packet = aki_rpc_get_packet(&client->client, TREE_CMD_ADD); + /* + struct aki_packet *packet = aki_rpc_get_packet(&client->client, TREE_CMD_LIST_ACTION); + aki_packet_write_u8(packet, TREE_LIST_ADD); aki_packet_write_str(packet, unique_id); aki_packet_write_u32(packet, index); + aki_packet_write_u8(packet, set); packet->userdata = NULL; aki_packet_pool_submit(&client->pool, packet); + */ } void camu_client_skip(struct camu_client *client, s32 n) { - struct aki_packet *packet = aki_rpc_get_packet(&client->client, TREE_CMD_SKIP); + /* + struct aki_packet *packet = aki_rpc_get_packet(&client->client, TREE_CMD_LIST_ACTION); + aki_packet_write_u8(packet, TREE_LIST_SKIP); aki_packet_write_s32(packet, n); packet->userdata = NULL; aki_packet_pool_submit(&client->pool, packet); + */ +} + +void camu_client_skipto(struct camu_client *client, s32 i) +{ + /* + struct aki_packet *packet = aki_rpc_get_packet(&client->client, TREE_CMD_LIST_ACTION); + aki_packet_write_u8(packet, TREE_LIST_SKIPTO); + aki_packet_write_s32(packet, i); + packet->userdata = NULL; + aki_packet_pool_submit(&client->pool, packet); + */ } void camu_client_close(struct camu_client *client) diff --git a/src/libclient/client.h b/src/libclient/client.h index 68b0826..98276f2 100644 --- a/src/libclient/client.h +++ b/src/libclient/client.h @@ -54,7 +54,9 @@ bool camu_client_init(struct camu_client *client, struct aki_event_loop *loop, void (*callback)(void *, u8, void *), void *userdata); bool camu_client_login(struct camu_client *client, str *username, str *addr, s32 port); void camu_client_create_search(struct camu_client *client, str *module, str *query); +void camu_client_create_browse(struct camu_client *client); void camu_client_get_page(struct camu_client *client, struct camu_search *search, u32 num); -void camu_client_add(struct camu_client *client, str *unique_id, u32 index); +void camu_client_add(struct camu_client *client, str *unique_id, u32 index, bool set); void camu_client_skip(struct camu_client *client, s32 n); +void camu_client_skipto(struct camu_client *client, s32 i); void camu_client_close(struct camu_client *client); diff --git a/src/libclient/meson.build b/src/libclient/meson.build index a2f23b0..dff4014 100644 --- a/src/libclient/meson.build +++ b/src/libclient/meson.build @@ -1,3 +1,3 @@ libclient_src = ['client.c', 'resource_client.c'] -libclient_deps = [shoki] +libclient_deps = [portal] libclient = declare_dependency(sources: libclient_src, dependencies: libclient_deps) -- cgit v1.2.3-101-g0448