]> git.ipfire.org Git - pakfire.git/commitdiff
client: Add a ready callback
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 25 Jun 2025 09:23:24 +0000 (09:23 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 25 Jun 2025 09:23:24 +0000 (09:23 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/pakfire/client.c
src/pakfire/client.h

index 5fe8553b52e85f538c820d356bd82481c77af6dd..5c2b09f3136f353412af9f3213faf282c9889e06 100644 (file)
@@ -80,6 +80,13 @@ struct pakfire_client {
        // URL
        char url[PATH_MAX];
 
+       // Ready
+       struct pakfire_client_ready {
+               // Callback
+               pakfire_client_ready_callback callback;
+               void* data;
+       } ready;
+
        // Authentication
        struct pakfire_client_auth {
                // Tokens
@@ -309,6 +316,12 @@ const char* pakfire_client_get_url(struct pakfire_client* self) {
 
 // Run
 
+void pakfire_client_set_ready_callback(struct pakfire_client* self,
+               pakfire_client_ready_callback callback, void* data) {
+       self->ready.callback = callback;
+       self->ready.data     = data;
+}
+
 int pakfire_client_run(struct pakfire_client* self) {
        return pakfire_httpclient_run(self->httpclient, NULL);
 }
index c35d9f2830fa3acca684b6b7ff412154cc8e9f37..b7b9b11efb75be3468d9b260dcf9a28ce0b6e35c 100644 (file)
@@ -38,6 +38,11 @@ const char* pakfire_client_get_url(struct pakfire_client* client);
 
 // Run!
 
+typedef int (*pakfire_client_ready_callback)(struct pakfire_client* client, void* data);
+
+void pakfire_client_set_ready_callback(struct pakfire_client* self,
+       pakfire_client_ready_callback callback, void* data);
+
 int pakfire_client_run(struct pakfire_client* self);
 
 // Authentication