[epiphany/wip/sync] synchronizable: Add more methods
- From: Gabriel Ivașcu <gabrielivascu src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [epiphany/wip/sync] synchronizable: Add more methods
- Date: Tue, 21 Mar 2017 17:47:05 +0000 (UTC)
commit 27cac02031dfabece410f230e68ef2269e46fd6c
Author: Gabriel Ivascu <ivascu gabriel59 gmail com>
Date: Tue Mar 21 13:33:41 2017 +0200
synchronizable: Add more methods
src/sync/ephy-synchronizable.c | 99 ++++++++++++++++++++++++++++++++++++++++
src/sync/ephy-synchronizable.h | 36 +++++++++++----
2 files changed, 126 insertions(+), 9 deletions(-)
---
diff --git a/src/sync/ephy-synchronizable.c b/src/sync/ephy-synchronizable.c
index 6a722b1..be305fb 100644
--- a/src/sync/ephy-synchronizable.c
+++ b/src/sync/ephy-synchronizable.c
@@ -33,6 +33,10 @@ static void
ephy_synchronizable_default_init (EphySynchronizableInterface *iface)
{
iface->get_id = ephy_synchronizable_get_id;
+ iface->get_modification_time = ephy_synchronizable_get_modification_time;
+ iface->set_modification_time = ephy_synchronizable_set_modification_time;
+ iface->is_uploaded = ephy_synchronizable_is_uploaded;
+ iface->set_is_uploaded = ephy_synchronizable_set_is_uploaded;
iface->to_bso = ephy_synchronizable_to_bso;
g_object_interface_install_property (iface,
@@ -63,6 +67,101 @@ ephy_synchronizable_get_id (EphySynchronizable *synchronizable)
}
/**
+ * ephy_synchronizable_set_id:
+ * @synchronizable: an #EphySynchronizable
+ * @id: @synchronizable's new id
+ *
+ * Sets @id as @synchronizable's id.
+ **/
+void
+ephy_synchronizable_set_id (EphySynchronizable *synchronizable,
+ const char *id)
+{
+ EphySynchronizableInterface *iface;
+
+ g_return_if_fail (EPHY_IS_SYNCHRONIZABLE (synchronizable));
+
+ iface = EPHY_SYNCHRONIZABLE_GET_IFACE (synchronizable);
+ return iface->set_id (synchronizable, id);
+}
+
+/**
+ * ephy_synchronizable_get_modification_time:
+ * @synchronizable: an #EphySynchronizable
+ *
+ * Returns @synchronizable's last modification time.
+ *
+ * Return value: @synchronizable's last modification time
+ **/
+double
+ephy_synchronizable_get_modification_time (EphySynchronizable *synchronizable)
+{
+ EphySynchronizableInterface *iface;
+
+ g_return_val_if_fail (EPHY_IS_SYNCHRONIZABLE (synchronizable), 0);
+
+ iface = EPHY_SYNCHRONIZABLE_GET_IFACE (synchronizable);
+ return iface->get_modification_time (synchronizable);
+}
+
+/**
+ * ephy_synchronizable_set_modification_time:
+ * @synchronizable: an #EphySynchronizable
+ * @modified: the last modification time
+ *
+ * Sets @modified as @synchronizable's last modification time.
+ **/
+void
+ephy_synchronizable_set_modification_time (EphySynchronizable *synchronizable,
+ double modified)
+{
+ EphySynchronizableInterface *iface;
+
+ g_return_if_fail (EPHY_IS_SYNCHRONIZABLE (synchronizable));
+
+ iface = EPHY_SYNCHRONIZABLE_GET_IFACE (synchronizable);
+ return iface->set_modification_time (synchronizable, modified);
+}
+
+/**
+ * ephy_synchronizable_is_uploaded:
+ * @synchronizable: an #EphySynchronizable
+ *
+ * Returns TRUE is @synchronizable is uploaded to server, FALSE otherwise.
+ *
+ * Return value: TRUE if @synchronizable is uploaded, FALSE otherwise
+ **/
+gboolean
+ephy_synchronizable_is_uploaded (EphySynchronizable *synchronizable)
+{
+ EphySynchronizableInterface *iface;
+
+ g_return_val_if_fail (EPHY_IS_SYNCHRONIZABLE (synchronizable), FALSE);
+
+ iface = EPHY_SYNCHRONIZABLE_GET_IFACE (synchronizable);
+ return iface->is_uploaded (synchronizable);
+}
+
+/**
+ * ephy_synchronizable_set_is_uploaded:
+ * @synchronizable: an #EphySynchronizable
+ * @uploaded: TRUE if @synchronizable is uploaded to server, FALSE otherwise
+ *
+ * Sets @synchronizable's uploaded flag.
+ **/
+void
+ephy_synchronizable_set_is_uploaded (EphySynchronizable *synchronizable,
+ gboolean uploaded)
+{
+ EphySynchronizableInterface *iface;
+
+ g_return_if_fail (EPHY_IS_SYNCHRONIZABLE (synchronizable));
+
+ iface = EPHY_SYNCHRONIZABLE_GET_IFACE (synchronizable);
+ return iface->set_is_uploaded (synchronizable, uploaded);
+}
+
+/**
* ephy_synchronizable_to_bso:
* @synchronizable: an #EphySynchronizable
* @error: return location for a #GError, or %NULL
diff --git a/src/sync/ephy-synchronizable.h b/src/sync/ephy-synchronizable.h
index 6263d4e..4a4a4dd 100644
--- a/src/sync/ephy-synchronizable.h
+++ b/src/sync/ephy-synchronizable.h
@@ -36,19 +36,37 @@ G_DECLARE_INTERFACE (EphySynchronizable, ephy_synchronizable, EPHY, SYNCHRONIZAB
struct _EphySynchronizableInterface {
GTypeInterface parent_iface;
- const char * (*get_id) (EphySynchronizable *synchronizable);
+ const char * (*get_id) (EphySynchronizable *synchronizable);
+ void (*set_id) (EphySynchronizable *synchronizable,
+ const char *id);
- char * (*to_bso) (EphySynchronizable *synchronizable,
- GError **error);
+ double (*get_modification_time) (EphySynchronizable *synchronizable);
+ void (*set_modification_time) (EphySynchronizable *synchronizable,
+ double modified);
+
+ gboolean (*is_uploaded) (EphySynchronizable *synchronizable);
+ void (*set_is_uploaded) (EphySynchronizable *synchronizable,
+ gboolean uploaded);
+
+ char * (*to_bso) (EphySynchronizable *synchronizable,
+ GError **error);
};
-const char *ephy_synchronizable_get_id (EphySynchronizable *synchronizable);
-char *ephy_synchronizable_to_bso (EphySynchronizable *synchronizable,
- GError **error);
+const char *ephy_synchronizable_get_id (EphySynchronizable *synchronizable);
+void ephy_synchronizable_set_id (EphySynchronizable *synchronizable,
+ const char *id);
+double ephy_synchronizable_get_modification_time (EphySynchronizable *synchronizable);
+void ephy_synchronizable_set_modification_time (EphySynchronizable *synchronizable,
+ double modified);
+gboolean ephy_synchronizable_is_uploaded (EphySynchronizable *synchronizable);
+void ephy_synchronizable_set_is_uploaded (EphySynchronizable *synchronizable,
+ gboolean uploaded);
+char *ephy_synchronizable_to_bso (EphySynchronizable *synchronizable,
+ GError **error);
/* This can't be an interface method because we lack the EphySynchronizable object.
* Think of it as more of an utility function. */
-GObject *ephy_synchronizable_from_bso (JsonObject *bso,
- GType gtype,
- GError **error);
+GObject *ephy_synchronizable_from_bso (JsonObject *bso,
+ GType gtype,
+ GError **error);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]