[Kazehakase-cvs] CVS update: kazehakase/module/search

Back to archive index

Hiroyuki Ikezoe ikezo****@users*****
Sun Dec 3 19:59:07 JST 2006


Index: kazehakase/module/search/kz-search-hyper-estraier.c
diff -u kazehakase/module/search/kz-search-hyper-estraier.c:1.4 kazehakase/module/search/kz-search-hyper-estraier.c:1.5
--- kazehakase/module/search/kz-search-hyper-estraier.c:1.4	Sun Dec  3 19:24:15 2006
+++ kazehakase/module/search/kz-search-hyper-estraier.c	Sun Dec  3 19:59:07 2006
@@ -55,6 +55,7 @@
 typedef struct _KzSearchHyperEstraierPrivate	KzSearchHyperEstraierPrivate;
 struct _KzSearchHyperEstraierPrivate
 {
+	ESTDB *db;
 };
 
 typedef struct _KzSearchHyperEstraierClass	KzSearchHyperEstraierClass;
@@ -87,7 +88,7 @@
 /* KzSearch Class */
 static gchar	  *get_search_result_html     (KzSearch *search, const gchar *text);
 static KzBookmark *get_search_result_bookmark (KzSearch *search, const gchar *text);
-static gboolean    register_document          (KzSearch *search, const gchar *uri);
+static gboolean    register_document          (KzSearch *search, const gchar *uri, const gchar *title, GTime mtime);
 static gboolean    unregister_document        (KzSearch *search, const gchar *uri);
 static gboolean    update_index		      (KzSearch *search);
 static gboolean    purge_index		      (KzSearch *search);
@@ -175,8 +176,11 @@
 
 
 static void
-kz_search_hyper_estraier_init (KzSearchHyperEstraier *est)
+kz_search_hyper_estraier_init (KzSearchHyperEstraier *search)
 {
+	KzSearchHyperEstraierPrivate *priv = KZ_SEARCH_HYPER_ESTRAIER_GET_PRIVATE(search);
+
+	priv->db = NULL;
 }
 
 static GObject *
@@ -202,6 +206,17 @@
 static void
 dispose (GObject *object)
 {
+	KzSearchHyperEstraierPrivate *priv = KZ_SEARCH_HYPER_ESTRAIER_GET_PRIVATE(object);
+	
+	if (priv->db)
+	{
+		int ecode, ret;
+		ret = est_db_close(priv->db, &ecode);
+		if (!ret)
+			g_warning("error: %s", est_err_msg(ecode));
+	}
+	priv->db = NULL;
+
 	if (G_OBJECT_CLASS(parent_class)->dispose)
 		G_OBJECT_CLASS(parent_class)->dispose(object);
 }
@@ -400,8 +415,10 @@
 }
 
 gboolean
-register_document (KzSearch *search, const gchar *uri)
+register_document (KzSearch *search, const gchar *uri, const gchar *title, GTime mtime)
 {
+	/* cbdatesrtwww(time, 0); */
+
 	g_idle_add (_update_index, (gpointer)uri);
 
 	return TRUE;
@@ -434,7 +451,6 @@
 		g_warning("error: %s", est_err_msg(ecode));
 	}
 
-
 	return (success != 0) ? TRUE : FALSE;
 }
 
@@ -447,77 +463,36 @@
 static gboolean
 purge_index (KzSearch *search)
 {
-	const gchar *estpurge = "estcmd purge ";
-	gchar *command;
-	gint argc;
-	gchar **argv = NULL;
-	GSpawnFlags flags;
-	GPid pid;
-
-	/* purge index */
-	flags = G_SPAWN_SEARCH_PATH |
-		G_SPAWN_STDOUT_TO_DEV_NULL;
-	command = g_strconcat(estpurge,
-			      g_get_home_dir(),
-			      HISTORY_INDEX,
-			      NULL);
-
-	g_shell_parse_argv(command,
-			   &argc,
-			   &argv,
-			   NULL);
-	flags = G_SPAWN_SEARCH_PATH |
-		G_SPAWN_STDOUT_TO_DEV_NULL;
-	
-	g_spawn_async(NULL,
-		      argv,
-		      NULL,
-		      flags,
-		      NULL,
-		      NULL,
-		      &pid,
-		      NULL);
-
-	g_strfreev(argv);
-	g_free(command);
-
+	/* Is this function needed? */
+	/* not implemented */ 
 	return FALSE;
 }
 
 static GPid
 optimize_index (KzSearch *search)
 {
-	const gchar *estoptimize = "estcmd optimize "; 
-	gchar *command;
-	gint argc;
-	gchar **argv = NULL;
-	GSpawnFlags flags;
-	GPid pid;
-	
-	/* optimize index process */
-	command = g_strconcat(estoptimize, 
-			      g_get_home_dir(), HISTORY_INDEX,
-			      NULL);
+	ESTDB *db;
+	int ret, ecode;
+	gchar *dbname;
 
-	g_shell_parse_argv(command,
-			   &argc,
-			   &argv,
-			   NULL);
-	flags = G_SPAWN_SEARCH_PATH |
-		G_SPAWN_STDOUT_TO_DEV_NULL;
-	
-	g_spawn_async(NULL,
-		      argv,
-		      NULL,
-		      flags,
-		      NULL,
-		      NULL,
-		      &pid,
-		      NULL);
-	g_strfreev(argv);
-	g_free(command);
+	dbname = g_strdup_printf("%s%s", g_get_home_dir(), HISTORY_INDEX);
+	db = est_db_open(dbname, ESTDBREADER, &ecode);
+	g_free(dbname);
+	if (!db)
+	{
+		g_warning("error: %s", est_err_msg(ecode));
+		return FALSE;
+	}
 
-	return pid;
+	est_db_optimize(db, 0);
+
+	ret = est_db_close(db, &ecode);
+	if (!ret)
+	{
+		g_warning("error: %s", est_err_msg(ecode));
+	}
+#warning FIXME! return GSource or something.
+	return 0;
 }
 
 static KzBookmark *


More information about the Kazehakase-cvs mailing list
Back to archive index