};
struct cli_progressbar {
- struct pakfire_progress* progress;
+ pakfire_progress* progress;
// Output
FILE* f;
};
static int cli_progressbar_create(struct cli_progressbar** progressbar,
- struct pakfire_progress* progress, FILE* f) {
+ pakfire_progress* progress, FILE* f) {
struct cli_progressbar* p = NULL;
// Allocate some memory
}
static void __cli_progressbar_free(pakfire_ctx* ctx,
- struct pakfire_progress* progress, void* data) {
+ pakfire_progress* progress, void* data) {
struct cli_progressbar* progressbar = data;
cli_progressbar_free(progressbar);
return (void *)(intptr_t)r;
}
-static int cli_progressbar_start(pakfire_ctx* ctx, struct pakfire_progress* progress,
+static int cli_progressbar_start(pakfire_ctx* ctx, pakfire_progress* progress,
void* data, unsigned long int max_value) {
struct cli_progressbar* progressbar = data;
return pthread_create(&progressbar->renderer, NULL, cli_progressbar_renderer, progressbar);
}
-static int cli_progressbar_finish(pakfire_ctx* ctx, struct pakfire_progress* progress,
+static int cli_progressbar_finish(pakfire_ctx* ctx, pakfire_progress* progress,
void* data) {
struct cli_progressbar* progressbar = data;
void* retval = NULL;
return cli_progressbar_add_widget(p, cli_progressbar_transfer_speed, NULL, 0, NULL);
}
-int cli_setup_progressbar(pakfire_ctx* ctx, void* data, struct pakfire_progress* p) {
+int cli_setup_progressbar(pakfire_ctx* ctx, void* data, pakfire_progress* p) {
struct cli_progressbar* progressbar = NULL;
int r;
#include <pakfire/ctx.h>
#include <pakfire/progress.h>
-int cli_setup_progressbar(pakfire_ctx* ctx, void* data, struct pakfire_progress* p);
+int cli_setup_progressbar(pakfire_ctx* ctx, void* data, pakfire_progress* p);
#endif /* PAKFIRE_CLI_PROGRESSBAR_H */
struct pakfire_hashes hashes;
// Progress (when extracting)
- struct pakfire_progress* progress;
+ pakfire_progress* progress;
// Verify Status
int verify;
}
static int __pakfire_archive_extract(pakfire_archive* archive,
- const char* path, int flags, struct pakfire_progress* parent) {
+ const char* path, int flags, pakfire_progress* parent) {
pakfire_package* pkg = NULL;
char prefix[PATH_MAX] = "/";
struct archive* writer = NULL;
}
int pakfire_archive_extract(pakfire_archive* archive,
- const char* path, const int flags, struct pakfire_progress* parent) {
+ const char* path, const int flags, pakfire_progress* parent) {
return __pakfire_archive_extract(archive, path, flags, parent);
}
FILE* pakfire_archive_read(pakfire_archive* archive, const char* filename, int flags);
int pakfire_archive_extract(pakfire_archive* archive,
- const char* path, const int flags, struct pakfire_progress* parent);
+ const char* path, const int flags, pakfire_progress* parent);
const char* pakfire_archive_get_path(pakfire_archive* archive);
const char* pakfire_archive_get_filename(pakfire_archive* self);
struct archive_entry_linkresolver* linkresolver;
// Progress Status
- struct pakfire_progress* progress;
+ pakfire_progress* progress;
};
/*
self->progress.data = data;
}
-int pakfire_ctx_setup_progress(pakfire_ctx* self, struct pakfire_progress* progress) {
+int pakfire_ctx_setup_progress(pakfire_ctx* self, pakfire_progress* progress) {
if (!self->progress.callback)
return 0;
// Progress
typedef int (*pakfire_progress_callback)(pakfire_ctx* self,
- void* data, struct pakfire_progress* progress);
+ void* data, pakfire_progress* progress);
void pakfire_ctx_set_progress_callback(pakfire_ctx* self,
pakfire_progress_callback callback, void* data);
// Progress
-int pakfire_ctx_setup_progress(pakfire_ctx* self, struct pakfire_progress* progress);
+int pakfire_ctx_setup_progress(pakfire_ctx* self, pakfire_progress* progress);
// Pick Solution
int pakfire_filelist_walk(pakfire_filelist* list,
pakfire_filelist_walk_callback callback, void* data, int flags, const char* title) {
- struct pakfire_progress* progress = NULL;
+ pakfire_progress* progress = NULL;
int r = 0;
// Show progress when iterating over the filelist
Verifies all files on the filelist
*/
int pakfire_filelist_verify(pakfire_filelist* list, pakfire_filelist* errors) {
- struct pakfire_progress* progress = NULL;
+ pakfire_progress* progress = NULL;
int status;
int r;
sd_event_source* timer;
// Progress
- struct pakfire_progress* progress;
+ pakfire_progress* progress;
// How many transfers in parallel?
long unsigned max_parallel;
int pakfire_confirm(struct pakfire* pakfire, const char* message, const char* question);
int pakfire_pick_solution(struct pakfire* pakfire, struct pakfire_transaction* transaction);
-int pakfire_setup_progress(struct pakfire* pakfire, struct pakfire_progress* progress);
+int pakfire_setup_progress(struct pakfire* pakfire, pakfire_progress* progress);
const char* pakfire_get_distro_name(struct pakfire* pakfire);
const char* pakfire_get_distro_id(struct pakfire* pakfire);
int flags;
// Parent
- struct pakfire_progress* parent;
+ pakfire_progress* parent;
// Status
enum pakfire_progress_state {
unsigned long int max_value;
};
-static void pakfire_progress_free(struct pakfire_progress* p) {
+static void pakfire_progress_free(pakfire_progress* p) {
// Ensure this is finished
pakfire_progress_finish(p);
}
static int pakfire_progress_default_start_callback(pakfire_ctx* ctx,
- struct pakfire_progress* p, void* data, unsigned long int value) {
+ pakfire_progress* p, void* data, unsigned long int value) {
// Fetch the title
const char* title = pakfire_progress_get_title(p);
return 0;
}
-int pakfire_progress_create(struct pakfire_progress** progress,
- pakfire_ctx* ctx, int flags, struct pakfire_progress* parent) {
- struct pakfire_progress* p = NULL;
+int pakfire_progress_create(pakfire_progress** progress,
+ pakfire_ctx* ctx, int flags, pakfire_progress* parent) {
+ pakfire_progress* p = NULL;
int r;
// Allocate a new object
return r;
}
-struct pakfire_progress* pakfire_progress_ref(struct pakfire_progress* p) {
+pakfire_progress* pakfire_progress_ref(pakfire_progress* p) {
++p->nrefs;
return p;
}
-struct pakfire_progress* pakfire_progress_unref(struct pakfire_progress* p) {
+pakfire_progress* pakfire_progress_unref(pakfire_progress* p) {
if (--p->nrefs > 0)
return p;
return NULL;
}
-int pakfire_progress_has_flag(struct pakfire_progress* p, int flag) {
+int pakfire_progress_has_flag(pakfire_progress* p, int flag) {
return p->flags & flag;
}
Callback Configuration
*/
-void pakfire_progress_set_callback_data(struct pakfire_progress* p, void* data) {
+void pakfire_progress_set_callback_data(pakfire_progress* p, void* data) {
p->callbacks.data = data;
}
void pakfire_progress_set_start_callback(
- struct pakfire_progress* p, pakfire_progress_start_callback callback) {
+ pakfire_progress* p, pakfire_progress_start_callback callback) {
p->callbacks.start = callback;
}
void pakfire_progress_set_finish_callback(
- struct pakfire_progress* p, pakfire_progress_finish_callback callback) {
+ pakfire_progress* p, pakfire_progress_finish_callback callback) {
p->callbacks.finish = callback;
}
void pakfire_progress_set_update_callback(
- struct pakfire_progress* p, pakfire_progress_update_callback callback) {
+ pakfire_progress* p, pakfire_progress_update_callback callback) {
p->callbacks.update = callback;
}
void pakfire_progress_set_status_callback(
- struct pakfire_progress* p, pakfire_progress_status_callback callback) {
+ pakfire_progress* p, pakfire_progress_status_callback callback) {
p->callbacks.status = callback;
}
void pakfire_progress_set_free_callback(
- struct pakfire_progress* p, pakfire_progress_free_callback callback) {
+ pakfire_progress* p, pakfire_progress_free_callback callback) {
p->callbacks.free = callback;
}
-int pakfire_progress_start(struct pakfire_progress* p, unsigned long int value) {
+int pakfire_progress_start(pakfire_progress* p, unsigned long int value) {
int r;
// This can only be called once
return pakfire_progress_update(p, 0);
}
-int pakfire_progress_finish(struct pakfire_progress* p) {
+int pakfire_progress_finish(pakfire_progress* p) {
int r;
// Do nothing if already finished
return 0;
}
-int pakfire_progress_update(struct pakfire_progress* p, unsigned long int value) {
+int pakfire_progress_update(pakfire_progress* p, unsigned long int value) {
int r = 0;
// Report the change to the parent progress
return r;
}
-int pakfire_progress_increment(struct pakfire_progress* p, unsigned long int value) {
+int pakfire_progress_increment(pakfire_progress* p, unsigned long int value) {
return pakfire_progress_update(p, p->value + value);
}
-int pakfire_progress_reset(struct pakfire_progress* p) {
+int pakfire_progress_reset(pakfire_progress* p) {
int r;
switch (p->state) {
return 0;
}
-struct pakfire_progress* pakfire_progress_get_parent(struct pakfire_progress* p) {
+pakfire_progress* pakfire_progress_get_parent(pakfire_progress* p) {
if (p->parent)
return pakfire_progress_ref(p->parent);
return NULL;
}
-unsigned long int pakfire_progress_get_value(struct pakfire_progress* p) {
+unsigned long int pakfire_progress_get_value(pakfire_progress* p) {
return p->value;
}
-unsigned long int pakfire_progress_get_max_value(struct pakfire_progress* p) {
+unsigned long int pakfire_progress_get_max_value(pakfire_progress* p) {
return p->max_value;
}
-void pakfire_progress_set_max_value(struct pakfire_progress* p, unsigned long int value) {
+void pakfire_progress_set_max_value(pakfire_progress* p, unsigned long int value) {
p->max_value = value;
}
-const char* pakfire_progress_get_title(struct pakfire_progress* p) {
+const char* pakfire_progress_get_title(pakfire_progress* p) {
return p->title;
}
-int pakfire_progress_set_title(struct pakfire_progress* p, const char* format, ...) {
+int pakfire_progress_set_title(pakfire_progress* p, const char* format, ...) {
va_list args;
int r;
return 0;
}
-const char* pakfire_progress_get_status(struct pakfire_progress* p) {
+const char* pakfire_progress_get_status(pakfire_progress* p) {
if (!p->status)
return NULL;
return p->status[length - 1];
}
-int pakfire_progress_push_status(struct pakfire_progress* p, const char* format, ...) {
+int pakfire_progress_push_status(pakfire_progress* p, const char* format, ...) {
char status[256];
va_list args;
int r;
return 0;
}
-void pakfire_progress_pop_status(struct pakfire_progress* p) {
+void pakfire_progress_pop_status(pakfire_progress* p) {
const char* status = NULL;
// Remove the latest status
}
}
-double pakfire_progress_get_percentage(struct pakfire_progress* p) {
+double pakfire_progress_get_percentage(pakfire_progress* p) {
if (!p->max_value)
return 0;
return p->value * 100.0 / p->max_value;
}
-time_t pakfire_progress_get_elapsed_time(struct pakfire_progress* p) {
+time_t pakfire_progress_get_elapsed_time(pakfire_progress* p) {
struct timespec now;
int r;
return -1;
}
-time_t pakfire_progress_get_eta(struct pakfire_progress* p) {
+time_t pakfire_progress_get_eta(pakfire_progress* p) {
if (!p->value || !p->max_value)
return 0;
return t * p->max_value / p->value - t;
}
-double pakfire_progress_get_transfer_speed(struct pakfire_progress* p) {
+double pakfire_progress_get_transfer_speed(pakfire_progress* p) {
const time_t t = pakfire_progress_get_elapsed_time(p);
if (t <= 0)
return t;
#include <time.h>
-struct pakfire_progress;
+typedef struct pakfire_progress pakfire_progress;
#include <pakfire/ctx.h>
PAKFIRE_PROGRESS_SHOW_TRANSFER_SPEED = (1 << 6),
};
-int pakfire_progress_has_flag(struct pakfire_progress* p, int flag);
+int pakfire_progress_has_flag(pakfire_progress* p, int flag);
/*
Callbacks
*/
typedef int (*pakfire_progress_start_callback)
- (pakfire_ctx* ctx, struct pakfire_progress* progress, void* data, unsigned long int value);
+ (pakfire_ctx* ctx, pakfire_progress* progress, void* data, unsigned long int value);
typedef int (*pakfire_progress_finish_callback)
- (pakfire_ctx* ctx, struct pakfire_progress* progress, void* data);
+ (pakfire_ctx* ctx, pakfire_progress* progress, void* data);
typedef int (*pakfire_progress_update_callback)
- (pakfire_ctx* ctx, struct pakfire_progress* progress, void* data, unsigned long int value);
+ (pakfire_ctx* ctx, pakfire_progress* progress, void* data, unsigned long int value);
typedef int (*pakfire_progress_status_callback)
- (pakfire_ctx* ctx, struct pakfire_progress* progress, void* data, const char* status);
+ (pakfire_ctx* ctx, pakfire_progress* progress, void* data, const char* status);
typedef void (*pakfire_progress_free_callback)
- (pakfire_ctx* ctx, struct pakfire_progress* progress, void* data);
+ (pakfire_ctx* ctx, pakfire_progress* progress, void* data);
-void pakfire_progress_set_callback_data(struct pakfire_progress* p, void* data);
+void pakfire_progress_set_callback_data(pakfire_progress* p, void* data);
void pakfire_progress_set_start_callback(
- struct pakfire_progress* p, pakfire_progress_start_callback callback);
+ pakfire_progress* p, pakfire_progress_start_callback callback);
void pakfire_progress_set_finish_callback(
- struct pakfire_progress* p, pakfire_progress_finish_callback callback);
+ pakfire_progress* p, pakfire_progress_finish_callback callback);
void pakfire_progress_set_update_callback(
- struct pakfire_progress* p, pakfire_progress_update_callback callback);
+ pakfire_progress* p, pakfire_progress_update_callback callback);
void pakfire_progress_set_status_callback(
- struct pakfire_progress* p, pakfire_progress_status_callback callback);
+ pakfire_progress* p, pakfire_progress_status_callback callback);
void pakfire_progress_set_free_callback(
- struct pakfire_progress* p, pakfire_progress_free_callback callback);
+ pakfire_progress* p, pakfire_progress_free_callback callback);
-struct pakfire_progress* pakfire_progress_get_parent(struct pakfire_progress* p);
-unsigned long int pakfire_progress_get_value(struct pakfire_progress* p);
-unsigned long int pakfire_progress_get_max_value(struct pakfire_progress* p);
-double pakfire_progress_get_percentage(struct pakfire_progress* p);
-time_t pakfire_progress_get_elapsed_time(struct pakfire_progress* p);
-time_t pakfire_progress_get_eta(struct pakfire_progress* p);
-double pakfire_progress_get_transfer_speed(struct pakfire_progress* p);
+pakfire_progress* pakfire_progress_get_parent(pakfire_progress* p);
+unsigned long int pakfire_progress_get_value(pakfire_progress* p);
+unsigned long int pakfire_progress_get_max_value(pakfire_progress* p);
+double pakfire_progress_get_percentage(pakfire_progress* p);
+time_t pakfire_progress_get_elapsed_time(pakfire_progress* p);
+time_t pakfire_progress_get_eta(pakfire_progress* p);
+double pakfire_progress_get_transfer_speed(pakfire_progress* p);
-int pakfire_progress_create(struct pakfire_progress** progress,
- pakfire_ctx* ctx, int flags, struct pakfire_progress* parent);
+int pakfire_progress_create(pakfire_progress** progress,
+ pakfire_ctx* ctx, int flags, pakfire_progress* parent);
-struct pakfire_progress* pakfire_progress_ref(struct pakfire_progress* p);
-struct pakfire_progress* pakfire_progress_unref(struct pakfire_progress* p);
+pakfire_progress* pakfire_progress_ref(pakfire_progress* p);
+pakfire_progress* pakfire_progress_unref(pakfire_progress* p);
-int pakfire_progress_start(struct pakfire_progress* p, unsigned long int value);
-int pakfire_progress_finish(struct pakfire_progress* p);
-int pakfire_progress_update(struct pakfire_progress* p, unsigned long int value);
-int pakfire_progress_increment(struct pakfire_progress* p, unsigned long int value);
-int pakfire_progress_reset(struct pakfire_progress* p);
+int pakfire_progress_start(pakfire_progress* p, unsigned long int value);
+int pakfire_progress_finish(pakfire_progress* p);
+int pakfire_progress_update(pakfire_progress* p, unsigned long int value);
+int pakfire_progress_increment(pakfire_progress* p, unsigned long int value);
+int pakfire_progress_reset(pakfire_progress* p);
-const char* pakfire_progress_get_title(struct pakfire_progress* p);
-int pakfire_progress_set_title(struct pakfire_progress* p, const char* format, ...)
+const char* pakfire_progress_get_title(pakfire_progress* p);
+int pakfire_progress_set_title(pakfire_progress* p, const char* format, ...)
__attribute__((format(printf, 2, 3)));
-const char* pakfire_progress_get_status(struct pakfire_progress* p);
-int pakfire_progress_push_status(struct pakfire_progress* p, const char* format, ...)
+const char* pakfire_progress_get_status(pakfire_progress* p);
+int pakfire_progress_push_status(pakfire_progress* p, const char* format, ...)
__attribute__((format(printf, 2, 3)));
-void pakfire_progress_pop_status(struct pakfire_progress* p);
-void pakfire_progress_set_max_value(struct pakfire_progress* p, unsigned long int value);
+void pakfire_progress_pop_status(pakfire_progress* p);
+void pakfire_progress_set_max_value(pakfire_progress* p, unsigned long int value);
#endif /* PAKFIRE_PROGRESS_H */
struct pakfire_repo_scan_ctx {
// Progress
- struct pakfire_progress* progress;
+ pakfire_progress* progress;
// Flags
enum pakfire_repo_scan_flags {
size_t num;
// Progress
- struct pakfire_progress* progress;
+ pakfire_progress* progress;
// Changes for file conflicts
pakfire_packagelist* installed_packages;
int nrefs;
// Reference to the progress indicator
- struct pakfire_progress* progress;
+ pakfire_progress* progress;
// cURL handle
CURL* handle;
}
static int pakfire_xfer_prepare_progress(struct pakfire_xfer* xfer,
- struct pakfire_progress* parent, int flags) {
+ pakfire_progress* parent, int flags) {
const char* title = NULL;
int progress_flags =
PAKFIRE_PROGRESS_SHOW_PERCENTAGE |
return r;
}
-int pakfire_xfer_prepare(struct pakfire_xfer* xfer, struct pakfire_progress* progress, int flags) {
+int pakfire_xfer_prepare(struct pakfire_xfer* xfer, pakfire_progress* progress, int flags) {
int r;
// Increment tries
// Input
int pakfire_xfer_set_input(struct pakfire_xfer* xfer, FILE* f);
-int pakfire_xfer_prepare(struct pakfire_xfer* xfer, struct pakfire_progress* progress, int flags);
+int pakfire_xfer_prepare(struct pakfire_xfer* xfer, pakfire_progress* progress, int flags);
pakfire_xfer_error_code_t pakfire_xfer_done(struct pakfire_xfer* xfer, sd_event* loop, int code);
pakfire_xfer_error_code_t pakfire_xfer_run(struct pakfire_xfer* xfer, int flags);
// Progress Callback
static int Ctx_progress_start(pakfire_ctx* ctx,
- struct pakfire_progress* progress, void* data, unsigned long int value) {
+ pakfire_progress* progress, void* data, unsigned long int value) {
PyObject* ret = NULL;
PyObject* p = data;
int r = -1;
}
static int Ctx_progress_finish(pakfire_ctx* ctx,
- struct pakfire_progress* progress, void* data) {
+ pakfire_progress* progress, void* data) {
PyObject* ret = NULL;
PyObject* p = data;
int r = -1;
}
static int Ctx_progress_update(pakfire_ctx* ctx,
- struct pakfire_progress* progress, void* data, unsigned long int value) {
+ pakfire_progress* progress, void* data, unsigned long int value) {
PyObject* ret = NULL;
PyObject* p = data;
int r = -1;
}
static int Ctx_progress_status(pakfire_ctx* ctx,
- struct pakfire_progress* progress, void* data, const char* text) {
+ pakfire_progress* progress, void* data, const char* text) {
PyObject* ret = NULL;
PyObject* p = data;
int r = -1;
}
static void Ctx_progress_free(
- pakfire_ctx* ctx, struct pakfire_progress* progress, void* data) {
+ pakfire_ctx* ctx, pakfire_progress* progress, void* data) {
PyObject* p = data;
// Acquire the GIL
}
static int Ctx_progress_callback(
- pakfire_ctx* ctx, void* data, struct pakfire_progress* progress) {
+ pakfire_ctx* ctx, void* data, pakfire_progress* progress) {
PyObject* callback = data;
PyObject* p = NULL;
int r = -1;