-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathfilename-db.h
More file actions
83 lines (57 loc) · 2.08 KB
/
filename-db.h
File metadata and controls
83 lines (57 loc) · 2.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
/* filename-db.h -- filename database */
/**
* \file filename-db.h
*
* Filename database.
*
* The filenamedb is an associative array which maps keys (such as digests)
* to filenames. The data is stored on disc.
*
* PrivateEye uses this to find out where an image lives given its digest.
*/
#ifndef DATABASES_FILENAME_DB_H
#define DATABASES_FILENAME_DB_H
#ifdef __cplusplus
extern "C"
{
#endif
#include <stddef.h>
#include "base/result.h"
#include "databases/pickle.h"
/* ----------------------------------------------------------------------- */
#define result_FILENAMEDB_INCOMPATIBLE (result_BASE_FILENAMEDB + 0)
#define result_FILENAMEDB_COULDNT_OPEN_FILE (result_BASE_FILENAMEDB + 1)
#define result_FILENAMEDB_SYNTAX_ERROR (result_BASE_FILENAMEDB + 2)
#define result_FILENAMEDB_BUFF_OVERFLOW (result_BASE_FILENAMEDB + 3)
/* ----------------------------------------------------------------------- */
#define T filenamedb_t
/* ----------------------------------------------------------------------- */
result_t filenamedb_init(void);
void filenamedb_fin(void);
/* ----------------------------------------------------------------------- */
#define filenamedb_delete pickle_delete
/* ----------------------------------------------------------------------- */
typedef struct filenamedb T;
result_t filenamedb_open(const char *filename, T **db);
void filenamedb_close(T *db);
/**
* Force any pending changes to disc.
*/
result_t filenamedb_commit(T *db);
/* ----------------------------------------------------------------------- */
result_t filenamedb_add(T *db,
const char *id,
const char *filename);
const char *filenamedb_get(T *db,
const char *id);
/* ----------------------------------------------------------------------- */
/**
* Delete knowledge of filenames which don't exist on disc.
*/
result_t filenamedb_prune(T *db);
/* ----------------------------------------------------------------------- */
#undef T
#ifdef __cplusplus
}
#endif
#endif /* DATABASES_FILENAME_DB_H */