diff src/plugins/fts/fts-api-private.h @ 4609:48a16f1254b5 HEAD

Added full text search plugin framework. Still missing support for handling expunges. Also it could use better logic with more complex SEARCH queries to figure out when the FTS index should be used.
author Timo Sirainen <tss@iki.fi>
date Sun, 17 Sep 2006 19:28:10 +0300
parents
children a1621235f405
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/plugins/fts/fts-api-private.h	Sun Sep 17 19:28:10 2006 +0300
@@ -0,0 +1,35 @@
+#ifndef __FTS_API_PRIVATE_H
+#define __FTS_API_PRIVATE_H
+
+#include "fts-api.h"
+
+struct fts_backend_vfuncs {
+	struct fts_backend *(*init)(const char *path);
+	void (*deinit)(struct fts_backend *backend);
+
+	struct fts_backend_build_context *
+		(*build_init)(struct fts_backend *backend,
+			      uint32_t *last_uid_r);
+	int (*build_more)(struct fts_backend_build_context *ctx, uint32_t uid,
+			  const void *data, size_t size);
+	int (*build_deinit)(struct fts_backend_build_context *ctx);
+
+	int (*lookup)(struct fts_backend *backend, const char *key,
+		      ARRAY_TYPE(seq_range) *result);
+	int (*filter)(struct fts_backend *backend, const char *key,
+		      ARRAY_TYPE(seq_range) *result);
+};
+
+struct fts_backend {
+	const char *name;
+	struct fts_backend_vfuncs v;
+};
+
+struct fts_backend_build_context {
+	struct fts_backend *backend;
+};
+
+void fts_backend_register(const struct fts_backend *backend);
+void fts_backend_unregister(const char *name);
+
+#endif