summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2016-01-19 15:05:06 +0100
committerAlexander Larsson <alexl@redhat.com>2016-01-19 15:05:06 +0100
commit2bede3495290febc1d81e0e4d700ae641ff3b034 (patch)
tree916ecd38e7e0c972f216f1a36359936ff434525a /lib
parent1a4f257cbd3eaade978c27bd09286128b5d9fb26 (diff)
downloadxdg-app-2bede3495290febc1d81e0e4d700ae641ff3b034.tar.gz
lib: Add getter for installed size on InstalledRef
Diffstat (limited to 'lib')
-rw-r--r--lib/test-lib.c15
-rw-r--r--lib/xdg-app-installation.c8
-rw-r--r--lib/xdg-app-installed-ref-private.h3
-rw-r--r--lib/xdg-app-installed-ref.c31
-rw-r--r--lib/xdg-app-installed-ref.h15
5 files changed, 56 insertions, 16 deletions
diff --git a/lib/test-lib.c b/lib/test-lib.c
index 5e55f51..6b2a14a 100644
--- a/lib/test-lib.c
+++ b/lib/test-lib.c
@@ -104,7 +104,7 @@ main (int argc, char *argv[])
for (i = 0; i < updates->len; i++)
{
XdgAppInstalledRef *ref = g_ptr_array_index(updates,i);
- g_print ("%d %s %s %s %s %s %s %s %d\n",
+ g_print ("%d %s %s %s %s %s %s %s %d %"G_GUINT64_FORMAT"\n",
xdg_app_ref_get_kind (XDG_APP_REF(ref)),
xdg_app_ref_get_name (XDG_APP_REF(ref)),
xdg_app_ref_get_arch (XDG_APP_REF(ref)),
@@ -113,7 +113,8 @@ main (int argc, char *argv[])
xdg_app_installed_ref_get_latest_commit (ref),
xdg_app_installed_ref_get_origin (ref),
xdg_app_installed_ref_get_deploy_dir (ref),
- xdg_app_installed_ref_get_is_current (ref));
+ xdg_app_installed_ref_get_is_current (ref),
+ xdg_app_installed_ref_get_installed_size (ref));
}
}
}
@@ -128,7 +129,7 @@ main (int argc, char *argv[])
for (i = 0; i < refs->len; i++)
{
XdgAppInstalledRef *ref = g_ptr_array_index(refs,i);
- g_print ("%d %s %s %s %s %s %s %s %d\n",
+ g_print ("%d %s %s %s %s %s %s %s %d %"G_GUINT64_FORMAT"\n",
xdg_app_ref_get_kind (XDG_APP_REF(ref)),
xdg_app_ref_get_name (XDG_APP_REF(ref)),
xdg_app_ref_get_arch (XDG_APP_REF(ref)),
@@ -137,7 +138,8 @@ main (int argc, char *argv[])
xdg_app_installed_ref_get_latest_commit (ref),
xdg_app_installed_ref_get_origin (ref),
xdg_app_installed_ref_get_deploy_dir (ref),
- xdg_app_installed_ref_get_is_current (ref));
+ xdg_app_installed_ref_get_is_current (ref),
+ xdg_app_installed_ref_get_installed_size (ref));
}
}
@@ -153,7 +155,7 @@ main (int argc, char *argv[])
{
XdgAppInstalledRef *app = g_ptr_array_index(apps,i);
- g_print ("%d %s %s %s %s %s %s %s %d\n",
+ g_print ("%d %s %s %s %s %s %s %s %d %"G_GUINT64_FORMAT"\n",
xdg_app_ref_get_kind (XDG_APP_REF(app)),
xdg_app_ref_get_name (XDG_APP_REF(app)),
xdg_app_ref_get_arch (XDG_APP_REF(app)),
@@ -162,7 +164,8 @@ main (int argc, char *argv[])
xdg_app_installed_ref_get_latest_commit (app),
xdg_app_installed_ref_get_origin (app),
xdg_app_installed_ref_get_deploy_dir (app),
- xdg_app_installed_ref_get_is_current (app));
+ xdg_app_installed_ref_get_is_current (app),
+ xdg_app_installed_ref_get_installed_size (app));
g_print ("metadata:\n%s\n", xdg_app_installed_ref_load_metadata (app, NULL, NULL));
}
}
diff --git a/lib/xdg-app-installation.c b/lib/xdg-app-installation.c
index 72d5724..67134a7 100644
--- a/lib/xdg-app-installation.c
+++ b/lib/xdg-app-installation.c
@@ -216,6 +216,7 @@ get_ref (XdgAppInstallation *self,
g_autofree char *deploy_path = NULL;
g_autofree char *latest_commit = NULL;
gboolean is_current = FALSE;
+ guint64 installed_size = 0;
parts = g_strsplit (full_ref, "/", -1);
@@ -238,11 +239,18 @@ get_ref (XdgAppInstallation *self,
latest_commit = xdg_app_dir_read_latest (priv->dir, origin, full_ref, NULL, NULL);
+ if (!xdg_app_dir_get_installed_size (priv->dir,
+ commit, &installed_size,
+ cancellable,
+ NULL))
+ installed_size = 0;
+
return xdg_app_installed_ref_new (full_ref,
commit,
latest_commit,
origin,
deploy_path,
+ installed_size,
is_current);
}
diff --git a/lib/xdg-app-installed-ref-private.h b/lib/xdg-app-installed-ref-private.h
index fb5ca51..691f490 100644
--- a/lib/xdg-app-installed-ref-private.h
+++ b/lib/xdg-app-installed-ref-private.h
@@ -33,6 +33,7 @@ XdgAppInstalledRef *xdg_app_installed_ref_new (const char *full_ref,
const char *latest_commit,
const char *origin,
const char *deploy_dir,
- gboolean current);
+ guint64 installed_size,
+ gboolean current);
#endif /* __XDG_APP_INSTALLED_REF_PRIVATE_H__ */
diff --git a/lib/xdg-app-installed-ref.c b/lib/xdg-app-installed-ref.c
index 14bf394..9893194 100644
--- a/lib/xdg-app-installed-ref.c
+++ b/lib/xdg-app-installed-ref.c
@@ -34,6 +34,7 @@ struct _XdgAppInstalledRefPrivate
char *origin;
char *latest_commit;
char *deploy_dir;
+ guint64 installed_size;
};
G_DEFINE_TYPE_WITH_PRIVATE (XdgAppInstalledRef, xdg_app_installed_ref, XDG_APP_TYPE_REF)
@@ -44,7 +45,8 @@ enum {
PROP_IS_CURRENT,
PROP_ORIGIN,
PROP_LATEST_COMMIT,
- PROP_DEPLOY_DIR
+ PROP_DEPLOY_DIR,
+ PROP_INSTALLED_SIZE
};
static void
@@ -74,6 +76,10 @@ xdg_app_installed_ref_set_property (GObject *object,
priv->is_current = g_value_get_boolean (value);
break;
+ case PROP_INSTALLED_SIZE:
+ priv->installed_size = g_value_get_uint64 (value);
+ break;
+
case PROP_ORIGIN:
g_clear_pointer (&priv->origin, g_free);
priv->origin = g_value_dup_string (value);
@@ -110,6 +116,10 @@ xdg_app_installed_ref_get_property (GObject *object,
g_value_set_boolean (value, priv->is_current);
break;
+ case PROP_INSTALLED_SIZE:
+ g_value_set_uint64 (value, priv->installed_size);
+ break;
+
case PROP_ORIGIN:
g_value_set_string (value, priv->origin);
break;
@@ -145,6 +155,13 @@ xdg_app_installed_ref_class_init (XdgAppInstalledRefClass *klass)
FALSE,
G_PARAM_READWRITE));
g_object_class_install_property (object_class,
+ PROP_INSTALLED_SIZE,
+ g_param_spec_uint64 ("installed-size",
+ "",
+ "",
+ 0, G_MAXUINT64, 0,
+ G_PARAM_READWRITE));
+ g_object_class_install_property (object_class,
PROP_ORIGIN,
g_param_spec_string ("origin",
"",
@@ -204,6 +221,14 @@ xdg_app_installed_ref_get_is_current (XdgAppInstalledRef *self)
return priv->is_current;
}
+guint64
+xdg_app_installed_ref_get_installed_size (XdgAppInstalledRef *self)
+{
+ XdgAppInstalledRefPrivate *priv = xdg_app_installed_ref_get_instance_private (self);
+
+ return priv->installed_size;
+}
+
char *
xdg_app_installed_ref_load_metadata (XdgAppInstalledRef *self,
GCancellable *cancellable,
@@ -233,7 +258,8 @@ xdg_app_installed_ref_new (const char *full_ref,
const char *latest_commit,
const char *origin,
const char *deploy_dir,
- gboolean is_current)
+ guint64 installed_size,
+ gboolean is_current)
{
XdgAppRefKind kind = XDG_APP_REF_KIND_APP;
XdgAppInstalledRef *ref;
@@ -253,6 +279,7 @@ xdg_app_installed_ref_new (const char *full_ref,
"latest-commit", latest_commit,
"origin", origin,
"is-current", is_current,
+ "installed-size", installed_size,
"deploy-dir", deploy_dir,
NULL);
diff --git a/lib/xdg-app-installed-ref.h b/lib/xdg-app-installed-ref.h
index d97e0f4..94dbbab 100644
--- a/lib/xdg-app-installed-ref.h
+++ b/lib/xdg-app-installed-ref.h
@@ -48,12 +48,13 @@ typedef struct {
G_DEFINE_AUTOPTR_CLEANUP_FUNC(XdgAppInstalledRef, g_object_unref)
#endif
-XDG_APP_EXTERN const char *xdg_app_installed_ref_get_origin (XdgAppInstalledRef *self);
-XDG_APP_EXTERN const char *xdg_app_installed_ref_get_deploy_dir (XdgAppInstalledRef *self);
-XDG_APP_EXTERN const char *xdg_app_installed_ref_get_latest_commit (XdgAppInstalledRef *self);
-XDG_APP_EXTERN gboolean xdg_app_installed_ref_get_is_current (XdgAppInstalledRef *self);
-XDG_APP_EXTERN char *xdg_app_installed_ref_load_metadata (XdgAppInstalledRef *self,
- GCancellable *cancellable,
- GError **error);
+XDG_APP_EXTERN const char *xdg_app_installed_ref_get_origin (XdgAppInstalledRef *self);
+XDG_APP_EXTERN guint64 xdg_app_installed_ref_get_installed_size (XdgAppInstalledRef *self);
+XDG_APP_EXTERN const char *xdg_app_installed_ref_get_deploy_dir (XdgAppInstalledRef *self);
+XDG_APP_EXTERN const char *xdg_app_installed_ref_get_latest_commit (XdgAppInstalledRef *self);
+XDG_APP_EXTERN gboolean xdg_app_installed_ref_get_is_current (XdgAppInstalledRef *self);
+XDG_APP_EXTERN char *xdg_app_installed_ref_load_metadata (XdgAppInstalledRef *self,
+ GCancellable *cancellable,
+ GError **error);
#endif /* __XDG_APP_INSTALLED_REF_H__ */