Mercurial > sci
annotate types.c @ 11:0647f9ec7319
misc: remove output file added by mistake
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 29 Jun 2021 20:49:24 +0200 |
parents | 215c0c3b3609 |
children | 3051ef92173a |
rev | line source |
---|---|
3
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 #include <assert.h> |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 #include <errno.h> |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
4 #include "types.h" |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 typedef json_t * (*packer)(const void *); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 typedef int (*unpacker)(void *, json_t *); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 static inline json_t * |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 job_packer(const struct job *job) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 return json_pack("{si si ss}", |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 "id", job->id, |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 "project_id", job->project_id, |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 "tag", job->tag |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 ); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 } |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 static inline int |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 job_unpacker(struct job *job, json_t *doc) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 return json_unpack(doc, "{si si ss}", |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 "id", &job->id, |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 "project_id", &job->project_id, |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 "tag", &job->tag |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 ); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 } |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 static inline json_t * |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 jobresult_packer(const struct jobresult *res) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 return json_pack("{si si si si ss}", |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 "id", res->id, |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 "job_id", res->job_id, |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 "worker_id", res->worker_id, |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 "exitcode", res->exitcode, |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 "log", res->log |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 ); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 } |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 static inline int |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 jobresult_unpacker(struct jobresult *res, json_t *doc) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 return json_unpack(doc, "{si si si si ss}", |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 "id", &res->id, |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 "job_id", &res->job_id, |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 "worker_id", &res->worker_id, |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 "exitcode", &res->exitcode, |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 "log", &res->log |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 ); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 } |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 static inline json_t * |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 worker_packer(const struct worker *w) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 return json_pack("{si ss ss}", |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 "id", w->id, |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 "name", w->name, |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 "desc", w->desc |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 ); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 } |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 static inline int |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 worker_unpacker(struct worker *w, json_t *doc) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 return json_unpack(doc, "{si ss ss}", |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 "id", &w->id, |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 "name", &w->name, |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 "desc", &w->desc |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 ); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 } |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 static inline json_t * |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 project_packer(struct project *p) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
75 { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 return json_pack("{si ss ss ss ss}", |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
77 "id", p->id, |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
78 "name", p->name, |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
79 "desc", p->desc, |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
80 "url", p->url, |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
81 "script", p->script |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
82 ); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
83 } |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
84 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
85 static inline int |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
86 project_unpacker(struct project *p, json_t *doc) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
87 { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 return json_unpack(doc, "{si ss ss ss ss}", |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
89 "id", &p->id, |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
90 "name", &p->name, |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
91 "desc", &p->desc, |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
92 "url", &p->url, |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
93 "script", &p->script |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
94 ); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
95 } |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
96 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
97 static json_t * |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
98 to(const void *array, size_t arraysz, size_t width, packer fn) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
99 { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
100 json_t *doc; |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
101 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
102 if (arraysz == 1) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
103 doc = fn(array); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
104 else { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
105 doc = json_array(); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
106 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
107 for (size_t i = 0; i < arraysz; ++i) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
108 json_array_append(doc, fn((char *)array + (i * width))); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
109 } |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
110 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
111 return doc; |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
112 } |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
113 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
114 static ssize_t |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
115 from(void *array, size_t arraysz, size_t width, json_t *doc, unpacker fn) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
116 { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
117 json_t *val; |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
118 size_t i, tot = 0; |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
119 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
120 if (json_is_array(doc)) { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
121 json_array_foreach(doc, i, val) { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
122 if (tot >= arraysz) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
123 return errno = ERANGE, -1; |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
124 if (fn((char *)array + (tot++ * width), val) < 0) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
125 return errno = EILSEQ, -1; |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
126 } |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
127 } else if (json_is_object(doc)) { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
128 tot = 1; |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
129 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
130 if (fn(array, doc) < 0) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
131 return errno = EILSEQ, -1; |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
132 } else |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
133 return errno = EINVAL, -1; |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
134 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
135 return tot; |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
136 } |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
137 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
138 json_t * |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
139 job_to(const struct job *jobs, size_t jobsz) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
140 { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
141 assert(jobs); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
142 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
143 return to(jobs, jobsz, sizeof (*jobs), (packer)job_packer); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
144 } |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
145 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
146 ssize_t |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
147 job_from(struct job *jobs, size_t jobsz, json_t *doc) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
148 { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
149 assert(jobs); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
150 assert(doc); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
151 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
152 return from(jobs, jobsz, sizeof (*jobs), doc, (unpacker)job_unpacker); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
153 } |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
154 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
155 json_t * |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
156 jobresult_to(const struct jobresult *res, size_t resz) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
157 { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
158 assert(res); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
159 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
160 return to(res, resz, sizeof (*res), (packer)jobresult_packer); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
161 } |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
162 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
163 ssize_t |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
164 jobresult_from(struct jobresult *res, size_t resz, json_t *doc) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
165 { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
166 assert(res); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
167 assert(doc); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
168 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
169 return from(res, resz, sizeof (*res), doc, (unpacker)jobresult_unpacker); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
170 } |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
171 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
172 json_t * |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
173 worker_to(const struct worker *w, size_t wsz) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
174 { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
175 assert(w); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
176 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
177 return to(w, wsz, sizeof (*w), (packer)worker_packer); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
178 } |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
179 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
180 ssize_t |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
181 worker_from(struct worker *w, size_t wsz, json_t *doc) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
182 { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
183 assert(w); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
184 assert(doc); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
185 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
186 return from(w, wsz, sizeof (*w), doc, (unpacker)worker_unpacker); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
187 } |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
188 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
189 json_t * |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
190 project_to(const struct project *proj, size_t projsz) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
191 { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
192 assert(proj); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
193 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
194 return to(proj, projsz, sizeof (*proj), (packer)project_packer); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
195 } |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
196 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
197 ssize_t |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
198 project_from(struct project *proj, size_t projsz, json_t *doc) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
199 { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
200 assert(proj); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
201 assert(doc); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
202 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
203 return from(proj, projsz, sizeof (*proj), doc, (unpacker)project_unpacker); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
204 } |