annotate database.h @ 85:478d96a4b039 default tip @

pasterd: use a thread as more portable
author David Demelier <markand@malikania.fr>
date Fri, 17 Mar 2023 11:43:36 +0100
parents 94dcca86e5cc
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6
98ef2713eb0d pasterd: add licenses in database
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
1 /*
98ef2713eb0d pasterd: add licenses in database
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
2 * database.h -- sqlite storage
98ef2713eb0d pasterd: add licenses in database
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
3 *
72
1a98bc0daa49 misc: update copyright years
David Demelier <markand@malikania.fr>
parents: 60
diff changeset
4 * Copyright (c) 2020-2023 David Demelier <markand@malikania.fr>
6
98ef2713eb0d pasterd: add licenses in database
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
5 *
98ef2713eb0d pasterd: add licenses in database
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
98ef2713eb0d pasterd: add licenses in database
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
98ef2713eb0d pasterd: add licenses in database
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
8 * copyright notice and this permission notice appear in all copies.
98ef2713eb0d pasterd: add licenses in database
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
9 *
98ef2713eb0d pasterd: add licenses in database
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
98ef2713eb0d pasterd: add licenses in database
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
98ef2713eb0d pasterd: add licenses in database
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
98ef2713eb0d pasterd: add licenses in database
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
98ef2713eb0d pasterd: add licenses in database
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
98ef2713eb0d pasterd: add licenses in database
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
98ef2713eb0d pasterd: add licenses in database
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
98ef2713eb0d pasterd: add licenses in database
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
17 */
98ef2713eb0d pasterd: add licenses in database
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
18
0
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #ifndef PASTER_DATABASE_H
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 #define PASTER_DATABASE_H
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
21
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 #include <stddef.h>
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
23
79
52029a52a385 pasterd: revert using ktemplate
David Demelier <markand@malikania.fr>
parents: 78
diff changeset
24 struct paste;
0
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
25
84
94dcca86e5cc pasterd: database reentrancy + timer
David Demelier <markand@malikania.fr>
parents: 79
diff changeset
26 struct database {
94dcca86e5cc pasterd: database reentrancy + timer
David Demelier <markand@malikania.fr>
parents: 79
diff changeset
27 void *handle;
94dcca86e5cc pasterd: database reentrancy + timer
David Demelier <markand@malikania.fr>
parents: 79
diff changeset
28 };
0
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
29
84
94dcca86e5cc pasterd: database reentrancy + timer
David Demelier <markand@malikania.fr>
parents: 79
diff changeset
30 /**
94dcca86e5cc pasterd: database reentrancy + timer
David Demelier <markand@malikania.fr>
parents: 79
diff changeset
31 * Global database handle for convenience.
94dcca86e5cc pasterd: database reentrancy + timer
David Demelier <markand@malikania.fr>
parents: 79
diff changeset
32 *
94dcca86e5cc pasterd: database reentrancy + timer
David Demelier <markand@malikania.fr>
parents: 79
diff changeset
33 * Should be initialized on startup.
94dcca86e5cc pasterd: database reentrancy + timer
David Demelier <markand@malikania.fr>
parents: 79
diff changeset
34 */
94dcca86e5cc pasterd: database reentrancy + timer
David Demelier <markand@malikania.fr>
parents: 79
diff changeset
35 extern struct database database;
0
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
36
79
52029a52a385 pasterd: revert using ktemplate
David Demelier <markand@malikania.fr>
parents: 78
diff changeset
37 int
84
94dcca86e5cc pasterd: database reentrancy + timer
David Demelier <markand@malikania.fr>
parents: 79
diff changeset
38 database_open(struct database *, const char *);
94dcca86e5cc pasterd: database reentrancy + timer
David Demelier <markand@malikania.fr>
parents: 79
diff changeset
39
94dcca86e5cc pasterd: database reentrancy + timer
David Demelier <markand@malikania.fr>
parents: 79
diff changeset
40 int
94dcca86e5cc pasterd: database reentrancy + timer
David Demelier <markand@malikania.fr>
parents: 79
diff changeset
41 database_recents(struct database *, struct paste *, size_t *);
0
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
42
78
9bfe5ce3cc45 pasterd: rework themes
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
43 int
84
94dcca86e5cc pasterd: database reentrancy + timer
David Demelier <markand@malikania.fr>
parents: 79
diff changeset
44 database_get(struct database *, struct paste *, const char *);
0
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
45
79
52029a52a385 pasterd: revert using ktemplate
David Demelier <markand@malikania.fr>
parents: 78
diff changeset
46 int
84
94dcca86e5cc pasterd: database reentrancy + timer
David Demelier <markand@malikania.fr>
parents: 79
diff changeset
47 database_insert(struct database *, struct paste *);
94dcca86e5cc pasterd: database reentrancy + timer
David Demelier <markand@malikania.fr>
parents: 79
diff changeset
48
94dcca86e5cc pasterd: database reentrancy + timer
David Demelier <markand@malikania.fr>
parents: 79
diff changeset
49 int
94dcca86e5cc pasterd: database reentrancy + timer
David Demelier <markand@malikania.fr>
parents: 79
diff changeset
50 database_search(struct database *,
94dcca86e5cc pasterd: database reentrancy + timer
David Demelier <markand@malikania.fr>
parents: 79
diff changeset
51 struct paste *,
79
52029a52a385 pasterd: revert using ktemplate
David Demelier <markand@malikania.fr>
parents: 78
diff changeset
52 size_t *,
52029a52a385 pasterd: revert using ktemplate
David Demelier <markand@malikania.fr>
parents: 78
diff changeset
53 const char *,
52029a52a385 pasterd: revert using ktemplate
David Demelier <markand@malikania.fr>
parents: 78
diff changeset
54 const char *,
52029a52a385 pasterd: revert using ktemplate
David Demelier <markand@malikania.fr>
parents: 78
diff changeset
55 const char *);
25
f4e8a7920b94 pasterd: implement search, closes #2474 @30m
David Demelier <markand@malikania.fr>
parents: 6
diff changeset
56
0
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 void
84
94dcca86e5cc pasterd: database reentrancy + timer
David Demelier <markand@malikania.fr>
parents: 79
diff changeset
58 database_clear(struct database *);
0
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
59
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 void
84
94dcca86e5cc pasterd: database reentrancy + timer
David Demelier <markand@malikania.fr>
parents: 79
diff changeset
61 database_finish(struct database *);
0
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
62
15a06aa20298 misc: initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 #endif /* !PASTER_DATABASE_H */