ruby: Kill garbage collection related cruft.
[notmuch] / bindings / ruby / defs.h
1 /* The Ruby interface to the notmuch mail library
2  *
3  * Copyright © 2010 Ali Polatel
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program.  If not, see http://www.gnu.org/licenses/ .
17  *
18  * Author: Ali Polatel <alip@exherbo.org>
19  */
20
21 #ifndef DEFS_H
22 #define DEFS_H
23
24 #include <notmuch.h>
25 #include <ruby.h>
26
27 VALUE notmuch_rb_cDatabase;
28 VALUE notmuch_rb_cDirectory;
29 VALUE notmuch_rb_cFileNames;
30 VALUE notmuch_rb_cQuery;
31 VALUE notmuch_rb_cThreads;
32 VALUE notmuch_rb_cThread;
33 VALUE notmuch_rb_cMessages;
34 VALUE notmuch_rb_cMessage;
35 VALUE notmuch_rb_cTags;
36
37 VALUE notmuch_rb_eBaseError;
38 VALUE notmuch_rb_eDatabaseError;
39 VALUE notmuch_rb_eMemoryError;
40 VALUE notmuch_rb_eReadOnlyError;
41 VALUE notmuch_rb_eXapianError;
42 VALUE notmuch_rb_eFileError;
43 VALUE notmuch_rb_eFileNotEmailError;
44 VALUE notmuch_rb_eNullPointerError;
45 VALUE notmuch_rb_eTagTooLongError;
46 VALUE notmuch_rb_eUnbalancedFreezeThawError;
47
48 ID ID_call;
49 ID ID_db_create;
50 ID ID_db_mode;
51
52 /* status.c */
53 void
54 notmuch_rb_status_raise(notmuch_status_t status);
55
56 /* database.c */
57 VALUE
58 notmuch_rb_database_new(int argc, VALUE *argv, VALUE klass);
59
60 VALUE
61 notmuch_rb_database_close(VALUE self);
62
63 VALUE
64 notmuch_rb_database_path(VALUE self);
65
66 VALUE
67 notmuch_rb_database_version(VALUE self);
68
69 VALUE
70 notmuch_rb_database_needs_upgrade(VALUE self);
71
72 VALUE
73 notmuch_rb_database_upgrade(VALUE self);
74
75 VALUE
76 notmuch_rb_database_get_directory(VALUE self, VALUE pathv);
77
78 VALUE
79 notmuch_rb_database_add_message(VALUE self, VALUE pathv);
80
81 VALUE
82 notmuch_rb_database_remove_message(VALUE self, VALUE pathv);
83
84 VALUE
85 notmuch_rb_database_query_create(VALUE self, VALUE qstrv);
86
87 /* directory.c */
88 VALUE
89 notmuch_rb_directory_destroy(VALUE self);
90
91 VALUE
92 notmuch_rb_directory_get_mtime(VALUE self);
93
94 VALUE
95 notmuch_rb_directory_set_mtime(VALUE self, VALUE mtimev);
96
97 VALUE
98 notmuch_rb_directory_get_child_files(VALUE self);
99
100 VALUE
101 notmuch_rb_directory_get_child_directories(VALUE self);
102
103 /* filenames.c */
104 VALUE
105 notmuch_rb_filenames_destroy(VALUE self);
106
107 VALUE
108 notmuch_rb_filenames_each(VALUE self);
109
110 /* query.c */
111 VALUE
112 notmuch_rb_query_destroy(VALUE self);
113
114 VALUE
115 notmuch_rb_query_set_sort(VALUE self, VALUE sortv);
116
117 VALUE
118 notmuch_rb_query_search_threads(VALUE self);
119
120 VALUE
121 notmuch_rb_query_search_messages(VALUE self);
122
123 /* threads.c */
124 VALUE
125 notmuch_rb_threads_destroy(VALUE self);
126
127 VALUE
128 notmuch_rb_threads_each(VALUE self);
129
130 /* messages.c */
131 VALUE
132 notmuch_rb_messages_destroy(VALUE self);
133
134 VALUE
135 notmuch_rb_messages_each(VALUE self);
136
137 VALUE
138 notmuch_rb_messages_collect_tags(VALUE self);
139
140 /* thread.c */
141 VALUE
142 notmuch_rb_thread_destroy(VALUE self);
143
144 VALUE
145 notmuch_rb_thread_get_thread_id(VALUE self);
146
147 VALUE
148 notmuch_rb_thread_get_total_messages(VALUE self);
149
150 VALUE
151 notmuch_rb_thread_get_toplevel_messages(VALUE self);
152
153 VALUE
154 notmuch_rb_thread_get_matched_messages(VALUE self);
155
156 VALUE
157 notmuch_rb_thread_get_authors(VALUE self);
158
159 VALUE
160 notmuch_rb_thread_get_subject(VALUE self);
161
162 VALUE
163 notmuch_rb_thread_get_oldest_date(VALUE self);
164
165 VALUE
166 notmuch_rb_thread_get_newest_date(VALUE self);
167
168 VALUE
169 notmuch_rb_thread_get_tags(VALUE self);
170
171 /* message.c */
172 VALUE
173 notmuch_rb_message_destroy(VALUE self);
174
175 VALUE
176 notmuch_rb_message_get_message_id(VALUE self);
177
178 VALUE
179 notmuch_rb_message_get_thread_id(VALUE self);
180
181 VALUE
182 notmuch_rb_message_get_replies(VALUE self);
183
184 VALUE
185 notmuch_rb_message_get_filename(VALUE self);
186
187 VALUE
188 notmuch_rb_message_get_flag(VALUE self, VALUE flagv);
189
190 VALUE
191 notmuch_rb_message_set_flag(VALUE self, VALUE flagv, VALUE valuev);
192
193 VALUE
194 notmuch_rb_message_get_date(VALUE self);
195
196 VALUE
197 notmuch_rb_message_get_header(VALUE self, VALUE headerv);
198
199 VALUE
200 notmuch_rb_message_get_tags(VALUE self);
201
202 VALUE
203 notmuch_rb_message_add_tag(VALUE self, VALUE tagv);
204
205 VALUE
206 notmuch_rb_message_remove_tag(VALUE self, VALUE tagv);
207
208 VALUE
209 notmuch_rb_message_remove_all_tags(VALUE self);
210
211 VALUE
212 notmuch_rb_message_freeze(VALUE self);
213
214 VALUE
215 notmuch_rb_message_thaw(VALUE self);
216
217 /* tags.c */
218 VALUE
219 notmuch_rb_tags_destroy(VALUE self);
220
221 VALUE
222 notmuch_rb_tags_each(VALUE self);
223
224 /* init.c */
225 void
226 Init_notmuch(void);
227
228 #endif