cJSON *kr_context_dump_json(T_KRContext *ptContext) { cJSON *alert = cJSON_CreateObject(); /*add group info*/ T_KRGroup *krgroup = ptContext->ptFlow->ptRoutedGroup; cJSON_AddNumberToObject(alert, "groupid", krgroup->lGroupId); /*add current record info*/ cJSON *currec = cJSON_CreateObject(); _set_cjson_record(ptContext->ptCurrRec, currec); cJSON_AddItemToObject(alert, "currec", currec); /*add rules info*/ cJSON *rules = cJSON_CreateArray(); kr_list_foreach(krgroup->ptRuleList->ptRuleList, (KRForEachFunc )_add_rule, rules); cJSON_AddItemToObject(alert, "rules", rules); /*add dataitems info*/ cJSON *datas = cJSON_CreateObject(); T_KRHashTable *ptSdiTable = ptContext->ptData->ptSdiTable->ptSDITable; _add_sdis_to_data(ptSdiTable, datas); T_KRHashTable *ptDdiTable = ptContext->ptData->ptDdiTable->ptDDITable; _add_ddis_to_data(ptDdiTable, datas); T_KRHashTable *ptHdiTable = ptContext->ptData->ptHdiTable->ptHDITable; _add_hdis_to_data(ptHdiTable, datas); cJSON_AddItemToObject(alert, "datas", datas); return alert; }
int kr_group_func(T_KRGroup *krgroup, T_KRContext *krcontext) { /*add alert info*/ cJSON *alert = cJSON_CreateObject(); cJSON_AddNumberToObject(alert, "groupid", krgroup->lGroupId); /*add current record info*/ cJSON *currec = cJSON_CreateObject(); _set_cjson_record(krcontext->ptCurrRec, currec); cJSON_AddItemToObject(alert, "currec", currec); /*add rules info*/ cJSON *rules = cJSON_CreateArray(); kr_list_foreach(krgroup->ptRuleList->ptRuleList, (KRForEachFunc )_add_rule, rules); cJSON_AddItemToObject(alert, "rules", rules); /*add dataitems info*/ cJSON *datas = cJSON_CreateObject(); T_KRHashTable *sditable = krcontext->ptDym->sditable->ptSDITable; _add_sdis_to_data(sditable, datas); T_KRHashTable *dditable = krcontext->ptDym->dditable->ptDDITable; _add_ddis_to_data(dditable, datas); T_KRHashTable *hditable = krcontext->ptDym->hditable->ptHDITable; _add_hdis_to_data(hditable, datas); cJSON_AddItemToObject(alert, "datas", datas); krcontext->pcaResp = cJSON_PrintUnformatted(alert); cJSON_Delete(alert); /*Important: You need kr_free Response*/ printf("response: %s\n", krcontext->pcaResp); KR_LOG(KR_LOGDEBUG, "response : %s ", krcontext->pcaResp); return 0; }