#include #include #include #include "subscription_data_sets.h" OpenAPI_subscription_data_sets_t *OpenAPI_subscription_data_sets_create( OpenAPI_access_and_mobility_subscription_data_t *am_data, OpenAPI_smf_selection_subscription_data_t *smf_sel_data, OpenAPI_ue_context_in_amf_data_t *uec_amf_data, OpenAPI_ue_context_in_smf_data_t *uec_smf_data, OpenAPI_ue_context_in_smsf_data_t *uec_smsf_data, OpenAPI_sms_subscription_data_t *sms_subs_data, OpenAPI_list_t *sm_data, OpenAPI_trace_data_t *trace_data, OpenAPI_sms_management_subscription_data_t *sms_mng_data, OpenAPI_lcs_privacy_data_t *lcs_privacy_data, OpenAPI_lcs_mo_data_t *lcs_mo_data, OpenAPI_v2x_subscription_data_t *v2x_data, OpenAPI_lcs_broadcast_assistance_types_data_t *lcs_broadcast_assistance_types_data ) { OpenAPI_subscription_data_sets_t *subscription_data_sets_local_var = OpenAPI_malloc(sizeof(OpenAPI_subscription_data_sets_t)); if (!subscription_data_sets_local_var) { return NULL; } subscription_data_sets_local_var->am_data = am_data; subscription_data_sets_local_var->smf_sel_data = smf_sel_data; subscription_data_sets_local_var->uec_amf_data = uec_amf_data; subscription_data_sets_local_var->uec_smf_data = uec_smf_data; subscription_data_sets_local_var->uec_smsf_data = uec_smsf_data; subscription_data_sets_local_var->sms_subs_data = sms_subs_data; subscription_data_sets_local_var->sm_data = sm_data; subscription_data_sets_local_var->trace_data = trace_data; subscription_data_sets_local_var->sms_mng_data = sms_mng_data; subscription_data_sets_local_var->lcs_privacy_data = lcs_privacy_data; subscription_data_sets_local_var->lcs_mo_data = lcs_mo_data; subscription_data_sets_local_var->v2x_data = v2x_data; subscription_data_sets_local_var->lcs_broadcast_assistance_types_data = lcs_broadcast_assistance_types_data; return subscription_data_sets_local_var; } void OpenAPI_subscription_data_sets_free(OpenAPI_subscription_data_sets_t *subscription_data_sets) { if (NULL == subscription_data_sets) { return; } OpenAPI_lnode_t *node; OpenAPI_access_and_mobility_subscription_data_free(subscription_data_sets->am_data); OpenAPI_smf_selection_subscription_data_free(subscription_data_sets->smf_sel_data); OpenAPI_ue_context_in_amf_data_free(subscription_data_sets->uec_amf_data); OpenAPI_ue_context_in_smf_data_free(subscription_data_sets->uec_smf_data); OpenAPI_ue_context_in_smsf_data_free(subscription_data_sets->uec_smsf_data); OpenAPI_sms_subscription_data_free(subscription_data_sets->sms_subs_data); OpenAPI_list_for_each(subscription_data_sets->sm_data, node) { OpenAPI_session_management_subscription_data_free(node->data); } OpenAPI_list_free(subscription_data_sets->sm_data); OpenAPI_trace_data_free(subscription_data_sets->trace_data); OpenAPI_sms_management_subscription_data_free(subscription_data_sets->sms_mng_data); OpenAPI_lcs_privacy_data_free(subscription_data_sets->lcs_privacy_data); OpenAPI_lcs_mo_data_free(subscription_data_sets->lcs_mo_data); OpenAPI_v2x_subscription_data_free(subscription_data_sets->v2x_data); OpenAPI_lcs_broadcast_assistance_types_data_free(subscription_data_sets->lcs_broadcast_assistance_types_data); ogs_free(subscription_data_sets); } cJSON *OpenAPI_subscription_data_sets_convertToJSON(OpenAPI_subscription_data_sets_t *subscription_data_sets) { cJSON *item = NULL; if (subscription_data_sets == NULL) { ogs_error("OpenAPI_subscription_data_sets_convertToJSON() failed [SubscriptionDataSets]"); return NULL; } item = cJSON_CreateObject(); if (subscription_data_sets->am_data) { cJSON *am_data_local_JSON = OpenAPI_access_and_mobility_subscription_data_convertToJSON(subscription_data_sets->am_data); if (am_data_local_JSON == NULL) { ogs_error("OpenAPI_subscription_data_sets_convertToJSON() failed [am_data]"); goto end; } cJSON_AddItemToObject(item, "amData", am_data_local_JSON); if (item->child == NULL) { ogs_error("OpenAPI_subscription_data_sets_convertToJSON() failed [am_data]"); goto end; } } if (subscription_data_sets->smf_sel_data) { cJSON *smf_sel_data_local_JSON = OpenAPI_smf_selection_subscription_data_convertToJSON(subscription_data_sets->smf_sel_data); if (smf_sel_data_local_JSON == NULL) { ogs_error("OpenAPI_subscription_data_sets_convertToJSON() failed [smf_sel_data]"); goto end; } cJSON_AddItemToObject(item, "smfSelData", smf_sel_data_local_JSON); if (item->child == NULL) { ogs_error("OpenAPI_subscription_data_sets_convertToJSON() failed [smf_sel_data]"); goto end; } } if (subscription_data_sets->uec_amf_data) { cJSON *uec_amf_data_local_JSON = OpenAPI_ue_context_in_amf_data_convertToJSON(subscription_data_sets->uec_amf_data); if (uec_amf_data_local_JSON == NULL) { ogs_error("OpenAPI_subscription_data_sets_convertToJSON() failed [uec_amf_data]"); goto end; } cJSON_AddItemToObject(item, "uecAmfData", uec_amf_data_local_JSON); if (item->child == NULL) { ogs_error("OpenAPI_subscription_data_sets_convertToJSON() failed [uec_amf_data]"); goto end; } } if (subscription_data_sets->uec_smf_data) { cJSON *uec_smf_data_local_JSON = OpenAPI_ue_context_in_smf_data_convertToJSON(subscription_data_sets->uec_smf_data); if (uec_smf_data_local_JSON == NULL) { ogs_error("OpenAPI_subscription_data_sets_convertToJSON() failed [uec_smf_data]"); goto end; } cJSON_AddItemToObject(item, "uecSmfData", uec_smf_data_local_JSON); if (item->child == NULL) { ogs_error("OpenAPI_subscription_data_sets_convertToJSON() failed [uec_smf_data]"); goto end; } } if (subscription_data_sets->uec_smsf_data) { cJSON *uec_smsf_data_local_JSON = OpenAPI_ue_context_in_smsf_data_convertToJSON(subscription_data_sets->uec_smsf_data); if (uec_smsf_data_local_JSON == NULL) { ogs_error("OpenAPI_subscription_data_sets_convertToJSON() failed [uec_smsf_data]"); goto end; } cJSON_AddItemToObject(item, "uecSmsfData", uec_smsf_data_local_JSON); if (item->child == NULL) { ogs_error("OpenAPI_subscription_data_sets_convertToJSON() failed [uec_smsf_data]"); goto end; } } if (subscription_data_sets->sms_subs_data) { cJSON *sms_subs_data_local_JSON = OpenAPI_sms_subscription_data_convertToJSON(subscription_data_sets->sms_subs_data); if (sms_subs_data_local_JSON == NULL) { ogs_error("OpenAPI_subscription_data_sets_convertToJSON() failed [sms_subs_data]"); goto end; } cJSON_AddItemToObject(item, "smsSubsData", sms_subs_data_local_JSON); if (item->child == NULL) { ogs_error("OpenAPI_subscription_data_sets_convertToJSON() failed [sms_subs_data]"); goto end; } } if (subscription_data_sets->sm_data) { cJSON *sm_dataList = cJSON_AddArrayToObject(item, "smData"); if (sm_dataList == NULL) { ogs_error("OpenAPI_subscription_data_sets_convertToJSON() failed [sm_data]"); goto end; } OpenAPI_lnode_t *sm_data_node; if (subscription_data_sets->sm_data) { OpenAPI_list_for_each(subscription_data_sets->sm_data, sm_data_node) { cJSON *itemLocal = OpenAPI_session_management_subscription_data_convertToJSON(sm_data_node->data); if (itemLocal == NULL) { ogs_error("OpenAPI_subscription_data_sets_convertToJSON() failed [sm_data]"); goto end; } cJSON_AddItemToArray(sm_dataList, itemLocal); } } } if (subscription_data_sets->trace_data) { cJSON *trace_data_local_JSON = OpenAPI_trace_data_convertToJSON(subscription_data_sets->trace_data); if (trace_data_local_JSON == NULL) { ogs_error("OpenAPI_subscription_data_sets_convertToJSON() failed [trace_data]"); goto end; } cJSON_AddItemToObject(item, "traceData", trace_data_local_JSON); if (item->child == NULL) { ogs_error("OpenAPI_subscription_data_sets_convertToJSON() failed [trace_data]"); goto end; } } if (subscription_data_sets->sms_mng_data) { cJSON *sms_mng_data_local_JSON = OpenAPI_sms_management_subscription_data_convertToJSON(subscription_data_sets->sms_mng_data); if (sms_mng_data_local_JSON == NULL) { ogs_error("OpenAPI_subscription_data_sets_convertToJSON() failed [sms_mng_data]"); goto end; } cJSON_AddItemToObject(item, "smsMngData", sms_mng_data_local_JSON); if (item->child == NULL) { ogs_error("OpenAPI_subscription_data_sets_convertToJSON() failed [sms_mng_data]"); goto end; } } if (subscription_data_sets->lcs_privacy_data) { cJSON *lcs_privacy_data_local_JSON = OpenAPI_lcs_privacy_data_convertToJSON(subscription_data_sets->lcs_privacy_data); if (lcs_privacy_data_local_JSON == NULL) { ogs_error("OpenAPI_subscription_data_sets_convertToJSON() failed [lcs_privacy_data]"); goto end; } cJSON_AddItemToObject(item, "lcsPrivacyData", lcs_privacy_data_local_JSON); if (item->child == NULL) { ogs_error("OpenAPI_subscription_data_sets_convertToJSON() failed [lcs_privacy_data]"); goto end; } } if (subscription_data_sets->lcs_mo_data) { cJSON *lcs_mo_data_local_JSON = OpenAPI_lcs_mo_data_convertToJSON(subscription_data_sets->lcs_mo_data); if (lcs_mo_data_local_JSON == NULL) { ogs_error("OpenAPI_subscription_data_sets_convertToJSON() failed [lcs_mo_data]"); goto end; } cJSON_AddItemToObject(item, "lcsMoData", lcs_mo_data_local_JSON); if (item->child == NULL) { ogs_error("OpenAPI_subscription_data_sets_convertToJSON() failed [lcs_mo_data]"); goto end; } } if (subscription_data_sets->v2x_data) { cJSON *v2x_data_local_JSON = OpenAPI_v2x_subscription_data_convertToJSON(subscription_data_sets->v2x_data); if (v2x_data_local_JSON == NULL) { ogs_error("OpenAPI_subscription_data_sets_convertToJSON() failed [v2x_data]"); goto end; } cJSON_AddItemToObject(item, "v2xData", v2x_data_local_JSON); if (item->child == NULL) { ogs_error("OpenAPI_subscription_data_sets_convertToJSON() failed [v2x_data]"); goto end; } } if (subscription_data_sets->lcs_broadcast_assistance_types_data) { cJSON *lcs_broadcast_assistance_types_data_local_JSON = OpenAPI_lcs_broadcast_assistance_types_data_convertToJSON(subscription_data_sets->lcs_broadcast_assistance_types_data); if (lcs_broadcast_assistance_types_data_local_JSON == NULL) { ogs_error("OpenAPI_subscription_data_sets_convertToJSON() failed [lcs_broadcast_assistance_types_data]"); goto end; } cJSON_AddItemToObject(item, "lcsBroadcastAssistanceTypesData", lcs_broadcast_assistance_types_data_local_JSON); if (item->child == NULL) { ogs_error("OpenAPI_subscription_data_sets_convertToJSON() failed [lcs_broadcast_assistance_types_data]"); goto end; } } end: return item; } OpenAPI_subscription_data_sets_t *OpenAPI_subscription_data_sets_parseFromJSON(cJSON *subscription_data_setsJSON) { OpenAPI_subscription_data_sets_t *subscription_data_sets_local_var = NULL; cJSON *am_data = cJSON_GetObjectItemCaseSensitive(subscription_data_setsJSON, "amData"); OpenAPI_access_and_mobility_subscription_data_t *am_data_local_nonprim = NULL; if (am_data) { am_data_local_nonprim = OpenAPI_access_and_mobility_subscription_data_parseFromJSON(am_data); } cJSON *smf_sel_data = cJSON_GetObjectItemCaseSensitive(subscription_data_setsJSON, "smfSelData"); OpenAPI_smf_selection_subscription_data_t *smf_sel_data_local_nonprim = NULL; if (smf_sel_data) { smf_sel_data_local_nonprim = OpenAPI_smf_selection_subscription_data_parseFromJSON(smf_sel_data); } cJSON *uec_amf_data = cJSON_GetObjectItemCaseSensitive(subscription_data_setsJSON, "uecAmfData"); OpenAPI_ue_context_in_amf_data_t *uec_amf_data_local_nonprim = NULL; if (uec_amf_data) { uec_amf_data_local_nonprim = OpenAPI_ue_context_in_amf_data_parseFromJSON(uec_amf_data); } cJSON *uec_smf_data = cJSON_GetObjectItemCaseSensitive(subscription_data_setsJSON, "uecSmfData"); OpenAPI_ue_context_in_smf_data_t *uec_smf_data_local_nonprim = NULL; if (uec_smf_data) { uec_smf_data_local_nonprim = OpenAPI_ue_context_in_smf_data_parseFromJSON(uec_smf_data); } cJSON *uec_smsf_data = cJSON_GetObjectItemCaseSensitive(subscription_data_setsJSON, "uecSmsfData"); OpenAPI_ue_context_in_smsf_data_t *uec_smsf_data_local_nonprim = NULL; if (uec_smsf_data) { uec_smsf_data_local_nonprim = OpenAPI_ue_context_in_smsf_data_parseFromJSON(uec_smsf_data); } cJSON *sms_subs_data = cJSON_GetObjectItemCaseSensitive(subscription_data_setsJSON, "smsSubsData"); OpenAPI_sms_subscription_data_t *sms_subs_data_local_nonprim = NULL; if (sms_subs_data) { sms_subs_data_local_nonprim = OpenAPI_sms_subscription_data_parseFromJSON(sms_subs_data); } cJSON *sm_data = cJSON_GetObjectItemCaseSensitive(subscription_data_setsJSON, "smData"); OpenAPI_list_t *sm_dataList; if (sm_data) { cJSON *sm_data_local_nonprimitive; if (!cJSON_IsArray(sm_data)) { ogs_error("OpenAPI_subscription_data_sets_parseFromJSON() failed [sm_data]"); goto end; } sm_dataList = OpenAPI_list_create(); cJSON_ArrayForEach(sm_data_local_nonprimitive, sm_data ) { if (!cJSON_IsObject(sm_data_local_nonprimitive)) { ogs_error("OpenAPI_subscription_data_sets_parseFromJSON() failed [sm_data]"); goto end; } OpenAPI_session_management_subscription_data_t *sm_dataItem = OpenAPI_session_management_subscription_data_parseFromJSON(sm_data_local_nonprimitive); OpenAPI_list_add(sm_dataList, sm_dataItem); } } cJSON *trace_data = cJSON_GetObjectItemCaseSensitive(subscription_data_setsJSON, "traceData"); OpenAPI_trace_data_t *trace_data_local_nonprim = NULL; if (trace_data) { trace_data_local_nonprim = OpenAPI_trace_data_parseFromJSON(trace_data); } cJSON *sms_mng_data = cJSON_GetObjectItemCaseSensitive(subscription_data_setsJSON, "smsMngData"); OpenAPI_sms_management_subscription_data_t *sms_mng_data_local_nonprim = NULL; if (sms_mng_data) { sms_mng_data_local_nonprim = OpenAPI_sms_management_subscription_data_parseFromJSON(sms_mng_data); } cJSON *lcs_privacy_data = cJSON_GetObjectItemCaseSensitive(subscription_data_setsJSON, "lcsPrivacyData"); OpenAPI_lcs_privacy_data_t *lcs_privacy_data_local_nonprim = NULL; if (lcs_privacy_data) { lcs_privacy_data_local_nonprim = OpenAPI_lcs_privacy_data_parseFromJSON(lcs_privacy_data); } cJSON *lcs_mo_data = cJSON_GetObjectItemCaseSensitive(subscription_data_setsJSON, "lcsMoData"); OpenAPI_lcs_mo_data_t *lcs_mo_data_local_nonprim = NULL; if (lcs_mo_data) { lcs_mo_data_local_nonprim = OpenAPI_lcs_mo_data_parseFromJSON(lcs_mo_data); } cJSON *v2x_data = cJSON_GetObjectItemCaseSensitive(subscription_data_setsJSON, "v2xData"); OpenAPI_v2x_subscription_data_t *v2x_data_local_nonprim = NULL; if (v2x_data) { v2x_data_local_nonprim = OpenAPI_v2x_subscription_data_parseFromJSON(v2x_data); } cJSON *lcs_broadcast_assistance_types_data = cJSON_GetObjectItemCaseSensitive(subscription_data_setsJSON, "lcsBroadcastAssistanceTypesData"); OpenAPI_lcs_broadcast_assistance_types_data_t *lcs_broadcast_assistance_types_data_local_nonprim = NULL; if (lcs_broadcast_assistance_types_data) { lcs_broadcast_assistance_types_data_local_nonprim = OpenAPI_lcs_broadcast_assistance_types_data_parseFromJSON(lcs_broadcast_assistance_types_data); } subscription_data_sets_local_var = OpenAPI_subscription_data_sets_create ( am_data ? am_data_local_nonprim : NULL, smf_sel_data ? smf_sel_data_local_nonprim : NULL, uec_amf_data ? uec_amf_data_local_nonprim : NULL, uec_smf_data ? uec_smf_data_local_nonprim : NULL, uec_smsf_data ? uec_smsf_data_local_nonprim : NULL, sms_subs_data ? sms_subs_data_local_nonprim : NULL, sm_data ? sm_dataList : NULL, trace_data ? trace_data_local_nonprim : NULL, sms_mng_data ? sms_mng_data_local_nonprim : NULL, lcs_privacy_data ? lcs_privacy_data_local_nonprim : NULL, lcs_mo_data ? lcs_mo_data_local_nonprim : NULL, v2x_data ? v2x_data_local_nonprim : NULL, lcs_broadcast_assistance_types_data ? lcs_broadcast_assistance_types_data_local_nonprim : NULL ); return subscription_data_sets_local_var; end: return NULL; } OpenAPI_subscription_data_sets_t *OpenAPI_subscription_data_sets_copy(OpenAPI_subscription_data_sets_t *dst, OpenAPI_subscription_data_sets_t *src) { cJSON *item = NULL; char *content = NULL; ogs_assert(src); item = OpenAPI_subscription_data_sets_convertToJSON(src); if (!item) { ogs_error("OpenAPI_subscription_data_sets_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_subscription_data_sets_free(dst); dst = OpenAPI_subscription_data_sets_parseFromJSON(item); cJSON_Delete(item); return dst; }