Mercurial > sci
annotate lib/apic.h @ 22:dd078aea5d02
misc: use project/worker name as primary key
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 21 Jul 2022 20:23:22 +0200 |
parents | f98ea578b1ef |
children | 2cb228f23f53 |
rev | line source |
---|---|
19 | 1 #ifndef SCI_APIC_H |
2 #define SCI_APIC_H | |
3 | |
22
dd078aea5d02
misc: use project/worker name as primary key
David Demelier <markand@malikania.fr>
parents:
20
diff
changeset
|
4 #include <sys/types.h> |
dd078aea5d02
misc: use project/worker name as primary key
David Demelier <markand@malikania.fr>
parents:
20
diff
changeset
|
5 #include <stdint.h> |
dd078aea5d02
misc: use project/worker name as primary key
David Demelier <markand@malikania.fr>
parents:
20
diff
changeset
|
6 |
19 | 7 #include <jansson.h> |
8 | |
20 | 9 #include "config.h" |
10 | |
19 | 11 #define APIC_ERR_MAX 128 |
12 | |
20 | 13 struct job; |
14 struct jobresult; | |
15 struct project; | |
16 struct worker; | |
17 | |
18 struct apic { | |
19 | 19 json_t *doc; |
20 char error[APIC_ERR_MAX]; | |
21 long status; | |
22 }; | |
23 | |
20 | 24 extern struct apiconf { |
25 char baseurl[SCI_URL_MAX]; | |
26 } apiconf; | |
27 | |
28 /* Generic HTTP commands using JSON. */ | |
29 | |
30 /* Perform GET request. */ | |
19 | 31 int |
20 | 32 apic_get(struct apic *, const char *, ...); |
33 | |
34 /* Perform POST request with JSON body. */ | |
35 int | |
36 apic_post(struct apic *, const json_t *, const char *, ...); | |
37 | |
38 /* | |
39 * Commands to fetch, create, delete or update data. | |
40 * | |
41 * Any of the following commands need to keep apic structure alive as long as | |
42 * data objects are being used because they reference JSON values directly from | |
43 * the HTTP response. | |
44 */ | |
45 | |
46 int | |
47 apic_job_add(struct apic *, struct job *); | |
48 | |
49 ssize_t | |
22
dd078aea5d02
misc: use project/worker name as primary key
David Demelier <markand@malikania.fr>
parents:
20
diff
changeset
|
50 apic_job_todo(struct apic *, struct job *, size_t, intmax_t); |
19 | 51 |
52 int | |
20 | 53 apic_jobresult_add(struct apic *, struct jobresult *); |
54 | |
55 int | |
22
dd078aea5d02
misc: use project/worker name as primary key
David Demelier <markand@malikania.fr>
parents:
20
diff
changeset
|
56 apic_project_save(struct apic *, struct project *); |
20 | 57 |
58 ssize_t | |
59 apic_project_list(struct apic *, struct project *, size_t); | |
60 | |
61 int | |
22
dd078aea5d02
misc: use project/worker name as primary key
David Demelier <markand@malikania.fr>
parents:
20
diff
changeset
|
62 apic_project_find(struct apic *, struct project *, const char *); |
20 | 63 |
64 int | |
22
dd078aea5d02
misc: use project/worker name as primary key
David Demelier <markand@malikania.fr>
parents:
20
diff
changeset
|
65 apic_worker_save(struct apic *, struct worker *); |
20 | 66 |
67 ssize_t | |
68 apic_worker_list(struct apic *, struct worker *, size_t); | |
69 | |
70 int | |
22
dd078aea5d02
misc: use project/worker name as primary key
David Demelier <markand@malikania.fr>
parents:
20
diff
changeset
|
71 apic_worker_find(struct apic *, struct worker *, const char *); |
20 | 72 |
73 void | |
74 apic_finish(struct apic *); | |
19 | 75 |
76 #endif /* !SCI_APIC_H */ |