open5gs/lib/sbi/openapi/model/communication_characteristi...

345 lines
16 KiB
C

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include "communication_characteristics.h"
OpenAPI_communication_characteristics_t *OpenAPI_communication_characteristics_create(
bool is_pp_subs_reg_timer_null,
OpenAPI_pp_subs_reg_timer_t *pp_subs_reg_timer,
bool is_pp_active_time_null,
OpenAPI_pp_active_time_t *pp_active_time,
bool is_pp_dl_packet_count_null,
bool is_pp_dl_packet_count,
int pp_dl_packet_count,
bool is_pp_dl_packet_count_ext_null,
OpenAPI_pp_dl_packet_count_ext_t *pp_dl_packet_count_ext,
bool is_pp_maximum_response_time_null,
OpenAPI_pp_maximum_response_time_t *pp_maximum_response_time,
bool is_pp_maximum_latency_null,
OpenAPI_pp_maximum_latency_t *pp_maximum_latency
)
{
OpenAPI_communication_characteristics_t *communication_characteristics_local_var = ogs_malloc(sizeof(OpenAPI_communication_characteristics_t));
ogs_assert(communication_characteristics_local_var);
communication_characteristics_local_var->is_pp_subs_reg_timer_null = is_pp_subs_reg_timer_null;
communication_characteristics_local_var->pp_subs_reg_timer = pp_subs_reg_timer;
communication_characteristics_local_var->is_pp_active_time_null = is_pp_active_time_null;
communication_characteristics_local_var->pp_active_time = pp_active_time;
communication_characteristics_local_var->is_pp_dl_packet_count_null = is_pp_dl_packet_count_null;
communication_characteristics_local_var->is_pp_dl_packet_count = is_pp_dl_packet_count;
communication_characteristics_local_var->pp_dl_packet_count = pp_dl_packet_count;
communication_characteristics_local_var->is_pp_dl_packet_count_ext_null = is_pp_dl_packet_count_ext_null;
communication_characteristics_local_var->pp_dl_packet_count_ext = pp_dl_packet_count_ext;
communication_characteristics_local_var->is_pp_maximum_response_time_null = is_pp_maximum_response_time_null;
communication_characteristics_local_var->pp_maximum_response_time = pp_maximum_response_time;
communication_characteristics_local_var->is_pp_maximum_latency_null = is_pp_maximum_latency_null;
communication_characteristics_local_var->pp_maximum_latency = pp_maximum_latency;
return communication_characteristics_local_var;
}
void OpenAPI_communication_characteristics_free(OpenAPI_communication_characteristics_t *communication_characteristics)
{
OpenAPI_lnode_t *node = NULL;
if (NULL == communication_characteristics) {
return;
}
if (communication_characteristics->pp_subs_reg_timer) {
OpenAPI_pp_subs_reg_timer_free(communication_characteristics->pp_subs_reg_timer);
communication_characteristics->pp_subs_reg_timer = NULL;
}
if (communication_characteristics->pp_active_time) {
OpenAPI_pp_active_time_free(communication_characteristics->pp_active_time);
communication_characteristics->pp_active_time = NULL;
}
if (communication_characteristics->pp_dl_packet_count_ext) {
OpenAPI_pp_dl_packet_count_ext_free(communication_characteristics->pp_dl_packet_count_ext);
communication_characteristics->pp_dl_packet_count_ext = NULL;
}
if (communication_characteristics->pp_maximum_response_time) {
OpenAPI_pp_maximum_response_time_free(communication_characteristics->pp_maximum_response_time);
communication_characteristics->pp_maximum_response_time = NULL;
}
if (communication_characteristics->pp_maximum_latency) {
OpenAPI_pp_maximum_latency_free(communication_characteristics->pp_maximum_latency);
communication_characteristics->pp_maximum_latency = NULL;
}
ogs_free(communication_characteristics);
}
cJSON *OpenAPI_communication_characteristics_convertToJSON(OpenAPI_communication_characteristics_t *communication_characteristics)
{
cJSON *item = NULL;
OpenAPI_lnode_t *node = NULL;
if (communication_characteristics == NULL) {
ogs_error("OpenAPI_communication_characteristics_convertToJSON() failed [CommunicationCharacteristics]");
return NULL;
}
item = cJSON_CreateObject();
if (communication_characteristics->pp_subs_reg_timer) {
cJSON *pp_subs_reg_timer_local_JSON = OpenAPI_pp_subs_reg_timer_convertToJSON(communication_characteristics->pp_subs_reg_timer);
if (pp_subs_reg_timer_local_JSON == NULL) {
ogs_error("OpenAPI_communication_characteristics_convertToJSON() failed [pp_subs_reg_timer]");
goto end;
}
cJSON_AddItemToObject(item, "ppSubsRegTimer", pp_subs_reg_timer_local_JSON);
if (item->child == NULL) {
ogs_error("OpenAPI_communication_characteristics_convertToJSON() failed [pp_subs_reg_timer]");
goto end;
}
} else if (communication_characteristics->is_pp_subs_reg_timer_null) {
if (cJSON_AddNullToObject(item, "ppSubsRegTimer") == NULL) {
ogs_error("OpenAPI_communication_characteristics_convertToJSON() failed [pp_subs_reg_timer]");
goto end;
}
}
if (communication_characteristics->pp_active_time) {
cJSON *pp_active_time_local_JSON = OpenAPI_pp_active_time_convertToJSON(communication_characteristics->pp_active_time);
if (pp_active_time_local_JSON == NULL) {
ogs_error("OpenAPI_communication_characteristics_convertToJSON() failed [pp_active_time]");
goto end;
}
cJSON_AddItemToObject(item, "ppActiveTime", pp_active_time_local_JSON);
if (item->child == NULL) {
ogs_error("OpenAPI_communication_characteristics_convertToJSON() failed [pp_active_time]");
goto end;
}
} else if (communication_characteristics->is_pp_active_time_null) {
if (cJSON_AddNullToObject(item, "ppActiveTime") == NULL) {
ogs_error("OpenAPI_communication_characteristics_convertToJSON() failed [pp_active_time]");
goto end;
}
}
if (communication_characteristics->is_pp_dl_packet_count) {
if (cJSON_AddNumberToObject(item, "ppDlPacketCount", communication_characteristics->pp_dl_packet_count) == NULL) {
ogs_error("OpenAPI_communication_characteristics_convertToJSON() failed [pp_dl_packet_count]");
goto end;
}
} else if (communication_characteristics->is_pp_dl_packet_count_null) {
if (cJSON_AddNullToObject(item, "ppDlPacketCount") == NULL) {
ogs_error("OpenAPI_communication_characteristics_convertToJSON() failed [pp_dl_packet_count]");
goto end;
}
}
if (communication_characteristics->pp_dl_packet_count_ext) {
cJSON *pp_dl_packet_count_ext_local_JSON = OpenAPI_pp_dl_packet_count_ext_convertToJSON(communication_characteristics->pp_dl_packet_count_ext);
if (pp_dl_packet_count_ext_local_JSON == NULL) {
ogs_error("OpenAPI_communication_characteristics_convertToJSON() failed [pp_dl_packet_count_ext]");
goto end;
}
cJSON_AddItemToObject(item, "ppDlPacketCountExt", pp_dl_packet_count_ext_local_JSON);
if (item->child == NULL) {
ogs_error("OpenAPI_communication_characteristics_convertToJSON() failed [pp_dl_packet_count_ext]");
goto end;
}
} else if (communication_characteristics->is_pp_dl_packet_count_ext_null) {
if (cJSON_AddNullToObject(item, "ppDlPacketCountExt") == NULL) {
ogs_error("OpenAPI_communication_characteristics_convertToJSON() failed [pp_dl_packet_count_ext]");
goto end;
}
}
if (communication_characteristics->pp_maximum_response_time) {
cJSON *pp_maximum_response_time_local_JSON = OpenAPI_pp_maximum_response_time_convertToJSON(communication_characteristics->pp_maximum_response_time);
if (pp_maximum_response_time_local_JSON == NULL) {
ogs_error("OpenAPI_communication_characteristics_convertToJSON() failed [pp_maximum_response_time]");
goto end;
}
cJSON_AddItemToObject(item, "ppMaximumResponseTime", pp_maximum_response_time_local_JSON);
if (item->child == NULL) {
ogs_error("OpenAPI_communication_characteristics_convertToJSON() failed [pp_maximum_response_time]");
goto end;
}
} else if (communication_characteristics->is_pp_maximum_response_time_null) {
if (cJSON_AddNullToObject(item, "ppMaximumResponseTime") == NULL) {
ogs_error("OpenAPI_communication_characteristics_convertToJSON() failed [pp_maximum_response_time]");
goto end;
}
}
if (communication_characteristics->pp_maximum_latency) {
cJSON *pp_maximum_latency_local_JSON = OpenAPI_pp_maximum_latency_convertToJSON(communication_characteristics->pp_maximum_latency);
if (pp_maximum_latency_local_JSON == NULL) {
ogs_error("OpenAPI_communication_characteristics_convertToJSON() failed [pp_maximum_latency]");
goto end;
}
cJSON_AddItemToObject(item, "ppMaximumLatency", pp_maximum_latency_local_JSON);
if (item->child == NULL) {
ogs_error("OpenAPI_communication_characteristics_convertToJSON() failed [pp_maximum_latency]");
goto end;
}
} else if (communication_characteristics->is_pp_maximum_latency_null) {
if (cJSON_AddNullToObject(item, "ppMaximumLatency") == NULL) {
ogs_error("OpenAPI_communication_characteristics_convertToJSON() failed [pp_maximum_latency]");
goto end;
}
}
end:
return item;
}
OpenAPI_communication_characteristics_t *OpenAPI_communication_characteristics_parseFromJSON(cJSON *communication_characteristicsJSON)
{
OpenAPI_communication_characteristics_t *communication_characteristics_local_var = NULL;
OpenAPI_lnode_t *node = NULL;
cJSON *pp_subs_reg_timer = NULL;
OpenAPI_pp_subs_reg_timer_t *pp_subs_reg_timer_local_nonprim = NULL;
cJSON *pp_active_time = NULL;
OpenAPI_pp_active_time_t *pp_active_time_local_nonprim = NULL;
cJSON *pp_dl_packet_count = NULL;
cJSON *pp_dl_packet_count_ext = NULL;
OpenAPI_pp_dl_packet_count_ext_t *pp_dl_packet_count_ext_local_nonprim = NULL;
cJSON *pp_maximum_response_time = NULL;
OpenAPI_pp_maximum_response_time_t *pp_maximum_response_time_local_nonprim = NULL;
cJSON *pp_maximum_latency = NULL;
OpenAPI_pp_maximum_latency_t *pp_maximum_latency_local_nonprim = NULL;
pp_subs_reg_timer = cJSON_GetObjectItemCaseSensitive(communication_characteristicsJSON, "ppSubsRegTimer");
if (pp_subs_reg_timer) {
if (!cJSON_IsNull(pp_subs_reg_timer)) {
pp_subs_reg_timer_local_nonprim = OpenAPI_pp_subs_reg_timer_parseFromJSON(pp_subs_reg_timer);
if (!pp_subs_reg_timer_local_nonprim) {
ogs_error("OpenAPI_pp_subs_reg_timer_parseFromJSON failed [pp_subs_reg_timer]");
goto end;
}
}
}
pp_active_time = cJSON_GetObjectItemCaseSensitive(communication_characteristicsJSON, "ppActiveTime");
if (pp_active_time) {
if (!cJSON_IsNull(pp_active_time)) {
pp_active_time_local_nonprim = OpenAPI_pp_active_time_parseFromJSON(pp_active_time);
if (!pp_active_time_local_nonprim) {
ogs_error("OpenAPI_pp_active_time_parseFromJSON failed [pp_active_time]");
goto end;
}
}
}
pp_dl_packet_count = cJSON_GetObjectItemCaseSensitive(communication_characteristicsJSON, "ppDlPacketCount");
if (pp_dl_packet_count) {
if (!cJSON_IsNull(pp_dl_packet_count)) {
if (!cJSON_IsNumber(pp_dl_packet_count)) {
ogs_error("OpenAPI_communication_characteristics_parseFromJSON() failed [pp_dl_packet_count]");
goto end;
}
}
}
pp_dl_packet_count_ext = cJSON_GetObjectItemCaseSensitive(communication_characteristicsJSON, "ppDlPacketCountExt");
if (pp_dl_packet_count_ext) {
if (!cJSON_IsNull(pp_dl_packet_count_ext)) {
pp_dl_packet_count_ext_local_nonprim = OpenAPI_pp_dl_packet_count_ext_parseFromJSON(pp_dl_packet_count_ext);
if (!pp_dl_packet_count_ext_local_nonprim) {
ogs_error("OpenAPI_pp_dl_packet_count_ext_parseFromJSON failed [pp_dl_packet_count_ext]");
goto end;
}
}
}
pp_maximum_response_time = cJSON_GetObjectItemCaseSensitive(communication_characteristicsJSON, "ppMaximumResponseTime");
if (pp_maximum_response_time) {
if (!cJSON_IsNull(pp_maximum_response_time)) {
pp_maximum_response_time_local_nonprim = OpenAPI_pp_maximum_response_time_parseFromJSON(pp_maximum_response_time);
if (!pp_maximum_response_time_local_nonprim) {
ogs_error("OpenAPI_pp_maximum_response_time_parseFromJSON failed [pp_maximum_response_time]");
goto end;
}
}
}
pp_maximum_latency = cJSON_GetObjectItemCaseSensitive(communication_characteristicsJSON, "ppMaximumLatency");
if (pp_maximum_latency) {
if (!cJSON_IsNull(pp_maximum_latency)) {
pp_maximum_latency_local_nonprim = OpenAPI_pp_maximum_latency_parseFromJSON(pp_maximum_latency);
if (!pp_maximum_latency_local_nonprim) {
ogs_error("OpenAPI_pp_maximum_latency_parseFromJSON failed [pp_maximum_latency]");
goto end;
}
}
}
communication_characteristics_local_var = OpenAPI_communication_characteristics_create (
pp_subs_reg_timer && cJSON_IsNull(pp_subs_reg_timer) ? true : false,
pp_subs_reg_timer ? pp_subs_reg_timer_local_nonprim : NULL,
pp_active_time && cJSON_IsNull(pp_active_time) ? true : false,
pp_active_time ? pp_active_time_local_nonprim : NULL,
pp_dl_packet_count && cJSON_IsNull(pp_dl_packet_count) ? true : false,
pp_dl_packet_count ? true : false,
pp_dl_packet_count ? pp_dl_packet_count->valuedouble : 0,
pp_dl_packet_count_ext && cJSON_IsNull(pp_dl_packet_count_ext) ? true : false,
pp_dl_packet_count_ext ? pp_dl_packet_count_ext_local_nonprim : NULL,
pp_maximum_response_time && cJSON_IsNull(pp_maximum_response_time) ? true : false,
pp_maximum_response_time ? pp_maximum_response_time_local_nonprim : NULL,
pp_maximum_latency && cJSON_IsNull(pp_maximum_latency) ? true : false,
pp_maximum_latency ? pp_maximum_latency_local_nonprim : NULL
);
return communication_characteristics_local_var;
end:
if (pp_subs_reg_timer_local_nonprim) {
OpenAPI_pp_subs_reg_timer_free(pp_subs_reg_timer_local_nonprim);
pp_subs_reg_timer_local_nonprim = NULL;
}
if (pp_active_time_local_nonprim) {
OpenAPI_pp_active_time_free(pp_active_time_local_nonprim);
pp_active_time_local_nonprim = NULL;
}
if (pp_dl_packet_count_ext_local_nonprim) {
OpenAPI_pp_dl_packet_count_ext_free(pp_dl_packet_count_ext_local_nonprim);
pp_dl_packet_count_ext_local_nonprim = NULL;
}
if (pp_maximum_response_time_local_nonprim) {
OpenAPI_pp_maximum_response_time_free(pp_maximum_response_time_local_nonprim);
pp_maximum_response_time_local_nonprim = NULL;
}
if (pp_maximum_latency_local_nonprim) {
OpenAPI_pp_maximum_latency_free(pp_maximum_latency_local_nonprim);
pp_maximum_latency_local_nonprim = NULL;
}
return NULL;
}
OpenAPI_communication_characteristics_t *OpenAPI_communication_characteristics_copy(OpenAPI_communication_characteristics_t *dst, OpenAPI_communication_characteristics_t *src)
{
cJSON *item = NULL;
char *content = NULL;
ogs_assert(src);
item = OpenAPI_communication_characteristics_convertToJSON(src);
if (!item) {
ogs_error("OpenAPI_communication_characteristics_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_communication_characteristics_free(dst);
dst = OpenAPI_communication_characteristics_parseFromJSON(item);
cJSON_Delete(item);
return dst;
}