Coverage Report

Created: 2026-08-14 06:04

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/open5gs/lib/sbi/openapi/model/td_traffic.c
Line
Count
Source
1
2
#include <stdlib.h>
3
#include <string.h>
4
#include <stdio.h>
5
#include "td_traffic.h"
6
7
OpenAPI_td_traffic_t *OpenAPI_td_traffic_create(
8
    OpenAPI_list_t *pdu_ses_traf_reqs,
9
    bool is_ul_vol,
10
    long ul_vol,
11
    bool is_dl_vol,
12
    long dl_vol,
13
    bool is_all_vol,
14
    long all_vol,
15
    bool is_ul_num_of_pkt,
16
    int ul_num_of_pkt,
17
    bool is_dl_num_of_pkt,
18
    int dl_num_of_pkt,
19
    bool is_all_num_of_pkt,
20
    int all_num_of_pkt
21
)
22
0
{
23
0
    OpenAPI_td_traffic_t *td_traffic_local_var = ogs_malloc(sizeof(OpenAPI_td_traffic_t));
24
0
    ogs_assert(td_traffic_local_var);
25
26
0
    td_traffic_local_var->pdu_ses_traf_reqs = pdu_ses_traf_reqs;
27
0
    td_traffic_local_var->is_ul_vol = is_ul_vol;
28
0
    td_traffic_local_var->ul_vol = ul_vol;
29
0
    td_traffic_local_var->is_dl_vol = is_dl_vol;
30
0
    td_traffic_local_var->dl_vol = dl_vol;
31
0
    td_traffic_local_var->is_all_vol = is_all_vol;
32
0
    td_traffic_local_var->all_vol = all_vol;
33
0
    td_traffic_local_var->is_ul_num_of_pkt = is_ul_num_of_pkt;
34
0
    td_traffic_local_var->ul_num_of_pkt = ul_num_of_pkt;
35
0
    td_traffic_local_var->is_dl_num_of_pkt = is_dl_num_of_pkt;
36
0
    td_traffic_local_var->dl_num_of_pkt = dl_num_of_pkt;
37
0
    td_traffic_local_var->is_all_num_of_pkt = is_all_num_of_pkt;
38
0
    td_traffic_local_var->all_num_of_pkt = all_num_of_pkt;
39
40
0
    return td_traffic_local_var;
41
0
}
42
43
void OpenAPI_td_traffic_free(OpenAPI_td_traffic_t *td_traffic)
44
0
{
45
0
    OpenAPI_lnode_t *node = NULL;
46
47
0
    if (NULL == td_traffic) {
48
0
        return;
49
0
    }
50
0
    if (td_traffic->pdu_ses_traf_reqs) {
51
0
        OpenAPI_list_for_each(td_traffic->pdu_ses_traf_reqs, node) {
52
0
            OpenAPI_pdu_ses_traffic_req_free(node->data);
53
0
        }
54
0
        OpenAPI_list_free(td_traffic->pdu_ses_traf_reqs);
55
0
        td_traffic->pdu_ses_traf_reqs = NULL;
56
0
    }
57
0
    ogs_free(td_traffic);
58
0
}
59
60
cJSON *OpenAPI_td_traffic_convertToJSON(OpenAPI_td_traffic_t *td_traffic)
61
0
{
62
0
    cJSON *item = NULL;
63
0
    OpenAPI_lnode_t *node = NULL;
64
65
0
    if (td_traffic == NULL) {
66
0
        ogs_error("OpenAPI_td_traffic_convertToJSON() failed [TdTraffic]");
67
0
        return NULL;
68
0
    }
69
70
0
    item = cJSON_CreateObject();
71
0
    if (td_traffic->pdu_ses_traf_reqs) {
72
0
    cJSON *pdu_ses_traf_reqsList = cJSON_AddArrayToObject(item, "pduSesTrafReqs");
73
0
    if (pdu_ses_traf_reqsList == NULL) {
74
0
        ogs_error("OpenAPI_td_traffic_convertToJSON() failed [pdu_ses_traf_reqs]");
75
0
        goto end;
76
0
    }
77
0
    OpenAPI_list_for_each(td_traffic->pdu_ses_traf_reqs, node) {
78
0
        cJSON *itemLocal = OpenAPI_pdu_ses_traffic_req_convertToJSON(node->data);
79
0
        if (itemLocal == NULL) {
80
0
            ogs_error("OpenAPI_td_traffic_convertToJSON() failed [pdu_ses_traf_reqs]");
81
0
            goto end;
82
0
        }
83
0
        cJSON_AddItemToArray(pdu_ses_traf_reqsList, itemLocal);
84
0
    }
85
0
    }
86
87
0
    if (td_traffic->is_ul_vol) {
88
0
    if (cJSON_AddNumberToObject(item, "ulVol", td_traffic->ul_vol) == NULL) {
89
0
        ogs_error("OpenAPI_td_traffic_convertToJSON() failed [ul_vol]");
90
0
        goto end;
91
0
    }
92
0
    }
93
94
0
    if (td_traffic->is_dl_vol) {
95
0
    if (cJSON_AddNumberToObject(item, "dlVol", td_traffic->dl_vol) == NULL) {
96
0
        ogs_error("OpenAPI_td_traffic_convertToJSON() failed [dl_vol]");
97
0
        goto end;
98
0
    }
99
0
    }
100
101
0
    if (td_traffic->is_all_vol) {
102
0
    if (cJSON_AddNumberToObject(item, "allVol", td_traffic->all_vol) == NULL) {
103
0
        ogs_error("OpenAPI_td_traffic_convertToJSON() failed [all_vol]");
104
0
        goto end;
105
0
    }
106
0
    }
107
108
0
    if (td_traffic->is_ul_num_of_pkt) {
109
0
    if (cJSON_AddNumberToObject(item, "ulNumOfPkt", td_traffic->ul_num_of_pkt) == NULL) {
110
0
        ogs_error("OpenAPI_td_traffic_convertToJSON() failed [ul_num_of_pkt]");
111
0
        goto end;
112
0
    }
113
0
    }
114
115
0
    if (td_traffic->is_dl_num_of_pkt) {
116
0
    if (cJSON_AddNumberToObject(item, "dlNumOfPkt", td_traffic->dl_num_of_pkt) == NULL) {
117
0
        ogs_error("OpenAPI_td_traffic_convertToJSON() failed [dl_num_of_pkt]");
118
0
        goto end;
119
0
    }
120
0
    }
121
122
0
    if (td_traffic->is_all_num_of_pkt) {
123
0
    if (cJSON_AddNumberToObject(item, "allNumOfPkt", td_traffic->all_num_of_pkt) == NULL) {
124
0
        ogs_error("OpenAPI_td_traffic_convertToJSON() failed [all_num_of_pkt]");
125
0
        goto end;
126
0
    }
127
0
    }
128
129
0
end:
130
0
    return item;
131
0
}
132
133
OpenAPI_td_traffic_t *OpenAPI_td_traffic_parseFromJSON(cJSON *td_trafficJSON)
134
0
{
135
0
    OpenAPI_td_traffic_t *td_traffic_local_var = NULL;
136
0
    OpenAPI_lnode_t *node = NULL;
137
0
    cJSON *pdu_ses_traf_reqs = NULL;
138
0
    OpenAPI_list_t *pdu_ses_traf_reqsList = NULL;
139
0
    cJSON *ul_vol = NULL;
140
0
    cJSON *dl_vol = NULL;
141
0
    cJSON *all_vol = NULL;
142
0
    cJSON *ul_num_of_pkt = NULL;
143
0
    cJSON *dl_num_of_pkt = NULL;
144
0
    cJSON *all_num_of_pkt = NULL;
145
0
    pdu_ses_traf_reqs = cJSON_GetObjectItemCaseSensitive(td_trafficJSON, "pduSesTrafReqs");
146
0
    if (pdu_ses_traf_reqs) {
147
0
        cJSON *pdu_ses_traf_reqs_local = NULL;
148
0
        if (!cJSON_IsArray(pdu_ses_traf_reqs)) {
149
0
            ogs_error("OpenAPI_td_traffic_parseFromJSON() failed [pdu_ses_traf_reqs]");
150
0
            goto end;
151
0
        }
152
153
0
        pdu_ses_traf_reqsList = OpenAPI_list_create();
154
155
0
        cJSON_ArrayForEach(pdu_ses_traf_reqs_local, pdu_ses_traf_reqs) {
156
0
            if (!cJSON_IsObject(pdu_ses_traf_reqs_local)) {
157
0
                ogs_error("OpenAPI_td_traffic_parseFromJSON() failed [pdu_ses_traf_reqs]");
158
0
                goto end;
159
0
            }
160
0
            OpenAPI_pdu_ses_traffic_req_t *pdu_ses_traf_reqsItem = OpenAPI_pdu_ses_traffic_req_parseFromJSON(pdu_ses_traf_reqs_local);
161
0
            if (!pdu_ses_traf_reqsItem) {
162
0
                ogs_error("No pdu_ses_traf_reqsItem");
163
0
                goto end;
164
0
            }
165
0
            OpenAPI_list_add(pdu_ses_traf_reqsList, pdu_ses_traf_reqsItem);
166
0
        }
167
0
    }
168
169
0
    ul_vol = cJSON_GetObjectItemCaseSensitive(td_trafficJSON, "ulVol");
170
0
    if (ul_vol) {
171
0
    if (!cJSON_IsNumber(ul_vol)) {
172
0
        ogs_error("OpenAPI_td_traffic_parseFromJSON() failed [ul_vol]");
173
0
        goto end;
174
0
    }
175
0
    }
176
177
0
    dl_vol = cJSON_GetObjectItemCaseSensitive(td_trafficJSON, "dlVol");
178
0
    if (dl_vol) {
179
0
    if (!cJSON_IsNumber(dl_vol)) {
180
0
        ogs_error("OpenAPI_td_traffic_parseFromJSON() failed [dl_vol]");
181
0
        goto end;
182
0
    }
183
0
    }
184
185
0
    all_vol = cJSON_GetObjectItemCaseSensitive(td_trafficJSON, "allVol");
186
0
    if (all_vol) {
187
0
    if (!cJSON_IsNumber(all_vol)) {
188
0
        ogs_error("OpenAPI_td_traffic_parseFromJSON() failed [all_vol]");
189
0
        goto end;
190
0
    }
191
0
    }
192
193
0
    ul_num_of_pkt = cJSON_GetObjectItemCaseSensitive(td_trafficJSON, "ulNumOfPkt");
194
0
    if (ul_num_of_pkt) {
195
0
    if (!cJSON_IsNumber(ul_num_of_pkt)) {
196
0
        ogs_error("OpenAPI_td_traffic_parseFromJSON() failed [ul_num_of_pkt]");
197
0
        goto end;
198
0
    }
199
0
    }
200
201
0
    dl_num_of_pkt = cJSON_GetObjectItemCaseSensitive(td_trafficJSON, "dlNumOfPkt");
202
0
    if (dl_num_of_pkt) {
203
0
    if (!cJSON_IsNumber(dl_num_of_pkt)) {
204
0
        ogs_error("OpenAPI_td_traffic_parseFromJSON() failed [dl_num_of_pkt]");
205
0
        goto end;
206
0
    }
207
0
    }
208
209
0
    all_num_of_pkt = cJSON_GetObjectItemCaseSensitive(td_trafficJSON, "allNumOfPkt");
210
0
    if (all_num_of_pkt) {
211
0
    if (!cJSON_IsNumber(all_num_of_pkt)) {
212
0
        ogs_error("OpenAPI_td_traffic_parseFromJSON() failed [all_num_of_pkt]");
213
0
        goto end;
214
0
    }
215
0
    }
216
217
0
    td_traffic_local_var = OpenAPI_td_traffic_create (
218
0
        pdu_ses_traf_reqs ? pdu_ses_traf_reqsList : NULL,
219
0
        ul_vol ? true : false,
220
0
        ul_vol ? ul_vol->valuedouble : 0,
221
0
        dl_vol ? true : false,
222
0
        dl_vol ? dl_vol->valuedouble : 0,
223
0
        all_vol ? true : false,
224
0
        all_vol ? all_vol->valuedouble : 0,
225
0
        ul_num_of_pkt ? true : false,
226
0
        ul_num_of_pkt ? ul_num_of_pkt->valuedouble : 0,
227
0
        dl_num_of_pkt ? true : false,
228
0
        dl_num_of_pkt ? dl_num_of_pkt->valuedouble : 0,
229
0
        all_num_of_pkt ? true : false,
230
0
        all_num_of_pkt ? all_num_of_pkt->valuedouble : 0
231
0
    );
232
233
0
    return td_traffic_local_var;
234
0
end:
235
0
    if (pdu_ses_traf_reqsList) {
236
0
        OpenAPI_list_for_each(pdu_ses_traf_reqsList, node) {
237
0
            OpenAPI_pdu_ses_traffic_req_free(node->data);
238
0
        }
239
0
        OpenAPI_list_free(pdu_ses_traf_reqsList);
240
0
        pdu_ses_traf_reqsList = NULL;
241
0
    }
242
0
    return NULL;
243
0
}
244
245
OpenAPI_td_traffic_t *OpenAPI_td_traffic_copy(OpenAPI_td_traffic_t *dst, OpenAPI_td_traffic_t *src)
246
0
{
247
0
    cJSON *item = NULL;
248
0
    char *content = NULL;
249
250
0
    ogs_assert(src);
251
0
    item = OpenAPI_td_traffic_convertToJSON(src);
252
0
    if (!item) {
253
0
        ogs_error("OpenAPI_td_traffic_convertToJSON() failed");
254
0
        return NULL;
255
0
    }
256
257
0
    content = cJSON_Print(item);
258
0
    cJSON_Delete(item);
259
260
0
    if (!content) {
261
0
        ogs_error("cJSON_Print() failed");
262
0
        return NULL;
263
0
    }
264
265
0
    item = cJSON_Parse(content);
266
0
    ogs_free(content);
267
0
    if (!item) {
268
0
        ogs_error("cJSON_Parse() failed");
269
0
        return NULL;
270
0
    }
271
272
0
    OpenAPI_td_traffic_free(dst);
273
0
    dst = OpenAPI_td_traffic_parseFromJSON(item);
274
0
    cJSON_Delete(item);
275
276
0
    return dst;
277
0
}
278