open5gs/lib/sbi/openapi/model/app_list_for_ue_comm.c

217 lines
7.1 KiB
C

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include "app_list_for_ue_comm.h"
OpenAPI_app_list_for_ue_comm_t *OpenAPI_app_list_for_ue_comm_create(
char *app_id,
char *start_time,
bool is_app_dur,
int app_dur,
bool is_occur_ratio,
int occur_ratio,
OpenAPI_network_area_info_t *spatial_validity
)
{
OpenAPI_app_list_for_ue_comm_t *app_list_for_ue_comm_local_var = ogs_malloc(sizeof(OpenAPI_app_list_for_ue_comm_t));
ogs_assert(app_list_for_ue_comm_local_var);
app_list_for_ue_comm_local_var->app_id = app_id;
app_list_for_ue_comm_local_var->start_time = start_time;
app_list_for_ue_comm_local_var->is_app_dur = is_app_dur;
app_list_for_ue_comm_local_var->app_dur = app_dur;
app_list_for_ue_comm_local_var->is_occur_ratio = is_occur_ratio;
app_list_for_ue_comm_local_var->occur_ratio = occur_ratio;
app_list_for_ue_comm_local_var->spatial_validity = spatial_validity;
return app_list_for_ue_comm_local_var;
}
void OpenAPI_app_list_for_ue_comm_free(OpenAPI_app_list_for_ue_comm_t *app_list_for_ue_comm)
{
OpenAPI_lnode_t *node = NULL;
if (NULL == app_list_for_ue_comm) {
return;
}
if (app_list_for_ue_comm->app_id) {
ogs_free(app_list_for_ue_comm->app_id);
app_list_for_ue_comm->app_id = NULL;
}
if (app_list_for_ue_comm->start_time) {
ogs_free(app_list_for_ue_comm->start_time);
app_list_for_ue_comm->start_time = NULL;
}
if (app_list_for_ue_comm->spatial_validity) {
OpenAPI_network_area_info_free(app_list_for_ue_comm->spatial_validity);
app_list_for_ue_comm->spatial_validity = NULL;
}
ogs_free(app_list_for_ue_comm);
}
cJSON *OpenAPI_app_list_for_ue_comm_convertToJSON(OpenAPI_app_list_for_ue_comm_t *app_list_for_ue_comm)
{
cJSON *item = NULL;
OpenAPI_lnode_t *node = NULL;
if (app_list_for_ue_comm == NULL) {
ogs_error("OpenAPI_app_list_for_ue_comm_convertToJSON() failed [AppListForUeComm]");
return NULL;
}
item = cJSON_CreateObject();
if (!app_list_for_ue_comm->app_id) {
ogs_error("OpenAPI_app_list_for_ue_comm_convertToJSON() failed [app_id]");
return NULL;
}
if (cJSON_AddStringToObject(item, "appId", app_list_for_ue_comm->app_id) == NULL) {
ogs_error("OpenAPI_app_list_for_ue_comm_convertToJSON() failed [app_id]");
goto end;
}
if (app_list_for_ue_comm->start_time) {
if (cJSON_AddStringToObject(item, "startTime", app_list_for_ue_comm->start_time) == NULL) {
ogs_error("OpenAPI_app_list_for_ue_comm_convertToJSON() failed [start_time]");
goto end;
}
}
if (app_list_for_ue_comm->is_app_dur) {
if (cJSON_AddNumberToObject(item, "appDur", app_list_for_ue_comm->app_dur) == NULL) {
ogs_error("OpenAPI_app_list_for_ue_comm_convertToJSON() failed [app_dur]");
goto end;
}
}
if (app_list_for_ue_comm->is_occur_ratio) {
if (cJSON_AddNumberToObject(item, "occurRatio", app_list_for_ue_comm->occur_ratio) == NULL) {
ogs_error("OpenAPI_app_list_for_ue_comm_convertToJSON() failed [occur_ratio]");
goto end;
}
}
if (app_list_for_ue_comm->spatial_validity) {
cJSON *spatial_validity_local_JSON = OpenAPI_network_area_info_convertToJSON(app_list_for_ue_comm->spatial_validity);
if (spatial_validity_local_JSON == NULL) {
ogs_error("OpenAPI_app_list_for_ue_comm_convertToJSON() failed [spatial_validity]");
goto end;
}
cJSON_AddItemToObject(item, "spatialValidity", spatial_validity_local_JSON);
if (item->child == NULL) {
ogs_error("OpenAPI_app_list_for_ue_comm_convertToJSON() failed [spatial_validity]");
goto end;
}
}
end:
return item;
}
OpenAPI_app_list_for_ue_comm_t *OpenAPI_app_list_for_ue_comm_parseFromJSON(cJSON *app_list_for_ue_commJSON)
{
OpenAPI_app_list_for_ue_comm_t *app_list_for_ue_comm_local_var = NULL;
OpenAPI_lnode_t *node = NULL;
cJSON *app_id = NULL;
cJSON *start_time = NULL;
cJSON *app_dur = NULL;
cJSON *occur_ratio = NULL;
cJSON *spatial_validity = NULL;
OpenAPI_network_area_info_t *spatial_validity_local_nonprim = NULL;
app_id = cJSON_GetObjectItemCaseSensitive(app_list_for_ue_commJSON, "appId");
if (!app_id) {
ogs_error("OpenAPI_app_list_for_ue_comm_parseFromJSON() failed [app_id]");
goto end;
}
if (!cJSON_IsString(app_id)) {
ogs_error("OpenAPI_app_list_for_ue_comm_parseFromJSON() failed [app_id]");
goto end;
}
start_time = cJSON_GetObjectItemCaseSensitive(app_list_for_ue_commJSON, "startTime");
if (start_time) {
if (!cJSON_IsString(start_time) && !cJSON_IsNull(start_time)) {
ogs_error("OpenAPI_app_list_for_ue_comm_parseFromJSON() failed [start_time]");
goto end;
}
}
app_dur = cJSON_GetObjectItemCaseSensitive(app_list_for_ue_commJSON, "appDur");
if (app_dur) {
if (!cJSON_IsNumber(app_dur)) {
ogs_error("OpenAPI_app_list_for_ue_comm_parseFromJSON() failed [app_dur]");
goto end;
}
}
occur_ratio = cJSON_GetObjectItemCaseSensitive(app_list_for_ue_commJSON, "occurRatio");
if (occur_ratio) {
if (!cJSON_IsNumber(occur_ratio)) {
ogs_error("OpenAPI_app_list_for_ue_comm_parseFromJSON() failed [occur_ratio]");
goto end;
}
}
spatial_validity = cJSON_GetObjectItemCaseSensitive(app_list_for_ue_commJSON, "spatialValidity");
if (spatial_validity) {
spatial_validity_local_nonprim = OpenAPI_network_area_info_parseFromJSON(spatial_validity);
if (!spatial_validity_local_nonprim) {
ogs_error("OpenAPI_network_area_info_parseFromJSON failed [spatial_validity]");
goto end;
}
}
app_list_for_ue_comm_local_var = OpenAPI_app_list_for_ue_comm_create (
ogs_strdup(app_id->valuestring),
start_time && !cJSON_IsNull(start_time) ? ogs_strdup(start_time->valuestring) : NULL,
app_dur ? true : false,
app_dur ? app_dur->valuedouble : 0,
occur_ratio ? true : false,
occur_ratio ? occur_ratio->valuedouble : 0,
spatial_validity ? spatial_validity_local_nonprim : NULL
);
return app_list_for_ue_comm_local_var;
end:
if (spatial_validity_local_nonprim) {
OpenAPI_network_area_info_free(spatial_validity_local_nonprim);
spatial_validity_local_nonprim = NULL;
}
return NULL;
}
OpenAPI_app_list_for_ue_comm_t *OpenAPI_app_list_for_ue_comm_copy(OpenAPI_app_list_for_ue_comm_t *dst, OpenAPI_app_list_for_ue_comm_t *src)
{
cJSON *item = NULL;
char *content = NULL;
ogs_assert(src);
item = OpenAPI_app_list_for_ue_comm_convertToJSON(src);
if (!item) {
ogs_error("OpenAPI_app_list_for_ue_comm_convertToJSON() failed");
return NULL;
}
content = cJSON_Print(item);
cJSON_Delete(item);
if (!content) {
ogs_error("cJSON_Print() failed");
return NULL;
}
item = cJSON_Parse(content);
ogs_free(content);
if (!item) {
ogs_error("cJSON_Parse() failed");
return NULL;
}
OpenAPI_app_list_for_ue_comm_free(dst);
dst = OpenAPI_app_list_for_ue_comm_parseFromJSON(item);
cJSON_Delete(item);
return dst;
}