mirror of
https://github.com/flatpak/flatpak.git
synced 2026-06-26 01:06:57 -04:00
transaction: Add flatpak_transaction_progress_get_bytes_per_second()
This commit is contained in:
@@ -74,6 +74,7 @@ void flatpak_progress_set_update_interval (FlatpakProgress *self,
|
||||
guint64 flatpak_progress_get_bytes_transferred (FlatpakProgress *self);
|
||||
guint64 flatpak_progress_get_transferred_extra_data_bytes (FlatpakProgress *self);
|
||||
guint64 flatpak_progress_get_start_time (FlatpakProgress *self);
|
||||
guint64 flatpak_progress_get_bytes_per_second (FlatpakProgress *self);
|
||||
const char *flatpak_progress_get_status (FlatpakProgress *self);
|
||||
int flatpak_progress_get_progress (FlatpakProgress *self);
|
||||
gboolean flatpak_progress_get_estimating (FlatpakProgress *self);
|
||||
|
||||
@@ -113,6 +113,7 @@ struct _FlatpakProgress
|
||||
/* Self-progress-reporting fields, not from OSTree */
|
||||
guint progress;
|
||||
guint last_total;
|
||||
guint64 bytes_per_second;
|
||||
|
||||
guint32 update_interval;
|
||||
|
||||
@@ -190,6 +191,7 @@ update_status_progress_and_estimating (FlatpakProgress *self)
|
||||
extra data, so ignore those */
|
||||
if (self->requested == 0)
|
||||
{
|
||||
self->bytes_per_second = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -209,6 +211,7 @@ update_status_progress_and_estimating (FlatpakProgress *self)
|
||||
{
|
||||
g_string_append (buf, self->ostree_status);
|
||||
new_progress = 100;
|
||||
self->bytes_per_second = 0;
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -302,9 +305,15 @@ update_status_progress_and_estimating (FlatpakProgress *self)
|
||||
|
||||
if (elapsed_time > 0) // Ignore first second
|
||||
{
|
||||
g_autofree gchar *formatted_bytes_sec = g_format_size (total_transferred / elapsed_time);
|
||||
g_autofree gchar *formatted_bytes_sec = NULL;
|
||||
self->bytes_per_second = total_transferred / elapsed_time;
|
||||
formatted_bytes_sec = g_format_size (self->bytes_per_second);
|
||||
g_string_append_printf (buf, " (%s/s)", formatted_bytes_sec);
|
||||
}
|
||||
else
|
||||
{
|
||||
self->bytes_per_second = 0;
|
||||
}
|
||||
|
||||
out:
|
||||
if (new_progress < self->progress && self->last_total == total)
|
||||
@@ -482,6 +491,12 @@ flatpak_progress_get_start_time (FlatpakProgress *self)
|
||||
return self->start_time;
|
||||
}
|
||||
|
||||
guint64
|
||||
flatpak_progress_get_bytes_per_second (FlatpakProgress *self)
|
||||
{
|
||||
return self->bytes_per_second;
|
||||
}
|
||||
|
||||
const char *
|
||||
flatpak_progress_get_status (FlatpakProgress *self)
|
||||
{
|
||||
|
||||
@@ -395,6 +395,22 @@ flatpak_transaction_progress_get_start_time (FlatpakTransactionProgress *self)
|
||||
return flatpak_progress_get_start_time (self->progress_obj);
|
||||
}
|
||||
|
||||
/**
|
||||
* flatpak_transaction_progress_get_bytes_per_second:
|
||||
* @self: a #FlatpakTransactionProgress
|
||||
*
|
||||
* Gets the current transfer speed in bytes per second. Returns 0 during
|
||||
* the first second of a transfer while the rate is being established.
|
||||
*
|
||||
* Returns: the current transfer rate in bytes per second
|
||||
* Since: 1.19.0
|
||||
*/
|
||||
guint64
|
||||
flatpak_transaction_progress_get_bytes_per_second (FlatpakTransactionProgress *self)
|
||||
{
|
||||
return flatpak_progress_get_bytes_per_second (self->progress_obj);
|
||||
}
|
||||
|
||||
static void
|
||||
flatpak_transaction_progress_finalize (GObject *object)
|
||||
{
|
||||
|
||||
@@ -175,6 +175,8 @@ FLATPAK_EXTERN
|
||||
guint64 flatpak_transaction_progress_get_bytes_transferred (FlatpakTransactionProgress *self);
|
||||
FLATPAK_EXTERN
|
||||
guint64 flatpak_transaction_progress_get_start_time (FlatpakTransactionProgress *self);
|
||||
FLATPAK_EXTERN
|
||||
guint64 flatpak_transaction_progress_get_bytes_per_second (FlatpakTransactionProgress *self);
|
||||
|
||||
|
||||
FLATPAK_EXTERN
|
||||
|
||||
Reference in New Issue
Block a user