Coverage Report

Created: 2026-06-30 06:14

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/open5gs/lib/sbi/openapi/model/top_application.c
Line
Count
Source
1
2
#include <stdlib.h>
3
#include <string.h>
4
#include <stdio.h>
5
#include "top_application.h"
6
7
OpenAPI_top_application_t *OpenAPI_top_application_create(
8
    char *app_id,
9
    OpenAPI_flow_info_t *ip_traffic_filter,
10
    bool is_ratio,
11
    int ratio
12
)
13
0
{
14
0
    OpenAPI_top_application_t *top_application_local_var = ogs_malloc(sizeof(OpenAPI_top_application_t));
15
0
    ogs_assert(top_application_local_var);
16
17
0
    top_application_local_var->app_id = app_id;
18
0
    top_application_local_var->ip_traffic_filter = ip_traffic_filter;
19
0
    top_application_local_var->is_ratio = is_ratio;
20
0
    top_application_local_var->ratio = ratio;
21
22
0
    return top_application_local_var;
23
0
}
24
25
void OpenAPI_top_application_free(OpenAPI_top_application_t *top_application)
26
0
{
27
0
    OpenAPI_lnode_t *node = NULL;
28
29
0
    if (NULL == top_application) {
30
0
        return;
31
0
    }
32
0
    if (top_application->app_id) {
33
0
        ogs_free(top_application->app_id);
34
0
        top_application->app_id = NULL;
35
0
    }
36
0
    if (top_application->ip_traffic_filter) {
37
0
        OpenAPI_flow_info_free(top_application->ip_traffic_filter);
38
0
        top_application->ip_traffic_filter = NULL;
39
0
    }
40
0
    ogs_free(top_application);
41
0
}
42
43
cJSON *OpenAPI_top_application_convertToJSON(OpenAPI_top_application_t *top_application)
44
0
{
45
0
    cJSON *item = NULL;
46
0
    OpenAPI_lnode_t *node = NULL;
47
48
0
    if (top_application == NULL) {
49
0
        ogs_error("OpenAPI_top_application_convertToJSON() failed [TopApplication]");
50
0
        return NULL;
51
0
    }
52
53
0
    item = cJSON_CreateObject();
54
0
    if (top_application->app_id) {
55
0
    if (cJSON_AddStringToObject(item, "appId", top_application->app_id) == NULL) {
56
0
        ogs_error("OpenAPI_top_application_convertToJSON() failed [app_id]");
57
0
        goto end;
58
0
    }
59
0
    }
60
61
0
    if (top_application->ip_traffic_filter) {
62
0
    cJSON *ip_traffic_filter_local_JSON = OpenAPI_flow_info_convertToJSON(top_application->ip_traffic_filter);
63
0
    if (ip_traffic_filter_local_JSON == NULL) {
64
0
        ogs_error("OpenAPI_top_application_convertToJSON() failed [ip_traffic_filter]");
65
0
        goto end;
66
0
    }
67
0
    cJSON_AddItemToObject(item, "ipTrafficFilter", ip_traffic_filter_local_JSON);
68
0
    if (item->child == NULL) {
69
0
        ogs_error("OpenAPI_top_application_convertToJSON() failed [ip_traffic_filter]");
70
0
        goto end;
71
0
    }
72
0
    }
73
74
0
    if (top_application->is_ratio) {
75
0
    if (cJSON_AddNumberToObject(item, "ratio", top_application->ratio) == NULL) {
76
0
        ogs_error("OpenAPI_top_application_convertToJSON() failed [ratio]");
77
0
        goto end;
78
0
    }
79
0
    }
80
81
0
end:
82
0
    return item;
83
0
}
84
85
OpenAPI_top_application_t *OpenAPI_top_application_parseFromJSON(cJSON *top_applicationJSON)
86
0
{
87
0
    OpenAPI_top_application_t *top_application_local_var = NULL;
88
0
    OpenAPI_lnode_t *node = NULL;
89
0
    cJSON *app_id = NULL;
90
0
    cJSON *ip_traffic_filter = NULL;
91
0
    OpenAPI_flow_info_t *ip_traffic_filter_local_nonprim = NULL;
92
0
    cJSON *ratio = NULL;
93
0
    app_id = cJSON_GetObjectItemCaseSensitive(top_applicationJSON, "appId");
94
0
    if (app_id) {
95
0
    if (!cJSON_IsString(app_id) && !cJSON_IsNull(app_id)) {
96
0
        ogs_error("OpenAPI_top_application_parseFromJSON() failed [app_id]");
97
0
        goto end;
98
0
    }
99
0
    }
100
101
0
    ip_traffic_filter = cJSON_GetObjectItemCaseSensitive(top_applicationJSON, "ipTrafficFilter");
102
0
    if (ip_traffic_filter) {
103
0
    ip_traffic_filter_local_nonprim = OpenAPI_flow_info_parseFromJSON(ip_traffic_filter);
104
0
    if (!ip_traffic_filter_local_nonprim) {
105
0
        ogs_error("OpenAPI_flow_info_parseFromJSON failed [ip_traffic_filter]");
106
0
        goto end;
107
0
    }
108
0
    }
109
110
0
    ratio = cJSON_GetObjectItemCaseSensitive(top_applicationJSON, "ratio");
111
0
    if (ratio) {
112
0
    if (!cJSON_IsNumber(ratio)) {
113
0
        ogs_error("OpenAPI_top_application_parseFromJSON() failed [ratio]");
114
0
        goto end;
115
0
    }
116
0
    }
117
118
0
    top_application_local_var = OpenAPI_top_application_create (
119
0
        app_id && !cJSON_IsNull(app_id) ? ogs_strdup(app_id->valuestring) : NULL,
120
0
        ip_traffic_filter ? ip_traffic_filter_local_nonprim : NULL,
121
0
        ratio ? true : false,
122
0
        ratio ? ratio->valuedouble : 0
123
0
    );
124
125
0
    return top_application_local_var;
126
0
end:
127
0
    if (ip_traffic_filter_local_nonprim) {
128
0
        OpenAPI_flow_info_free(ip_traffic_filter_local_nonprim);
129
0
        ip_traffic_filter_local_nonprim = NULL;
130
0
    }
131
0
    return NULL;
132
0
}
133
134
OpenAPI_top_application_t *OpenAPI_top_application_copy(OpenAPI_top_application_t *dst, OpenAPI_top_application_t *src)
135
0
{
136
0
    cJSON *item = NULL;
137
0
    char *content = NULL;
138
139
0
    ogs_assert(src);
140
0
    item = OpenAPI_top_application_convertToJSON(src);
141
0
    if (!item) {
142
0
        ogs_error("OpenAPI_top_application_convertToJSON() failed");
143
0
        return NULL;
144
0
    }
145
146
0
    content = cJSON_Print(item);
147
0
    cJSON_Delete(item);
148
149
0
    if (!content) {
150
0
        ogs_error("cJSON_Print() failed");
151
0
        return NULL;
152
0
    }
153
154
0
    item = cJSON_Parse(content);
155
0
    ogs_free(content);
156
0
    if (!item) {
157
0
        ogs_error("cJSON_Parse() failed");
158
0
        return NULL;
159
0
    }
160
161
0
    OpenAPI_top_application_free(dst);
162
0
    dst = OpenAPI_top_application_parseFromJSON(item);
163
0
    cJSON_Delete(item);
164
165
0
    return dst;
166
0
}
167