mirror of
https://github.com/open5gs/open5gs.git
synced 2026-05-04 22:30:09 +00:00
239 lines
9.3 KiB
C
239 lines
9.3 KiB
C
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <stdio.h>
|
|
#include "redundant_transmission_exp_per_ts.h"
|
|
|
|
OpenAPI_redundant_transmission_exp_per_ts_t *OpenAPI_redundant_transmission_exp_per_ts_create(
|
|
char *ts_start,
|
|
int ts_duration,
|
|
OpenAPI_observed_redundant_trans_exp_t *obsv_red_trans_exp,
|
|
bool is_red_trans_status,
|
|
int red_trans_status,
|
|
bool is_ue_ratio,
|
|
int ue_ratio,
|
|
bool is_confidence,
|
|
int confidence
|
|
)
|
|
{
|
|
OpenAPI_redundant_transmission_exp_per_ts_t *redundant_transmission_exp_per_ts_local_var = ogs_malloc(sizeof(OpenAPI_redundant_transmission_exp_per_ts_t));
|
|
ogs_assert(redundant_transmission_exp_per_ts_local_var);
|
|
|
|
redundant_transmission_exp_per_ts_local_var->ts_start = ts_start;
|
|
redundant_transmission_exp_per_ts_local_var->ts_duration = ts_duration;
|
|
redundant_transmission_exp_per_ts_local_var->obsv_red_trans_exp = obsv_red_trans_exp;
|
|
redundant_transmission_exp_per_ts_local_var->is_red_trans_status = is_red_trans_status;
|
|
redundant_transmission_exp_per_ts_local_var->red_trans_status = red_trans_status;
|
|
redundant_transmission_exp_per_ts_local_var->is_ue_ratio = is_ue_ratio;
|
|
redundant_transmission_exp_per_ts_local_var->ue_ratio = ue_ratio;
|
|
redundant_transmission_exp_per_ts_local_var->is_confidence = is_confidence;
|
|
redundant_transmission_exp_per_ts_local_var->confidence = confidence;
|
|
|
|
return redundant_transmission_exp_per_ts_local_var;
|
|
}
|
|
|
|
void OpenAPI_redundant_transmission_exp_per_ts_free(OpenAPI_redundant_transmission_exp_per_ts_t *redundant_transmission_exp_per_ts)
|
|
{
|
|
OpenAPI_lnode_t *node = NULL;
|
|
|
|
if (NULL == redundant_transmission_exp_per_ts) {
|
|
return;
|
|
}
|
|
if (redundant_transmission_exp_per_ts->ts_start) {
|
|
ogs_free(redundant_transmission_exp_per_ts->ts_start);
|
|
redundant_transmission_exp_per_ts->ts_start = NULL;
|
|
}
|
|
if (redundant_transmission_exp_per_ts->obsv_red_trans_exp) {
|
|
OpenAPI_observed_redundant_trans_exp_free(redundant_transmission_exp_per_ts->obsv_red_trans_exp);
|
|
redundant_transmission_exp_per_ts->obsv_red_trans_exp = NULL;
|
|
}
|
|
ogs_free(redundant_transmission_exp_per_ts);
|
|
}
|
|
|
|
cJSON *OpenAPI_redundant_transmission_exp_per_ts_convertToJSON(OpenAPI_redundant_transmission_exp_per_ts_t *redundant_transmission_exp_per_ts)
|
|
{
|
|
cJSON *item = NULL;
|
|
OpenAPI_lnode_t *node = NULL;
|
|
|
|
if (redundant_transmission_exp_per_ts == NULL) {
|
|
ogs_error("OpenAPI_redundant_transmission_exp_per_ts_convertToJSON() failed [RedundantTransmissionExpPerTS]");
|
|
return NULL;
|
|
}
|
|
|
|
item = cJSON_CreateObject();
|
|
if (!redundant_transmission_exp_per_ts->ts_start) {
|
|
ogs_error("OpenAPI_redundant_transmission_exp_per_ts_convertToJSON() failed [ts_start]");
|
|
return NULL;
|
|
}
|
|
if (cJSON_AddStringToObject(item, "tsStart", redundant_transmission_exp_per_ts->ts_start) == NULL) {
|
|
ogs_error("OpenAPI_redundant_transmission_exp_per_ts_convertToJSON() failed [ts_start]");
|
|
goto end;
|
|
}
|
|
|
|
if (cJSON_AddNumberToObject(item, "tsDuration", redundant_transmission_exp_per_ts->ts_duration) == NULL) {
|
|
ogs_error("OpenAPI_redundant_transmission_exp_per_ts_convertToJSON() failed [ts_duration]");
|
|
goto end;
|
|
}
|
|
|
|
if (!redundant_transmission_exp_per_ts->obsv_red_trans_exp) {
|
|
ogs_error("OpenAPI_redundant_transmission_exp_per_ts_convertToJSON() failed [obsv_red_trans_exp]");
|
|
return NULL;
|
|
}
|
|
cJSON *obsv_red_trans_exp_local_JSON = OpenAPI_observed_redundant_trans_exp_convertToJSON(redundant_transmission_exp_per_ts->obsv_red_trans_exp);
|
|
if (obsv_red_trans_exp_local_JSON == NULL) {
|
|
ogs_error("OpenAPI_redundant_transmission_exp_per_ts_convertToJSON() failed [obsv_red_trans_exp]");
|
|
goto end;
|
|
}
|
|
cJSON_AddItemToObject(item, "obsvRedTransExp", obsv_red_trans_exp_local_JSON);
|
|
if (item->child == NULL) {
|
|
ogs_error("OpenAPI_redundant_transmission_exp_per_ts_convertToJSON() failed [obsv_red_trans_exp]");
|
|
goto end;
|
|
}
|
|
|
|
if (redundant_transmission_exp_per_ts->is_red_trans_status) {
|
|
if (cJSON_AddBoolToObject(item, "redTransStatus", redundant_transmission_exp_per_ts->red_trans_status) == NULL) {
|
|
ogs_error("OpenAPI_redundant_transmission_exp_per_ts_convertToJSON() failed [red_trans_status]");
|
|
goto end;
|
|
}
|
|
}
|
|
|
|
if (redundant_transmission_exp_per_ts->is_ue_ratio) {
|
|
if (cJSON_AddNumberToObject(item, "ueRatio", redundant_transmission_exp_per_ts->ue_ratio) == NULL) {
|
|
ogs_error("OpenAPI_redundant_transmission_exp_per_ts_convertToJSON() failed [ue_ratio]");
|
|
goto end;
|
|
}
|
|
}
|
|
|
|
if (redundant_transmission_exp_per_ts->is_confidence) {
|
|
if (cJSON_AddNumberToObject(item, "confidence", redundant_transmission_exp_per_ts->confidence) == NULL) {
|
|
ogs_error("OpenAPI_redundant_transmission_exp_per_ts_convertToJSON() failed [confidence]");
|
|
goto end;
|
|
}
|
|
}
|
|
|
|
end:
|
|
return item;
|
|
}
|
|
|
|
OpenAPI_redundant_transmission_exp_per_ts_t *OpenAPI_redundant_transmission_exp_per_ts_parseFromJSON(cJSON *redundant_transmission_exp_per_tsJSON)
|
|
{
|
|
OpenAPI_redundant_transmission_exp_per_ts_t *redundant_transmission_exp_per_ts_local_var = NULL;
|
|
OpenAPI_lnode_t *node = NULL;
|
|
cJSON *ts_start = NULL;
|
|
cJSON *ts_duration = NULL;
|
|
cJSON *obsv_red_trans_exp = NULL;
|
|
OpenAPI_observed_redundant_trans_exp_t *obsv_red_trans_exp_local_nonprim = NULL;
|
|
cJSON *red_trans_status = NULL;
|
|
cJSON *ue_ratio = NULL;
|
|
cJSON *confidence = NULL;
|
|
ts_start = cJSON_GetObjectItemCaseSensitive(redundant_transmission_exp_per_tsJSON, "tsStart");
|
|
if (!ts_start) {
|
|
ogs_error("OpenAPI_redundant_transmission_exp_per_ts_parseFromJSON() failed [ts_start]");
|
|
goto end;
|
|
}
|
|
if (!cJSON_IsString(ts_start) && !cJSON_IsNull(ts_start)) {
|
|
ogs_error("OpenAPI_redundant_transmission_exp_per_ts_parseFromJSON() failed [ts_start]");
|
|
goto end;
|
|
}
|
|
|
|
ts_duration = cJSON_GetObjectItemCaseSensitive(redundant_transmission_exp_per_tsJSON, "tsDuration");
|
|
if (!ts_duration) {
|
|
ogs_error("OpenAPI_redundant_transmission_exp_per_ts_parseFromJSON() failed [ts_duration]");
|
|
goto end;
|
|
}
|
|
if (!cJSON_IsNumber(ts_duration)) {
|
|
ogs_error("OpenAPI_redundant_transmission_exp_per_ts_parseFromJSON() failed [ts_duration]");
|
|
goto end;
|
|
}
|
|
|
|
obsv_red_trans_exp = cJSON_GetObjectItemCaseSensitive(redundant_transmission_exp_per_tsJSON, "obsvRedTransExp");
|
|
if (!obsv_red_trans_exp) {
|
|
ogs_error("OpenAPI_redundant_transmission_exp_per_ts_parseFromJSON() failed [obsv_red_trans_exp]");
|
|
goto end;
|
|
}
|
|
obsv_red_trans_exp_local_nonprim = OpenAPI_observed_redundant_trans_exp_parseFromJSON(obsv_red_trans_exp);
|
|
if (!obsv_red_trans_exp_local_nonprim) {
|
|
ogs_error("OpenAPI_observed_redundant_trans_exp_parseFromJSON failed [obsv_red_trans_exp]");
|
|
goto end;
|
|
}
|
|
|
|
red_trans_status = cJSON_GetObjectItemCaseSensitive(redundant_transmission_exp_per_tsJSON, "redTransStatus");
|
|
if (red_trans_status) {
|
|
if (!cJSON_IsBool(red_trans_status)) {
|
|
ogs_error("OpenAPI_redundant_transmission_exp_per_ts_parseFromJSON() failed [red_trans_status]");
|
|
goto end;
|
|
}
|
|
}
|
|
|
|
ue_ratio = cJSON_GetObjectItemCaseSensitive(redundant_transmission_exp_per_tsJSON, "ueRatio");
|
|
if (ue_ratio) {
|
|
if (!cJSON_IsNumber(ue_ratio)) {
|
|
ogs_error("OpenAPI_redundant_transmission_exp_per_ts_parseFromJSON() failed [ue_ratio]");
|
|
goto end;
|
|
}
|
|
}
|
|
|
|
confidence = cJSON_GetObjectItemCaseSensitive(redundant_transmission_exp_per_tsJSON, "confidence");
|
|
if (confidence) {
|
|
if (!cJSON_IsNumber(confidence)) {
|
|
ogs_error("OpenAPI_redundant_transmission_exp_per_ts_parseFromJSON() failed [confidence]");
|
|
goto end;
|
|
}
|
|
}
|
|
|
|
redundant_transmission_exp_per_ts_local_var = OpenAPI_redundant_transmission_exp_per_ts_create (
|
|
ogs_strdup(ts_start->valuestring),
|
|
|
|
ts_duration->valuedouble,
|
|
obsv_red_trans_exp_local_nonprim,
|
|
red_trans_status ? true : false,
|
|
red_trans_status ? red_trans_status->valueint : 0,
|
|
ue_ratio ? true : false,
|
|
ue_ratio ? ue_ratio->valuedouble : 0,
|
|
confidence ? true : false,
|
|
confidence ? confidence->valuedouble : 0
|
|
);
|
|
|
|
return redundant_transmission_exp_per_ts_local_var;
|
|
end:
|
|
if (obsv_red_trans_exp_local_nonprim) {
|
|
OpenAPI_observed_redundant_trans_exp_free(obsv_red_trans_exp_local_nonprim);
|
|
obsv_red_trans_exp_local_nonprim = NULL;
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
OpenAPI_redundant_transmission_exp_per_ts_t *OpenAPI_redundant_transmission_exp_per_ts_copy(OpenAPI_redundant_transmission_exp_per_ts_t *dst, OpenAPI_redundant_transmission_exp_per_ts_t *src)
|
|
{
|
|
cJSON *item = NULL;
|
|
char *content = NULL;
|
|
|
|
ogs_assert(src);
|
|
item = OpenAPI_redundant_transmission_exp_per_ts_convertToJSON(src);
|
|
if (!item) {
|
|
ogs_error("OpenAPI_redundant_transmission_exp_per_ts_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_redundant_transmission_exp_per_ts_free(dst);
|
|
dst = OpenAPI_redundant_transmission_exp_per_ts_parseFromJSON(item);
|
|
cJSON_Delete(item);
|
|
|
|
return dst;
|
|
}
|
|
|