libscid snapshot+0cce79d72e38
Chess applications made easy.
Source on GitHub License GPL v2
Loading...
Searching...
No Matches
database.h
1#ifndef SCID_DATABASE_H
2#define SCID_DATABASE_H
3
4#include "scid/_platform.h"
5#include "scid/eco.h"
6#include "scid/game.h"
7
8#ifdef __cplusplus
9extern "C"
10{
11#endif
12
13 typedef struct scid_database scid_database;
14
15
16 SCID_API scid_error
17 scid_database_create_memory(
18 const char* name,
19 scid_database** out_database);
20
21
22 SCID_API scid_error
23 scid_database_create_scid5(
24 const char* path,
25 scid_database** out_database);
26
27
28 SCID_API scid_error
29 scid_database_open_scid5(
30 const char* path,
31 scid_database** out_database);
32
33
34 SCID_API scid_error
35 scid_database_open_scid5_read_only(
36 const char* path,
37 scid_database** out_database);
38
39
40 SCID_API scid_error
41 scid_database_close(scid_database* database);
42
43
44 SCID_API void
45 scid_database_free(scid_database* database);
46
47
48 SCID_API scid_error
49 scid_database_is_open(
50 const scid_database* database,
51 int* out_is_open);
52
53
54 SCID_API scid_error
55 scid_database_filename_get(
56 const scid_database* database,
57 char* out_text,
58 size_t out_text_capacity,
59 size_t* out_text_size);
60
61
62 SCID_API scid_error
63 scid_database_type_get(
64 const scid_database* database,
65 char* out_text,
66 size_t out_text_capacity,
67 size_t* out_text_size);
68
69
70 SCID_API scid_error
71 scid_database_read_only_get(
72 const scid_database* database,
73 int* out_read_only);
74
75
76 SCID_API scid_error
77 scid_database_filter_create(
78 scid_database* database,
79 char* out_filter_id,
80 size_t out_filter_id_capacity,
81 size_t* out_filter_id_size);
82
83
84 SCID_API scid_error
85 scid_database_filter_delete(
86 scid_database* database,
87 const char* filter_id);
88
89
90 SCID_API scid_error
91 scid_database_filter_fill(
92 scid_database* database,
93 const char* filter_id,
94 unsigned value);
95
96
97 SCID_API scid_error
98 scid_database_filter_value_set(
99 scid_database* database,
100 const char* filter_id,
101 size_t game_index,
102 unsigned value);
103
104
105 SCID_API scid_error
106 scid_database_filter_value_get(
107 const scid_database* database,
108 const char* filter_id,
109 size_t game_index,
110 unsigned* out_value);
111
112
113 SCID_API scid_error
114 scid_database_filter_count_get(
115 const scid_database* database,
116 const char* filter_id,
117 size_t* out_count);
118
119
120 SCID_API scid_error
121 scid_database_filter_game_at_get(
122 const scid_database* database,
123 const char* filter_id,
124 size_t index,
125 size_t* out_game_index);
126
127
128 SCID_API scid_error
129 scid_database_game_list_get(
130 const scid_database* database,
131 const char* filter_id,
132 const char* sort_criteria,
133 size_t start,
134 size_t count,
135 size_t* out_game_indexes,
136 size_t out_game_indexes_capacity,
137 size_t* out_game_indexes_count);
138
139
140 SCID_API scid_error
141 scid_database_game_sorted_position_get(
142 const scid_database* database,
143 const char* filter_id,
144 const char* sort_criteria,
145 size_t game_index,
146 size_t* out_position);
147
148
149 SCID_API scid_error
150 scid_database_save(scid_database* database);
151
152
153 SCID_API scid_error
154 scid_database_metadata_get(
155 const scid_database* database,
156 const char* key,
157 char* out_text,
158 size_t out_text_capacity,
159 size_t* out_text_size);
160
161
162 SCID_API scid_error
163 scid_database_metadata_set(
164 scid_database* database,
165 const char* key,
166 const char* value);
167
168
169 SCID_API scid_error
170 scid_database_metadata_count_get(
171 const scid_database* database,
172 size_t* out_count);
173
174
175 SCID_API scid_error
176 scid_database_metadata_at_get(
177 const scid_database* database,
178 size_t index,
179 char* out_key,
180 size_t out_key_capacity,
181 size_t* out_key_size,
182 char* out_value,
183 size_t out_value_capacity,
184 size_t* out_value_size);
185
186
187 SCID_API scid_error
188 scid_database_stats_date_range_get(
189 const scid_database* database,
190 char* out_min_date,
191 size_t out_min_date_capacity,
192 size_t* out_min_date_size,
193 char* out_max_date,
194 size_t out_max_date_capacity,
195 size_t* out_max_date_size);
196
197
198 SCID_API scid_error
199 scid_database_stats_result_count_get(
200 const scid_database* database,
201 const char* result,
202 size_t* out_count);
203
204
205 SCID_API scid_error
206 scid_database_game_count_get(
207 const scid_database* database,
208 size_t* out_count);
209
210
211 SCID_API scid_error
212 scid_database_import_pgn(
213 scid_database* database,
214 const char* pgn,
215 size_t pgn_size,
216 char* out_diagnostic,
217 size_t out_diagnostic_capacity,
218 size_t* out_diagnostic_size,
219 size_t* out_imported_count);
220
221
222 SCID_API scid_error
223 scid_database_game_add(
224 scid_database* database,
225 const scid_game* game,
226 const char* flags);
227
228
229 SCID_API scid_error
230 scid_database_game_replace(
231 scid_database* database,
232 size_t index,
233 const scid_game* game,
234 const char* flags);
235
236
237 SCID_API scid_error
238 scid_database_game_delete(
239 scid_database* database,
240 size_t index);
241
242
243 SCID_API scid_error
244 scid_database_game_undelete(
245 scid_database* database,
246 size_t index);
247
248
249 SCID_API scid_error
250 scid_database_game_get(
251 const scid_database* database,
252 size_t index,
253 scid_game** out_game,
254 char* out_flags,
255 size_t out_flags_capacity,
256 size_t* out_flags_size);
257
258
259 SCID_API scid_error
260 scid_database_game_export_pgn(
261 const scid_database* database,
262 size_t index,
263 char* out_text,
264 size_t out_text_capacity,
265 size_t* out_text_size);
266
267
268 SCID_API scid_error
269 scid_database_game_tag_get(
270 const scid_database* database,
271 size_t index,
272 const char* name,
273 char* out_text,
274 size_t out_text_capacity,
275 size_t* out_text_size);
276
277
278 SCID_API scid_error
279 scid_database_game_halfmove_count_get(
280 const scid_database* database,
281 size_t index,
282 size_t* out_count);
283
284
285 SCID_API scid_error
286 scid_database_game_number_get(
287 const scid_database* database,
288 size_t index,
289 size_t* out_number);
290
291
292 SCID_API scid_error
293 scid_database_game_deleted_get(
294 const scid_database* database,
295 size_t index,
296 int* out_deleted);
297
298
299 SCID_API scid_error
300 scid_database_game_result_get(
301 const scid_database* database,
302 size_t index,
303 char* out_text,
304 size_t out_text_capacity,
305 size_t* out_text_size);
306
307
308 SCID_API scid_error
309 scid_database_game_eco_get(
310 const scid_database* database,
311 size_t index,
312 scid_eco_code* out_code);
313
314
315 SCID_API scid_error
316 scid_database_game_date_get(
317 const scid_database* database,
318 size_t index,
319 char* out_text,
320 size_t out_text_capacity,
321 size_t* out_text_size);
322
323#ifdef __cplusplus
324}
325#endif
326
327#endif