Mercurial > sci
annotate scid/db.h @ 44:576f4b1ec79f
scid: implement API authentication
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 11 Aug 2022 21:24:07 +0200 |
parents | 00b9af607524 |
children | 71cd8447e3a4 |
rev | line source |
---|---|
5
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
1 /* |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
2 * db.h -- scid database access |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
3 * |
32
081e1c258e64
misc: update copyright years
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
4 * Copyright (c) 2021-2022 David Demelier <markand@malikania.fr> |
5
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
5 * |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
6 * Permission to use, copy, modify, and/or distribute this software for any |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
7 * purpose with or without fee is hereby granted, provided that the above |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
8 * copyright notice and this permission notice appear in all copies. |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
9 * |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
17 */ |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
18 |
0 | 19 #ifndef SCI_DB_H |
20 #define SCI_DB_H | |
21 | |
33
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
22 /** |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
23 * \file db.h |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
24 * \brief Database access. |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
25 * |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
26 * This module access the SQLite database. |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
27 * |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
28 * A global variable is used to access the database, the function \ref db_open |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
29 * must be called before any other functions. |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
30 * |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
31 * Many of the function that insert or update model will also update the JSON |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
32 * object to fill the generated row id if any. |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
33 * |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
34 * This module logs message with tag `db`. |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
35 */ |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
36 |
20 | 37 #include <stdint.h> |
0 | 38 |
27
dae2de19ca5d
misc: switch to JSON everywhere
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
39 #include <jansson.h> |
3
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
2
diff
changeset
|
40 |
33
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
41 /** |
44
576f4b1ec79f
scid: implement API authentication
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
42 * Maximum property value. |
576f4b1ec79f
scid: implement API authentication
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
43 */ |
576f4b1ec79f
scid: implement API authentication
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
44 #define DB_PROP_VALUE_MAX 256 |
576f4b1ec79f
scid: implement API authentication
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
45 |
576f4b1ec79f
scid: implement API authentication
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
46 /** |
33
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
47 * Open database specified by path. |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
48 * |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
49 * \pre path != NULL |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
50 * \param path path to the database |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
51 */ |
0 | 52 int |
33
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
53 db_open(const char *path); |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
54 |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
55 /** |
44
576f4b1ec79f
scid: implement API authentication
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
56 * Reinitialize the API key in database and return it. |
576f4b1ec79f
scid: implement API authentication
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
57 * |
576f4b1ec79f
scid: implement API authentication
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
58 * \pre out != NULL |
576f4b1ec79f
scid: implement API authentication
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
59 * \param out the destination key |
576f4b1ec79f
scid: implement API authentication
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
60 * \param outsz the maximum size to write |
576f4b1ec79f
scid: implement API authentication
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
61 * \return 0 on success or -1 on error |
576f4b1ec79f
scid: implement API authentication
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
62 */ |
576f4b1ec79f
scid: implement API authentication
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
63 int |
576f4b1ec79f
scid: implement API authentication
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
64 db_key_init(char *out, size_t outsz); |
576f4b1ec79f
scid: implement API authentication
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
65 |
576f4b1ec79f
scid: implement API authentication
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
66 /** |
576f4b1ec79f
scid: implement API authentication
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
67 * Fetch the key from the database. |
576f4b1ec79f
scid: implement API authentication
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
68 * |
576f4b1ec79f
scid: implement API authentication
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
69 * \pre out != NULL |
576f4b1ec79f
scid: implement API authentication
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
70 * \param out the destination key |
576f4b1ec79f
scid: implement API authentication
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
71 * \param outsz the maximum size to write |
576f4b1ec79f
scid: implement API authentication
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
72 * \return 0 if not found, 1 if found or -1 on error |
576f4b1ec79f
scid: implement API authentication
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
73 */ |
576f4b1ec79f
scid: implement API authentication
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
74 int |
576f4b1ec79f
scid: implement API authentication
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
75 db_key_get(char *out, size_t outsz); |
576f4b1ec79f
scid: implement API authentication
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
76 |
576f4b1ec79f
scid: implement API authentication
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
77 /** |
33
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
78 * Add a new job. |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
79 * |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
80 * \pre job != NULL |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
81 * \param job the job to add |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
82 * \return 0 on success or -1 on error |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
83 */ |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
84 int |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
85 db_job_add(json_t *job); |
3
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
2
diff
changeset
|
86 |
33
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
87 /** |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
88 * Get a list of jobs to perform for this worker. |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
89 * |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
90 * The returned list will only contain jobs to perform if their date are |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
91 * greater or equal to the worker creation date to avoid running jobs that are |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
92 * older and probably too numerous. |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
93 * |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
94 * \pre worker != NULL |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
95 * \param worker the worker name |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
96 * \return the JSON model or NULL on failure |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
97 */ |
27
dae2de19ca5d
misc: switch to JSON everywhere
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
98 json_t * |
33
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
99 db_job_todo(const char *worker); |
3
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
2
diff
changeset
|
100 |
33
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
101 /** |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
102 * Return the whole list of jobs for the given project. |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
103 * |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
104 * \pre project != NULL |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
105 * \param project the project name |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
106 * \return the JSON model or NULL on failure |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
107 */ |
27
dae2de19ca5d
misc: switch to JSON everywhere
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
108 json_t * |
33
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
109 db_job_list(const char *project); |
26
7e10cace67a3
scid: add basic mustache support
David Demelier <markand@malikania.fr>
parents:
22
diff
changeset
|
110 |
33
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
111 /** |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
112 * Add a new job result. |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
113 * |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
114 * \pre result != NULL |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
115 * \param result the job result to add |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
116 * \return 0 on success or -1 on error |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
117 */ |
3
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
2
diff
changeset
|
118 int |
33
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
119 db_jobresult_add(json_t *result); |
3
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
2
diff
changeset
|
120 |
33
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
121 /** |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
122 * Get a list of job results by job id. |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
123 * |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
124 * This will contain every job done by all workers for this job id. |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
125 * |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
126 * \param job_id the job id |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
127 * \return the JSON model or NULL on failure |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
128 */ |
27
dae2de19ca5d
misc: switch to JSON everywhere
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
129 json_t * |
33
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
130 db_jobresult_list_by_job(intmax_t job_id); |
26
7e10cace67a3
scid: add basic mustache support
David Demelier <markand@malikania.fr>
parents:
22
diff
changeset
|
131 |
33
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
132 /** |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
133 * Get a list of job results for this job id but only the more recent per each |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
134 * worker. |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
135 * |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
136 * This function is handy if you want to retrieve all last jobs realized by all |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
137 * workers. |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
138 * |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
139 * \param job_id the job id |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
140 * \return the JSON model or NULL on failure |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
141 */ |
27
dae2de19ca5d
misc: switch to JSON everywhere
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
142 json_t * |
41
00b9af607524
scid: implement /jobresults/id page
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
143 db_jobresult_list_by_job_group(intmax_t job_id); |
26
7e10cace67a3
scid: add basic mustache support
David Demelier <markand@malikania.fr>
parents:
22
diff
changeset
|
144 |
33
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
145 /** |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
146 * Get a list of job results realized by this worker. |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
147 * |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
148 * \pre worker != NULL |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
149 * \param worker the worker name |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
150 * \return the JSON model or NULL on failure |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
151 */ |
27
dae2de19ca5d
misc: switch to JSON everywhere
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
152 json_t * |
dae2de19ca5d
misc: switch to JSON everywhere
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
153 db_jobresult_list_by_worker(const char *); |
26
7e10cace67a3
scid: add basic mustache support
David Demelier <markand@malikania.fr>
parents:
22
diff
changeset
|
154 |
33
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
155 /** |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
156 * Add or update the given project. |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
157 * |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
158 * In case of update, all fields must be present anyway. |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
159 * |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
160 * \pre project != NULL |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
161 * \param project the project to update |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
162 * \return 0 on success or -1 on error |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
163 */ |
3
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
2
diff
changeset
|
164 int |
33
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
165 db_project_save(json_t *project); |
9
3ef8128e244f
sci: add project-update command
David Demelier <markand@malikania.fr>
parents:
5
diff
changeset
|
166 |
33
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
167 /** |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
168 * Get a list of all projects. |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
169 * |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
170 * \return the JSON model or NULL on failure |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
171 */ |
27
dae2de19ca5d
misc: switch to JSON everywhere
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
172 json_t * |
dae2de19ca5d
misc: switch to JSON everywhere
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
173 db_project_list(void); |
dae2de19ca5d
misc: switch to JSON everywhere
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
174 |
33
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
175 /** |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
176 * Find a project by name. |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
177 * |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
178 * \pre name != NULL |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
179 * \param name the project name |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
180 * \return the JSON model or NULL on failure |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
181 */ |
27
dae2de19ca5d
misc: switch to JSON everywhere
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
182 json_t * |
33
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
183 db_project_find(const char *name); |
0 | 184 |
33
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
185 /** |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
186 * Add or update the given worker. |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
187 * |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
188 * In case of update, all fields must be present anyway. |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
189 * |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
190 * \pre worker != NULL |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
191 * \param worker the worker to update |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
192 * \return 0 on success or -1 on error |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
193 */ |
0 | 194 int |
33
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
195 db_worker_save(json_t *worker); |
0 | 196 |
33
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
197 /** |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
198 * Get a list of all workers. |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
199 * |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
200 * \return the JSON model or NULL on failure |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
201 */ |
27
dae2de19ca5d
misc: switch to JSON everywhere
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
202 json_t * |
dae2de19ca5d
misc: switch to JSON everywhere
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
203 db_worker_list(void); |
1
5afdb14df924
sci: add support for storing results
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
204 |
33
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
205 /** |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
206 * Find a worker by name. |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
207 * |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
208 * \pre name != NULL |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
209 * \param name the worker name |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
210 * \return the JSON model or NULL on failure |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
211 */ |
27
dae2de19ca5d
misc: switch to JSON everywhere
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
212 json_t * |
dae2de19ca5d
misc: switch to JSON everywhere
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
213 db_worker_find(const char *); |
1
5afdb14df924
sci: add support for storing results
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
214 |
33
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
215 /** |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
216 * Close database and associated resources. |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
217 */ |
0 | 218 void |
219 db_finish(void); | |
220 | |
221 #endif /* !SCI_DB_H */ |