/src/open5gs/lib/sbi/openapi/model/scheduled_area.c
Line | Count | Source |
1 | | |
2 | | #include <stdlib.h> |
3 | | #include <string.h> |
4 | | #include <stdio.h> |
5 | | #include "scheduled_area.h" |
6 | | |
7 | | OpenAPI_scheduled_area_t *OpenAPI_scheduled_area_create( |
8 | | OpenAPI_list_t *tai_list, |
9 | | char *enter_time, |
10 | | char *leave_time, |
11 | | bool is_altitude_low, |
12 | | double altitude_low, |
13 | | bool is_altitude_high, |
14 | | double altitude_high, |
15 | | OpenAPI_list_t *ran_node_id_list, |
16 | | OpenAPI_list_t *ncgi_list, |
17 | | OpenAPI_list_t *ecgi_list |
18 | | ) |
19 | 0 | { |
20 | 0 | OpenAPI_scheduled_area_t *scheduled_area_local_var = ogs_malloc(sizeof(OpenAPI_scheduled_area_t)); |
21 | 0 | ogs_assert(scheduled_area_local_var); |
22 | | |
23 | 0 | scheduled_area_local_var->tai_list = tai_list; |
24 | 0 | scheduled_area_local_var->enter_time = enter_time; |
25 | 0 | scheduled_area_local_var->leave_time = leave_time; |
26 | 0 | scheduled_area_local_var->is_altitude_low = is_altitude_low; |
27 | 0 | scheduled_area_local_var->altitude_low = altitude_low; |
28 | 0 | scheduled_area_local_var->is_altitude_high = is_altitude_high; |
29 | 0 | scheduled_area_local_var->altitude_high = altitude_high; |
30 | 0 | scheduled_area_local_var->ran_node_id_list = ran_node_id_list; |
31 | 0 | scheduled_area_local_var->ncgi_list = ncgi_list; |
32 | 0 | scheduled_area_local_var->ecgi_list = ecgi_list; |
33 | |
|
34 | 0 | return scheduled_area_local_var; |
35 | 0 | } |
36 | | |
37 | | void OpenAPI_scheduled_area_free(OpenAPI_scheduled_area_t *scheduled_area) |
38 | 0 | { |
39 | 0 | OpenAPI_lnode_t *node = NULL; |
40 | |
|
41 | 0 | if (NULL == scheduled_area) { |
42 | 0 | return; |
43 | 0 | } |
44 | 0 | if (scheduled_area->tai_list) { |
45 | 0 | OpenAPI_list_for_each(scheduled_area->tai_list, node) { |
46 | 0 | OpenAPI_tai_free(node->data); |
47 | 0 | } |
48 | 0 | OpenAPI_list_free(scheduled_area->tai_list); |
49 | 0 | scheduled_area->tai_list = NULL; |
50 | 0 | } |
51 | 0 | if (scheduled_area->enter_time) { |
52 | 0 | ogs_free(scheduled_area->enter_time); |
53 | 0 | scheduled_area->enter_time = NULL; |
54 | 0 | } |
55 | 0 | if (scheduled_area->leave_time) { |
56 | 0 | ogs_free(scheduled_area->leave_time); |
57 | 0 | scheduled_area->leave_time = NULL; |
58 | 0 | } |
59 | 0 | if (scheduled_area->ran_node_id_list) { |
60 | 0 | OpenAPI_list_for_each(scheduled_area->ran_node_id_list, node) { |
61 | 0 | OpenAPI_global_ran_node_id_free(node->data); |
62 | 0 | } |
63 | 0 | OpenAPI_list_free(scheduled_area->ran_node_id_list); |
64 | 0 | scheduled_area->ran_node_id_list = NULL; |
65 | 0 | } |
66 | 0 | if (scheduled_area->ncgi_list) { |
67 | 0 | OpenAPI_list_for_each(scheduled_area->ncgi_list, node) { |
68 | 0 | OpenAPI_ncgi_free(node->data); |
69 | 0 | } |
70 | 0 | OpenAPI_list_free(scheduled_area->ncgi_list); |
71 | 0 | scheduled_area->ncgi_list = NULL; |
72 | 0 | } |
73 | 0 | if (scheduled_area->ecgi_list) { |
74 | 0 | OpenAPI_list_for_each(scheduled_area->ecgi_list, node) { |
75 | 0 | OpenAPI_ecgi_free(node->data); |
76 | 0 | } |
77 | 0 | OpenAPI_list_free(scheduled_area->ecgi_list); |
78 | 0 | scheduled_area->ecgi_list = NULL; |
79 | 0 | } |
80 | 0 | ogs_free(scheduled_area); |
81 | 0 | } |
82 | | |
83 | | cJSON *OpenAPI_scheduled_area_convertToJSON(OpenAPI_scheduled_area_t *scheduled_area) |
84 | 0 | { |
85 | 0 | cJSON *item = NULL; |
86 | 0 | OpenAPI_lnode_t *node = NULL; |
87 | |
|
88 | 0 | if (scheduled_area == NULL) { |
89 | 0 | ogs_error("OpenAPI_scheduled_area_convertToJSON() failed [ScheduledArea]"); |
90 | 0 | return NULL; |
91 | 0 | } |
92 | | |
93 | 0 | item = cJSON_CreateObject(); |
94 | 0 | if (scheduled_area->tai_list) { |
95 | 0 | cJSON *tai_listList = cJSON_AddArrayToObject(item, "taiList"); |
96 | 0 | if (tai_listList == NULL) { |
97 | 0 | ogs_error("OpenAPI_scheduled_area_convertToJSON() failed [tai_list]"); |
98 | 0 | goto end; |
99 | 0 | } |
100 | 0 | OpenAPI_list_for_each(scheduled_area->tai_list, node) { |
101 | 0 | cJSON *itemLocal = OpenAPI_tai_convertToJSON(node->data); |
102 | 0 | if (itemLocal == NULL) { |
103 | 0 | ogs_error("OpenAPI_scheduled_area_convertToJSON() failed [tai_list]"); |
104 | 0 | goto end; |
105 | 0 | } |
106 | 0 | cJSON_AddItemToArray(tai_listList, itemLocal); |
107 | 0 | } |
108 | 0 | } |
109 | | |
110 | 0 | if (scheduled_area->enter_time) { |
111 | 0 | if (cJSON_AddStringToObject(item, "enterTime", scheduled_area->enter_time) == NULL) { |
112 | 0 | ogs_error("OpenAPI_scheduled_area_convertToJSON() failed [enter_time]"); |
113 | 0 | goto end; |
114 | 0 | } |
115 | 0 | } |
116 | | |
117 | 0 | if (scheduled_area->leave_time) { |
118 | 0 | if (cJSON_AddStringToObject(item, "leaveTime", scheduled_area->leave_time) == NULL) { |
119 | 0 | ogs_error("OpenAPI_scheduled_area_convertToJSON() failed [leave_time]"); |
120 | 0 | goto end; |
121 | 0 | } |
122 | 0 | } |
123 | | |
124 | 0 | if (scheduled_area->is_altitude_low) { |
125 | 0 | if (cJSON_AddNumberToObject(item, "altitudeLow", scheduled_area->altitude_low) == NULL) { |
126 | 0 | ogs_error("OpenAPI_scheduled_area_convertToJSON() failed [altitude_low]"); |
127 | 0 | goto end; |
128 | 0 | } |
129 | 0 | } |
130 | | |
131 | 0 | if (scheduled_area->is_altitude_high) { |
132 | 0 | if (cJSON_AddNumberToObject(item, "altitudeHigh", scheduled_area->altitude_high) == NULL) { |
133 | 0 | ogs_error("OpenAPI_scheduled_area_convertToJSON() failed [altitude_high]"); |
134 | 0 | goto end; |
135 | 0 | } |
136 | 0 | } |
137 | | |
138 | 0 | if (scheduled_area->ran_node_id_list) { |
139 | 0 | cJSON *ran_node_id_listList = cJSON_AddArrayToObject(item, "ranNodeIdList"); |
140 | 0 | if (ran_node_id_listList == NULL) { |
141 | 0 | ogs_error("OpenAPI_scheduled_area_convertToJSON() failed [ran_node_id_list]"); |
142 | 0 | goto end; |
143 | 0 | } |
144 | 0 | OpenAPI_list_for_each(scheduled_area->ran_node_id_list, node) { |
145 | 0 | cJSON *itemLocal = OpenAPI_global_ran_node_id_convertToJSON(node->data); |
146 | 0 | if (itemLocal == NULL) { |
147 | 0 | ogs_error("OpenAPI_scheduled_area_convertToJSON() failed [ran_node_id_list]"); |
148 | 0 | goto end; |
149 | 0 | } |
150 | 0 | cJSON_AddItemToArray(ran_node_id_listList, itemLocal); |
151 | 0 | } |
152 | 0 | } |
153 | | |
154 | 0 | if (scheduled_area->ncgi_list) { |
155 | 0 | cJSON *ncgi_listList = cJSON_AddArrayToObject(item, "ncgiList"); |
156 | 0 | if (ncgi_listList == NULL) { |
157 | 0 | ogs_error("OpenAPI_scheduled_area_convertToJSON() failed [ncgi_list]"); |
158 | 0 | goto end; |
159 | 0 | } |
160 | 0 | OpenAPI_list_for_each(scheduled_area->ncgi_list, node) { |
161 | 0 | cJSON *itemLocal = OpenAPI_ncgi_convertToJSON(node->data); |
162 | 0 | if (itemLocal == NULL) { |
163 | 0 | ogs_error("OpenAPI_scheduled_area_convertToJSON() failed [ncgi_list]"); |
164 | 0 | goto end; |
165 | 0 | } |
166 | 0 | cJSON_AddItemToArray(ncgi_listList, itemLocal); |
167 | 0 | } |
168 | 0 | } |
169 | | |
170 | 0 | if (scheduled_area->ecgi_list) { |
171 | 0 | cJSON *ecgi_listList = cJSON_AddArrayToObject(item, "ecgiList"); |
172 | 0 | if (ecgi_listList == NULL) { |
173 | 0 | ogs_error("OpenAPI_scheduled_area_convertToJSON() failed [ecgi_list]"); |
174 | 0 | goto end; |
175 | 0 | } |
176 | 0 | OpenAPI_list_for_each(scheduled_area->ecgi_list, node) { |
177 | 0 | cJSON *itemLocal = OpenAPI_ecgi_convertToJSON(node->data); |
178 | 0 | if (itemLocal == NULL) { |
179 | 0 | ogs_error("OpenAPI_scheduled_area_convertToJSON() failed [ecgi_list]"); |
180 | 0 | goto end; |
181 | 0 | } |
182 | 0 | cJSON_AddItemToArray(ecgi_listList, itemLocal); |
183 | 0 | } |
184 | 0 | } |
185 | | |
186 | 0 | end: |
187 | 0 | return item; |
188 | 0 | } |
189 | | |
190 | | OpenAPI_scheduled_area_t *OpenAPI_scheduled_area_parseFromJSON(cJSON *scheduled_areaJSON) |
191 | 0 | { |
192 | 0 | OpenAPI_scheduled_area_t *scheduled_area_local_var = NULL; |
193 | 0 | OpenAPI_lnode_t *node = NULL; |
194 | 0 | cJSON *tai_list = NULL; |
195 | 0 | OpenAPI_list_t *tai_listList = NULL; |
196 | 0 | cJSON *enter_time = NULL; |
197 | 0 | cJSON *leave_time = NULL; |
198 | 0 | cJSON *altitude_low = NULL; |
199 | 0 | cJSON *altitude_high = NULL; |
200 | 0 | cJSON *ran_node_id_list = NULL; |
201 | 0 | OpenAPI_list_t *ran_node_id_listList = NULL; |
202 | 0 | cJSON *ncgi_list = NULL; |
203 | 0 | OpenAPI_list_t *ncgi_listList = NULL; |
204 | 0 | cJSON *ecgi_list = NULL; |
205 | 0 | OpenAPI_list_t *ecgi_listList = NULL; |
206 | 0 | tai_list = cJSON_GetObjectItemCaseSensitive(scheduled_areaJSON, "taiList"); |
207 | 0 | if (tai_list) { |
208 | 0 | cJSON *tai_list_local = NULL; |
209 | 0 | if (!cJSON_IsArray(tai_list)) { |
210 | 0 | ogs_error("OpenAPI_scheduled_area_parseFromJSON() failed [tai_list]"); |
211 | 0 | goto end; |
212 | 0 | } |
213 | | |
214 | 0 | tai_listList = OpenAPI_list_create(); |
215 | |
|
216 | 0 | cJSON_ArrayForEach(tai_list_local, tai_list) { |
217 | 0 | if (!cJSON_IsObject(tai_list_local)) { |
218 | 0 | ogs_error("OpenAPI_scheduled_area_parseFromJSON() failed [tai_list]"); |
219 | 0 | goto end; |
220 | 0 | } |
221 | 0 | OpenAPI_tai_t *tai_listItem = OpenAPI_tai_parseFromJSON(tai_list_local); |
222 | 0 | if (!tai_listItem) { |
223 | 0 | ogs_error("No tai_listItem"); |
224 | 0 | goto end; |
225 | 0 | } |
226 | 0 | OpenAPI_list_add(tai_listList, tai_listItem); |
227 | 0 | } |
228 | 0 | } |
229 | | |
230 | 0 | enter_time = cJSON_GetObjectItemCaseSensitive(scheduled_areaJSON, "enterTime"); |
231 | 0 | if (enter_time) { |
232 | 0 | if (!cJSON_IsString(enter_time) && !cJSON_IsNull(enter_time)) { |
233 | 0 | ogs_error("OpenAPI_scheduled_area_parseFromJSON() failed [enter_time]"); |
234 | 0 | goto end; |
235 | 0 | } |
236 | 0 | } |
237 | | |
238 | 0 | leave_time = cJSON_GetObjectItemCaseSensitive(scheduled_areaJSON, "leaveTime"); |
239 | 0 | if (leave_time) { |
240 | 0 | if (!cJSON_IsString(leave_time) && !cJSON_IsNull(leave_time)) { |
241 | 0 | ogs_error("OpenAPI_scheduled_area_parseFromJSON() failed [leave_time]"); |
242 | 0 | goto end; |
243 | 0 | } |
244 | 0 | } |
245 | | |
246 | 0 | altitude_low = cJSON_GetObjectItemCaseSensitive(scheduled_areaJSON, "altitudeLow"); |
247 | 0 | if (altitude_low) { |
248 | 0 | if (!cJSON_IsNumber(altitude_low)) { |
249 | 0 | ogs_error("OpenAPI_scheduled_area_parseFromJSON() failed [altitude_low]"); |
250 | 0 | goto end; |
251 | 0 | } |
252 | 0 | } |
253 | | |
254 | 0 | altitude_high = cJSON_GetObjectItemCaseSensitive(scheduled_areaJSON, "altitudeHigh"); |
255 | 0 | if (altitude_high) { |
256 | 0 | if (!cJSON_IsNumber(altitude_high)) { |
257 | 0 | ogs_error("OpenAPI_scheduled_area_parseFromJSON() failed [altitude_high]"); |
258 | 0 | goto end; |
259 | 0 | } |
260 | 0 | } |
261 | | |
262 | 0 | ran_node_id_list = cJSON_GetObjectItemCaseSensitive(scheduled_areaJSON, "ranNodeIdList"); |
263 | 0 | if (ran_node_id_list) { |
264 | 0 | cJSON *ran_node_id_list_local = NULL; |
265 | 0 | if (!cJSON_IsArray(ran_node_id_list)) { |
266 | 0 | ogs_error("OpenAPI_scheduled_area_parseFromJSON() failed [ran_node_id_list]"); |
267 | 0 | goto end; |
268 | 0 | } |
269 | | |
270 | 0 | ran_node_id_listList = OpenAPI_list_create(); |
271 | |
|
272 | 0 | cJSON_ArrayForEach(ran_node_id_list_local, ran_node_id_list) { |
273 | 0 | if (!cJSON_IsObject(ran_node_id_list_local)) { |
274 | 0 | ogs_error("OpenAPI_scheduled_area_parseFromJSON() failed [ran_node_id_list]"); |
275 | 0 | goto end; |
276 | 0 | } |
277 | 0 | OpenAPI_global_ran_node_id_t *ran_node_id_listItem = OpenAPI_global_ran_node_id_parseFromJSON(ran_node_id_list_local); |
278 | 0 | if (!ran_node_id_listItem) { |
279 | 0 | ogs_error("No ran_node_id_listItem"); |
280 | 0 | goto end; |
281 | 0 | } |
282 | 0 | OpenAPI_list_add(ran_node_id_listList, ran_node_id_listItem); |
283 | 0 | } |
284 | 0 | } |
285 | | |
286 | 0 | ncgi_list = cJSON_GetObjectItemCaseSensitive(scheduled_areaJSON, "ncgiList"); |
287 | 0 | if (ncgi_list) { |
288 | 0 | cJSON *ncgi_list_local = NULL; |
289 | 0 | if (!cJSON_IsArray(ncgi_list)) { |
290 | 0 | ogs_error("OpenAPI_scheduled_area_parseFromJSON() failed [ncgi_list]"); |
291 | 0 | goto end; |
292 | 0 | } |
293 | | |
294 | 0 | ncgi_listList = OpenAPI_list_create(); |
295 | |
|
296 | 0 | cJSON_ArrayForEach(ncgi_list_local, ncgi_list) { |
297 | 0 | if (!cJSON_IsObject(ncgi_list_local)) { |
298 | 0 | ogs_error("OpenAPI_scheduled_area_parseFromJSON() failed [ncgi_list]"); |
299 | 0 | goto end; |
300 | 0 | } |
301 | 0 | OpenAPI_ncgi_t *ncgi_listItem = OpenAPI_ncgi_parseFromJSON(ncgi_list_local); |
302 | 0 | if (!ncgi_listItem) { |
303 | 0 | ogs_error("No ncgi_listItem"); |
304 | 0 | goto end; |
305 | 0 | } |
306 | 0 | OpenAPI_list_add(ncgi_listList, ncgi_listItem); |
307 | 0 | } |
308 | 0 | } |
309 | | |
310 | 0 | ecgi_list = cJSON_GetObjectItemCaseSensitive(scheduled_areaJSON, "ecgiList"); |
311 | 0 | if (ecgi_list) { |
312 | 0 | cJSON *ecgi_list_local = NULL; |
313 | 0 | if (!cJSON_IsArray(ecgi_list)) { |
314 | 0 | ogs_error("OpenAPI_scheduled_area_parseFromJSON() failed [ecgi_list]"); |
315 | 0 | goto end; |
316 | 0 | } |
317 | | |
318 | 0 | ecgi_listList = OpenAPI_list_create(); |
319 | |
|
320 | 0 | cJSON_ArrayForEach(ecgi_list_local, ecgi_list) { |
321 | 0 | if (!cJSON_IsObject(ecgi_list_local)) { |
322 | 0 | ogs_error("OpenAPI_scheduled_area_parseFromJSON() failed [ecgi_list]"); |
323 | 0 | goto end; |
324 | 0 | } |
325 | 0 | OpenAPI_ecgi_t *ecgi_listItem = OpenAPI_ecgi_parseFromJSON(ecgi_list_local); |
326 | 0 | if (!ecgi_listItem) { |
327 | 0 | ogs_error("No ecgi_listItem"); |
328 | 0 | goto end; |
329 | 0 | } |
330 | 0 | OpenAPI_list_add(ecgi_listList, ecgi_listItem); |
331 | 0 | } |
332 | 0 | } |
333 | | |
334 | 0 | scheduled_area_local_var = OpenAPI_scheduled_area_create ( |
335 | 0 | tai_list ? tai_listList : NULL, |
336 | 0 | enter_time && !cJSON_IsNull(enter_time) ? ogs_strdup(enter_time->valuestring) : NULL, |
337 | 0 | leave_time && !cJSON_IsNull(leave_time) ? ogs_strdup(leave_time->valuestring) : NULL, |
338 | 0 | altitude_low ? true : false, |
339 | 0 | altitude_low ? altitude_low->valuedouble : 0, |
340 | 0 | altitude_high ? true : false, |
341 | 0 | altitude_high ? altitude_high->valuedouble : 0, |
342 | 0 | ran_node_id_list ? ran_node_id_listList : NULL, |
343 | 0 | ncgi_list ? ncgi_listList : NULL, |
344 | 0 | ecgi_list ? ecgi_listList : NULL |
345 | 0 | ); |
346 | |
|
347 | 0 | return scheduled_area_local_var; |
348 | 0 | end: |
349 | 0 | if (tai_listList) { |
350 | 0 | OpenAPI_list_for_each(tai_listList, node) { |
351 | 0 | OpenAPI_tai_free(node->data); |
352 | 0 | } |
353 | 0 | OpenAPI_list_free(tai_listList); |
354 | 0 | tai_listList = NULL; |
355 | 0 | } |
356 | 0 | if (ran_node_id_listList) { |
357 | 0 | OpenAPI_list_for_each(ran_node_id_listList, node) { |
358 | 0 | OpenAPI_global_ran_node_id_free(node->data); |
359 | 0 | } |
360 | 0 | OpenAPI_list_free(ran_node_id_listList); |
361 | 0 | ran_node_id_listList = NULL; |
362 | 0 | } |
363 | 0 | if (ncgi_listList) { |
364 | 0 | OpenAPI_list_for_each(ncgi_listList, node) { |
365 | 0 | OpenAPI_ncgi_free(node->data); |
366 | 0 | } |
367 | 0 | OpenAPI_list_free(ncgi_listList); |
368 | 0 | ncgi_listList = NULL; |
369 | 0 | } |
370 | 0 | if (ecgi_listList) { |
371 | 0 | OpenAPI_list_for_each(ecgi_listList, node) { |
372 | 0 | OpenAPI_ecgi_free(node->data); |
373 | 0 | } |
374 | 0 | OpenAPI_list_free(ecgi_listList); |
375 | 0 | ecgi_listList = NULL; |
376 | 0 | } |
377 | 0 | return NULL; |
378 | 0 | } |
379 | | |
380 | | OpenAPI_scheduled_area_t *OpenAPI_scheduled_area_copy(OpenAPI_scheduled_area_t *dst, OpenAPI_scheduled_area_t *src) |
381 | 0 | { |
382 | 0 | cJSON *item = NULL; |
383 | 0 | char *content = NULL; |
384 | |
|
385 | 0 | ogs_assert(src); |
386 | 0 | item = OpenAPI_scheduled_area_convertToJSON(src); |
387 | 0 | if (!item) { |
388 | 0 | ogs_error("OpenAPI_scheduled_area_convertToJSON() failed"); |
389 | 0 | return NULL; |
390 | 0 | } |
391 | | |
392 | 0 | content = cJSON_Print(item); |
393 | 0 | cJSON_Delete(item); |
394 | |
|
395 | 0 | if (!content) { |
396 | 0 | ogs_error("cJSON_Print() failed"); |
397 | 0 | return NULL; |
398 | 0 | } |
399 | | |
400 | 0 | item = cJSON_Parse(content); |
401 | 0 | ogs_free(content); |
402 | 0 | if (!item) { |
403 | 0 | ogs_error("cJSON_Parse() failed"); |
404 | 0 | return NULL; |
405 | 0 | } |
406 | | |
407 | 0 | OpenAPI_scheduled_area_free(dst); |
408 | 0 | dst = OpenAPI_scheduled_area_parseFromJSON(item); |
409 | 0 | cJSON_Delete(item); |
410 | |
|
411 | 0 | return dst; |
412 | 0 | } |
413 | | |