[gnome-builder] doap: add load_from_data method
- From: Ignacio Casal Quinteiro <icq src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] doap: add load_from_data method
- Date: Sat, 23 Jan 2016 19:27:08 +0000 (UTC)
commit ea5500581be550d6bdab828ce131b25ffec6ef95
Author: Ignacio Casal Quinteiro <icq gnome org>
Date: Sat Jan 23 20:26:01 2016 +0100
doap: add load_from_data method
This is needed for gitg since it gets the file from the git
blob data.
libide/doap/ide-doap.c | 59 +++++++++++++++++++++++++++++++++++-------------
libide/doap/ide-doap.h | 4 +++
2 files changed, 47 insertions(+), 16 deletions(-)
---
diff --git a/libide/doap/ide-doap.c b/libide/doap/ide-doap.c
index add5b67..1bf0542 100644
--- a/libide/doap/ide-doap.c
+++ b/libide/doap/ide-doap.c
@@ -521,23 +521,11 @@ ide_doap_parse_maintainer (IdeDoap *self,
return TRUE;
}
-gboolean
-ide_doap_load_from_file (IdeDoap *self,
- GFile *file,
- GCancellable *cancellable,
- GError **error)
+static gboolean
+load_doap (IdeDoap *self,
+ XmlReader *reader,
+ GError **error)
{
- g_autoptr(XmlReader) reader = NULL;
-
- g_return_val_if_fail (IDE_IS_DOAP (self), FALSE);
- g_return_val_if_fail (G_IS_FILE (file), FALSE);
- g_return_val_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable), FALSE);
-
- reader = xml_reader_new ();
-
- if (!xml_reader_load_from_file (reader, file, cancellable, error))
- return FALSE;
-
if (!xml_reader_read_start_element (reader, "Project"))
{
g_set_error (error,
@@ -601,3 +589,42 @@ ide_doap_load_from_file (IdeDoap *self,
return TRUE;
}
+
+gboolean
+ide_doap_load_from_file (IdeDoap *self,
+ GFile *file,
+ GCancellable *cancellable,
+ GError **error)
+{
+ g_autoptr(XmlReader) reader = NULL;
+
+ g_return_val_if_fail (IDE_IS_DOAP (self), FALSE);
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+ g_return_val_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable), FALSE);
+
+ reader = xml_reader_new ();
+
+ if (!xml_reader_load_from_file (reader, file, cancellable, error))
+ return FALSE;
+
+ return load_doap (self, reader, error);
+}
+
+gboolean
+ide_doap_load_from_data (IdeDoap *self,
+ const gchar *data,
+ gsize length,
+ GError **error)
+{
+ g_autoptr(XmlReader) reader = NULL;
+
+ g_return_val_if_fail (IDE_IS_DOAP (self), FALSE);
+ g_return_val_if_fail (data != NULL, FALSE);
+
+ reader = xml_reader_new ();
+
+ if (!xml_reader_load_from_data (reader, (const gchar *)data, length, NULL, NULL))
+ return FALSE;
+
+ return load_doap (self, reader, error);
+}
diff --git a/libide/doap/ide-doap.h b/libide/doap/ide-doap.h
index 7faa574..0751313 100644
--- a/libide/doap/ide-doap.h
+++ b/libide/doap/ide-doap.h
@@ -41,6 +41,10 @@ gboolean ide_doap_load_from_file (IdeDoap *self,
GFile *file,
GCancellable *cancellable,
GError **error);
+gboolean ide_doap_load_from_data (IdeDoap *self,
+ const gchar *data,
+ gsize length,
+ GError **error);
const gchar *ide_doap_get_name (IdeDoap *self);
const gchar *ide_doap_get_shortdesc (IdeDoap *self);
const gchar *ide_doap_get_description (IdeDoap *self);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]