示例#1
0
/******************************************************************************
 *                                                                            *
 * Function: lld_trigger_get                                                  *
 *                                                                            *
 * Purpose: finds already existing trigger, using an item prototype and items *
 *          already created by it                                             *
 *                                                                            *
 * Return value: upon successful completion return pointer to the trigger     *
 *                                                                            *
 ******************************************************************************/
static zbx_lld_trigger_t	*lld_trigger_get(zbx_vector_ptr_t *triggers, zbx_vector_ptr_t *item_links)
{
	int			i;
	zbx_lld_trigger_t	*trigger;

	for (i = 0; i < item_links->values_num; i++)
	{
		zbx_lld_item_link_t	*item_link = (zbx_lld_item_link_t *)item_links->values[i];

		if (NULL != (trigger = lld_trigger_by_item(triggers, item_link->itemid)))
			return trigger;
	}

	return NULL;
}
示例#2
0
/******************************************************************************
 *                                                                            *
 * Function: lld_trigger_get                                                  *
 *                                                                            *
 * Purpose: finds already existing trigger, using an item prototype and items *
 *          already created by it                                             *
 *                                                                            *
 * Return value: upon successful completion return pointer to the trigger     *
 *                                                                            *
 ******************************************************************************/
static zbx_lld_trigger_t	*lld_trigger_get(const zbx_vector_ptr_t *functions_proto, zbx_vector_ptr_t *triggers,
		zbx_vector_ptr_t *item_links)
{
	int			i, index;
	zbx_lld_trigger_t	*trigger;
	zbx_lld_item_link_t	*item_link;

	for (i = 0; i < functions_proto->values_num; i++)
	{
		zbx_lld_function_t	*function = (zbx_lld_function_t *)functions_proto->values[i];

		index = zbx_vector_ptr_bsearch(item_links, &function->itemid, ZBX_DEFAULT_UINT64_PTR_COMPARE_FUNC);

		if (FAIL == index)
			continue;

		item_link = (zbx_lld_item_link_t *)item_links->values[index];

		if (NULL != (trigger = lld_trigger_by_item(triggers, item_link->itemid)))
			return trigger;
	}

	return NULL;
}