#ifndef DB_CLIENT_TABLE_H #define DB_CLIENT_TABLE_H #include "db.h" #include "table.h" typedef void (*db_client_table_done_callback)(DBClientID db_client_id, void *user_context); /** * Remove a client from the db clients table. * * @param db_handle Database handle. * @param db_client_id The database client ID to remove. * @param retry Information about retrying the request to the database. * @param done_callback Function to be called when database returns result. * @param user_context Data that will be passed to done_callback and * fail_callback. * @return Void. * */ void db_client_table_remove(DBHandle *db_handle, DBClientID db_client_id, RetryInfo *retry, db_client_table_done_callback done_callback, void *user_context); /* * ==== Subscribing to the db client table ==== */ /* Callback for subscribing to the db client table. */ typedef void (*db_client_table_subscribe_callback)(DBClientID db_client_id, const char *client_type, const char *aux_address, bool is_insertion, void *user_context); /** * Register a callback for a db client table event. * * @param db_handle Database handle. * @param subscribe_callback Callback that will be called when the db client * table is updated. * @param subscribe_context Context that will be passed into the * subscribe_callback. * @param retry Information about retrying the request to the database. * @param done_callback Function to be called when database returns result. * @param user_context Data that will be passed to done_callback and * fail_callback. * @return Void. */ void db_client_table_subscribe( DBHandle *db_handle, db_client_table_subscribe_callback subscribe_callback, void *subscribe_context, RetryInfo *retry, db_client_table_done_callback done_callback, void *user_context); /* Data that is needed to register db client table subscribe callbacks with the * state database. */ typedef struct { db_client_table_subscribe_callback subscribe_callback; void *subscribe_context; } DBClientTableSubscribeData; #endif /* DB_CLIENT_TABLE_H */