summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Hughes <richard@hughsie.com>2016-12-15 12:29:09 +0000
committerRichard Hughes <richard@hughsie.com>2016-12-15 12:29:09 +0000
commit57d10b243cb5f197cccb5c149e85c005f12b1956 (patch)
tree8da228467e94252e4576f95de404401ce9748a5f
parent70b7d53797851701bb1592da0ff582f98cf87e45 (diff)
downloadappstream-glib-57d10b243cb5f197cccb5c149e85c005f12b1956.tar.gz
Add as_release_state_to_string()
-rw-r--r--libappstream-glib/as-release.c40
-rw-r--r--libappstream-glib/as-release.h3
2 files changed, 43 insertions, 0 deletions
diff --git a/libappstream-glib/as-release.c b/libappstream-glib/as-release.c
index 35694c2..7ee7481 100644
--- a/libappstream-glib/as-release.c
+++ b/libappstream-glib/as-release.c
@@ -139,6 +139,46 @@ as_release_class_init (AsReleaseClass *klass)
}
/**
+ * as_release_state_from_string:
+ * @state: a string
+ *
+ * Converts the text representation to an enumerated value.
+ *
+ * Return value: A #AsReleaseState, e.g. %AS_RELEASE_STATE_INSTALLED.
+ *
+ * Since: 0.6.6
+ **/
+AsReleaseState
+as_release_state_from_string (const gchar *state)
+{
+ if (g_strcmp0 (state, "installed") == 0)
+ return AS_RELEASE_STATE_INSTALLED;
+ if (g_strcmp0 (state, "available") == 0)
+ return AS_RELEASE_STATE_AVAILABLE;
+ return AS_APP_MERGE_KIND_NONE;
+}
+
+/**
+ * as_release_state_to_string:
+ * @state: the #AsReleaseState, e.g. %AS_RELEASE_STATE_INSTALLED
+ *
+ * Converts the enumerated value to an text representation.
+ *
+ * Returns: string version of @state, or %NULL for unknown
+ *
+ * Since: 0.6.6
+ **/
+const gchar *
+as_release_state_to_string (AsReleaseState state)
+{
+ if (state == AS_RELEASE_STATE_INSTALLED)
+ return "installed";
+ if (state == AS_RELEASE_STATE_AVAILABLE)
+ return "available";
+ return NULL;
+}
+
+/**
* as_release_vercmp:
* @rel1: a #AsRelease instance.
* @rel2: a #AsRelease instance.
diff --git a/libappstream-glib/as-release.h b/libappstream-glib/as-release.h
index 402fbc7..326a5c1 100644
--- a/libappstream-glib/as-release.h
+++ b/libappstream-glib/as-release.h
@@ -69,6 +69,9 @@ AsRelease *as_release_new (void);
gint as_release_vercmp (AsRelease *rel1,
AsRelease *rel2);
+AsReleaseState as_release_state_from_string (const gchar *state);
+const gchar *as_release_state_to_string (AsReleaseState state);
+
/* getters */
const gchar *as_release_get_version (AsRelease *release);
GBytes *as_release_get_blob (AsRelease *release,