3 * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
5 * Authors: Michael Zucchi <notzed@ximian.com>
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of version 2 of the GNU Lesser General Public
9 * License as published by the Free Software Foundation.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this program; if not, write to the
18 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 * Boston, MA 02110-1301, USA.
22 #if !defined (__CAMEL_H_INSIDE__) && !defined (CAMEL_COMPILATION)
23 #error "Only <camel/camel.h> can be included directly."
26 #ifndef CAMEL_TEXT_INDEX_H
27 #define CAMEL_TEXT_INDEX_H
29 #include <camel/camel-object.h>
30 #include "camel-index.h"
32 /* Standard GObject macros */
33 #define CAMEL_TYPE_TEXT_INDEX \
34 (camel_text_index_get_type ())
35 #define CAMEL_TEXT_INDEX(obj) \
36 (G_TYPE_CHECK_INSTANCE_CAST \
37 ((obj), CAMEL_TYPE_TEXT_INDEX, CamelTextIndex))
38 #define CAMEL_TEXT_INDEX_CLASS(cls) \
39 (G_TYPE_CHECK_CLASS_CAST \
40 ((cls), CAMEL_TYPE_TEXT_INDEX, CamelTextIndexClass))
41 #define CAMEL_IS_TEXT_INDEX(obj) \
42 (G_TYPE_CHECK_INSTANCE_TYPE \
43 ((obj), CAMEL_TYPE_TEXT_INDEX))
44 #define CAMEL_IS_TEXT_INDEX_CLASS(cls) \
45 (G_TYPE_CHECK_CLASS_TYPE \
46 ((cls), CAMEL_TYPE_TEXT_INDEX))
47 #define CAMEL_TEXT_INDEX_GET_CLASS(obj) \
48 (G_TYPE_INSTANCE_GET_CLASS \
49 ((obj), CAMEL_TYPE_TEXT_INDEX, CamelTextIndexClass))
51 #define CAMEL_TYPE_TEXT_INDEX_NAME \
52 (camel_text_index_name_get_type ())
53 #define CAMEL_TEXT_INDEX_NAME(obj) \
54 (G_TYPE_CHECK_INSTANCE_CAST \
55 ((obj), CAMEL_TYPE_TEXT_INDEX_NAME, CamelTextIndexName))
56 #define CAMEL_TEXT_INDEX_NAME_CLASS(cls) \
57 (G_TYPE_CHECK_CLASS_CAST \
58 ((cls), CAMEL_TYPE_TEXT_INDEX_NAME, CamelTextIndexNameClass))
59 #define CAMEL_IS_TEXT_INDEX_NAME(obj) \
60 (G_TYPE_CHECK_INSTANCE_TYPE \
61 ((obj), CAMEL_TYPE_TEXT_INDEX_NAME))
62 #define CAMEL_IS_TEXT_INDEX_NAME_CLASS(cls) \
63 (G_TYPE_CHECK_CLASS_TYPE \
64 ((cls), CAMEL_TYPE_TEXT_INDEX_NAME))
65 #define CAMEL_TEXT_INDEX_NAME_GET_CLASS(obj) \
66 (G_TYPE_INSTANCE_GET_CLASS \
67 ((obj), CAMEL_TYPE_TEXT_INDEX_NAME, CamelTextIndexNameClass))
69 #define CAMEL_TYPE_TEXT_INDEX_CURSOR \
70 (camel_text_index_cursor_get_type ())
71 #define CAMEL_TEXT_INDEX_CURSOR(obj) \
72 (G_TYPE_CHECK_INSTANCE_CAST \
73 ((obj), CAMEL_TYPE_TEXT_INDEX_CURSOR, CamelTextIndexCursor))
74 #define CAMEL_TEXT_INDEX_CURSOR_CLASS(cls) \
75 (G_TYPE_CHECK_CLASS_CAST \
76 ((cls), CAMEL_TYPE_TEXT_INDEX_CURSOR, CamelTextIndexCursorClass))
77 #define CAMEL_IS_TEXT_INDEX_CURSOR(obj) \
78 (G_TYPE_CHECK_INSTANCE_TYPE \
79 ((obj), CAMEL_TYPE_TEXT_INDEX_CURSOR))
80 #define CAMEL_IS_TEXT_INDEX_CURSOR_CLASS(cls) \
81 (G_TYPE_CHECK_CLASS_TYPE \
82 ((cls), CAMEL_TYPE_TEXT_INDEX_CURSOR))
83 #define CAMEL_TEXT_INDEX_CURSOR_GET_CLASS(obj) \
84 (G_TYPE_INSTANCE_GET_CLASS \
85 ((obj), CAMEL_TYPE_TEXT_INDEX_CURSOR, CamelTextIndexCursorClass))
87 #define CAMEL_TYPE_TEXT_INDEX_KEY_CURSOR \
88 (camel_text_index_key_cursor_get_type ())
89 #define CAMEL_TEXT_INDEX_KEY_CURSOR(obj) \
90 (G_TYPE_CHECK_INSTANCE_CAST \
91 ((obj), CAMEL_TYPE_TEXT_INDEX_KEY_CURSOR, CamelTextIndexKeyCursor))
92 #define CAMEL_TEXT_INDEX_KEY_CURSOR_CLASS(cls) \
93 (G_TYPE_CHECK_CLASS_CAST \
94 ((cls), CAMEL_TYPE_TEXT_INDEX_KEY_CURSOR, CamelTextIndexKeyCursorClass))
95 #define CAMEL_IS_TEXT_INDEX_KEY_CURSOR(obj) \
96 (G_TYPE_CHECK_INSTANCE_TYPE \
97 ((obj), CAMEL_TYPE_TEXT_INDEX_KEY_CURSOR))
98 #define CAMEL_IS_TEXT_INDEX_KEY_CURSOR_CLASS(cls) \
99 (G_TYPE_CHECK_CLASS_TYPE \
100 ((cls), CAMEL_TYPE_TEXT_INDEX_KEY_CURSOR))
101 #define CAMEL_TEXT_INDEX_KEY_CURSOR_GET_CLASS(obj) \
102 (G_TYPE_INSTANCE_GET_CLASS \
103 ((obj), CAMEL_TYPE_TEXT_INDEX_KEY_CURSOR, CamelTextIndexKeyCursorClass))
107 typedef struct _CamelTextIndex CamelTextIndex;
108 typedef struct _CamelTextIndexClass CamelTextIndexClass;
109 typedef struct _CamelTextIndexPrivate CamelTextIndexPrivate;
111 typedef struct _CamelTextIndexName CamelTextIndexName;
112 typedef struct _CamelTextIndexNameClass CamelTextIndexNameClass;
113 typedef struct _CamelTextIndexNamePrivate CamelTextIndexNamePrivate;
115 typedef struct _CamelTextIndexCursor CamelTextIndexCursor;
116 typedef struct _CamelTextIndexCursorClass CamelTextIndexCursorClass;
117 typedef struct _CamelTextIndexCursorPrivate CamelTextIndexCursorPrivate;
119 typedef struct _CamelTextIndexKeyCursor CamelTextIndexKeyCursor;
120 typedef struct _CamelTextIndexKeyCursorClass CamelTextIndexKeyCursorClass;
121 typedef struct _CamelTextIndexKeyCursorPrivate CamelTextIndexKeyCursorPrivate;
123 typedef void (*CamelTextIndexFunc)(CamelTextIndex *idx, const gchar *word, gchar *buffer);
125 /* ********************************************************************** */
127 struct _CamelTextIndexCursor {
128 CamelIndexCursor parent;
129 CamelTextIndexCursorPrivate *priv;
132 struct _CamelTextIndexCursorClass {
133 CamelIndexCursorClass parent_class;
136 GType camel_text_index_cursor_get_type (void);
138 /* ********************************************************************** */
140 struct _CamelTextIndexKeyCursor {
141 CamelIndexCursor parent;
142 CamelTextIndexKeyCursorPrivate *priv;
145 struct _CamelTextIndexKeyCursorClass {
146 CamelIndexCursorClass parent_class;
149 GType camel_text_index_key_cursor_get_type (void);
151 /* ********************************************************************** */
153 struct _CamelTextIndexName {
154 CamelIndexName parent;
155 CamelTextIndexNamePrivate *priv;
158 struct _CamelTextIndexNameClass {
159 CamelIndexNameClass parent_class;
162 GType camel_text_index_name_get_type (void);
164 /* ********************************************************************** */
166 struct _CamelTextIndex {
168 CamelTextIndexPrivate *priv;
171 struct _CamelTextIndexClass {
172 CamelIndexClass parent_class;
175 GType camel_text_index_get_type (void);
176 CamelTextIndex *camel_text_index_new (const gchar *path,
179 /* static utility functions */
180 gint camel_text_index_check (const gchar *path);
181 gint camel_text_index_rename (const gchar *old,
183 gint camel_text_index_remove (const gchar *old);
185 void camel_text_index_dump (CamelTextIndex *idx);
186 void camel_text_index_info (CamelTextIndex *idx);
187 void camel_text_index_validate (CamelTextIndex *idx);
191 #endif /* CAMEL_TEXT_INDEX_H */