aboutsummaryrefslogtreecommitdiffstats
path: root/lib/history/ephy-history-service.h
diff options
context:
space:
mode:
authorXan Lopez <xlopez@igalia.com>2011-11-25 20:39:50 +0800
committerXan Lopez <xan@igalia.com>2012-03-07 04:49:42 +0800
commit374d66dd260b989f22eba25dad4fabc49da2d586 (patch)
treed32121ea4f1769a3a725c75f1cf01229cb533f95 /lib/history/ephy-history-service.h
parent77ee0fdf4c5383f2134608e741b73f51ef30f430 (diff)
downloadgsoc2013-epiphany-374d66dd260b989f22eba25dad4fabc49da2d586.tar
gsoc2013-epiphany-374d66dd260b989f22eba25dad4fabc49da2d586.tar.gz
gsoc2013-epiphany-374d66dd260b989f22eba25dad4fabc49da2d586.tar.bz2
gsoc2013-epiphany-374d66dd260b989f22eba25dad4fabc49da2d586.tar.lz
gsoc2013-epiphany-374d66dd260b989f22eba25dad4fabc49da2d586.tar.xz
gsoc2013-epiphany-374d66dd260b989f22eba25dad4fabc49da2d586.tar.zst
gsoc2013-epiphany-374d66dd260b989f22eba25dad4fabc49da2d586.zip
Add EphyHistoryService and helper classes
EphyHistoryService provides a high-level API to store history information. It will processed by a worker thread using SQLite to provide a fast, responsive service to the main UI. Based on the code by Martin Robinson (mrobinson@igalia.com) and Claudio Saavedra (csaavedra@igalia.com).
Diffstat (limited to 'lib/history/ephy-history-service.h')
-rw-r--r--lib/history/ephy-history-service.h70
1 files changed, 70 insertions, 0 deletions
diff --git a/lib/history/ephy-history-service.h b/lib/history/ephy-history-service.h
new file mode 100644
index 000000000..601d13b07
--- /dev/null
+++ b/lib/history/ephy-history-service.h
@@ -0,0 +1,70 @@
+/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2; -*- */
+/* vim: set sw=2 ts=2 sts=2 et: */
+/*
+ * Copyright © 2011 Igalia S.L.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#ifndef EPHY_HISTORY_SERVICE_H
+#define EPHY_HISTORY_SERVICE_H
+
+#include <glib-object.h>
+#include "ephy-history-types.h"
+
+G_BEGIN_DECLS
+
+/* convenience macros */
+#define EPHY_TYPE_HISTORY_SERVICE (ephy_history_service_get_type())
+#define EPHY_HISTORY_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),EPHY_TYPE_HISTORY_SERVICE,EphyHistoryService))
+#define EPHY_HISTORY_SERVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),EPHY_TYPE_HISTORY_SERVICE,EphyHistoryServiceClass))
+#define EPHY_IS_HISTORY_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),EPHY_TYPE_HISTORY_SERVICE))
+#define EPHY_IS_HISTORY_SERVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),EPHY_TYPE_HISTORY_SERVICE))
+#define EPHY_HISTORY_SERVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj),EPHY_TYPE_HISTORY_SERVICE,EphyHistoryServiceClass))
+
+typedef struct _EphyHistoryService EphyHistoryService;
+typedef struct _EphyHistoryServiceClass EphyHistoryServiceClass;
+typedef struct _EphyHistoryServicePrivate EphyHistoryServicePrivate;
+
+typedef void (*EphyHistoryJobCallback) (EphyHistoryService *service, gboolean success, gpointer result_data, gpointer user_data);
+
+struct _EphyHistoryService {
+ GObject parent;
+
+ /* private */
+ EphyHistoryServicePrivate *priv;
+};
+
+struct _EphyHistoryServiceClass {
+ GObjectClass parent_class;
+};
+
+GType ephy_history_service_get_type (void);
+EphyHistoryService * ephy_history_service_new (const char *history_filename);
+
+void ephy_history_service_add_visit (EphyHistoryService *self, EphyHistoryPageVisit *visit, EphyHistoryJobCallback callback, gpointer user_data);
+void ephy_history_service_add_visits (EphyHistoryService *self, GList *visits, EphyHistoryJobCallback callback, gpointer user_data);
+void ephy_history_service_find_visits_in_time (EphyHistoryService *self, gint64 from, gint64 to, EphyHistoryJobCallback callback, gpointer user_data);
+void ephy_history_service_query_visits (EphyHistoryService *self, EphyHistoryQuery *query, EphyHistoryJobCallback callback, gpointer user_data);
+void ephy_history_service_query_urls (EphyHistoryService *self, EphyHistoryQuery *query, EphyHistoryJobCallback callback, gpointer user_data);
+void ephy_history_service_set_url_title (EphyHistoryService *self, const char *url, const char *title, EphyHistoryJobCallback callback, gpointer user_data);
+void ephy_history_service_set_url_zoom_level (EphyHistoryService *self, const char *url, const double zoom_level, EphyHistoryJobCallback callback, gpointer user_data);
+void ephy_history_service_set_url_property (EphyHistoryService *self, const char *url, EphyHistoryURLProperty property, GVariant *value, EphyHistoryJobCallback callback, gpointer user_data);
+void ephy_history_service_get_url (EphyHistoryService *self, const char *url, EphyHistoryJobCallback callback, gpointer user_data);
+void ephy_history_service_delete_urls (EphyHistoryService *self, GList *urls, EphyHistoryJobCallback callback, gpointer user_data);
+G_END_DECLS
+
+#endif /* EPHY_HISTORY_SERVICE_H */
+