Exemplo n.º 1
0
INT32 data_release_event()
{
	INT32 ret,i;
	date_time start_dt, end_dt;
	ret = ERR_FAILED;

	epg_enter_mutex();

	do
	{
		for(i=0; i<db_block.index; i++)
		{
			get_event_start_time(&db_block.node[i], &start_dt);
			get_event_end_time(&db_block.node[i], &end_dt);
			if(eit_compare_time(&tw1.t_min,&end_dt)<=0 ||eit_compare_time(&tw1.t_max, &start_dt)>=0 )
			{// release event data
				if(db_block.node[i].status==NODE_ACTIVE)
					MTP_PRINT("%d-%d\n", start_dt.month, start_dt.day);
				if(db_block.node[i].status==NODE_ACTIVE && SUCCESS==__del_node(&db_block.node[i]))
				{
					MTP_PRINT("cnt:%d\n",db_block.count);
					ret = SUCCESS;
				}
			}
		}
	}while(ret!=SUCCESS && update_time_window(&tw0, &tw1, EVN_DATA)==SUCCESS);
	
	epg_leave_mutex();
	return ret;
}
Exemplo n.º 2
0
INT32 data_release_tp()
{
	INT32 ret=0, i;
	UINT32 tp_id;
	if(0==tplist.cnt)
		return ERR_FAILED;

	epg_enter_mutex();
	
	tp_id = tplist.tp[tplist.cnt-1];
	for(i=0; i<db_block.index; i++)
		if(db_block.node[i].status==NODE_ACTIVE && db_block.node[i].tp_id==tp_id)
		{
			MTP_PRINT("sid=%d,ei=%d,et=%d,tp=%d,i=%d\n",db_block.node[i].service_id,db_block.node[i].event_id,db_block.node[i].event_type,tp_id, i);
			if(__del_node(&db_block.node[i])==SUCCESS)	ret++;
		}
	tplist.cnt--;

	reset_time_window(&tw0,&tw1);
	g_update_all_events = TRUE;
	epg_leave_mutex();

	if(ret==0)
		ret = ERR_FAILED;
	else
		ret = SUCCESS;
	return ret;
}
Exemplo n.º 3
0
//if the node fit the condition, del it.
static INT32 _del_node(struct DB_NODE *node, struct DB_CHECK *check)
{
	if (node->status == NODE_ACTIVE)
	{
		if (check != NULL
			&& check->check_func != NULL
			&& check->check_func(node, check->priv))
		{
			//del from view???
//			_del_from_view(node, &epg_view);
			__del_node(node);
		}
	}

	return !SUCCESS;
}
Exemplo n.º 4
0
void del_node(struct node* _node)
{
	__del_node(_node);

	free(_node);
}