コード例 #1
0
ファイル: stats_tree.c プロジェクト: qnofae/wireshark
extern int 
stats_tree_create_range_node_string(stats_tree *st, const gchar *name,
				    int parent_id, int num_str_ranges,
				    gchar** str_ranges)
{
	int i;
	stat_node *rng_root = new_stat_node(st, name, parent_id, FALSE, TRUE);
	stat_node *range_node = NULL;

	for (i = 0; i < num_str_ranges; i++) {
		range_node = new_stat_node(st, str_ranges[i], rng_root->id, FALSE, FALSE);
		range_node->rng = get_range(str_ranges[i]);
	}

	return rng_root->id;
}
コード例 #2
0
ファイル: stats_tree.c プロジェクト: qnofae/wireshark
/*
 * Increases by delta the counter of the node whose name is given
 * if the node does not exist yet it's created (with counter=1)
 * using parent_name as parent node.
 * with_hash=TRUE to indicate that the created node will have a parent
 */
extern int
stats_tree_manip_node(manip_node_mode mode, stats_tree *st, const char *name,
		      int parent_id, gboolean with_hash, gint value)
{
	stat_node *node = NULL;
	stat_node *parent = NULL;

	g_assert( parent_id >= 0 && parent_id < (int) st->parents->len );

	parent = (stat_node *)g_ptr_array_index(st->parents,parent_id);

	if( parent->hash ) {
		node = (stat_node *)g_hash_table_lookup(parent->hash,name);
	} else {
		node = (stat_node *)g_hash_table_lookup(st->names,name);
	}

	if ( node == NULL )
		node = new_stat_node(st,name,parent_id,with_hash,with_hash);

	switch (mode) {
		case MN_INCREASE: node->counter += value; break;
		case MN_SET: node->counter = value; break;
	}

	if (node)
		return node->id;
	else
		return -1;
}
コード例 #3
0
ファイル: stats_tree.c プロジェクト: qnofae/wireshark
extern int
stats_tree_create_range_node(stats_tree *st, const gchar *name, int parent_id, ...)
{
	va_list list;
	gchar *curr_range;
	stat_node *rng_root = new_stat_node(st, name, parent_id, FALSE, TRUE);
	stat_node *range_node = NULL;

	va_start( list, parent_id );
	while (( curr_range = va_arg(list, gchar*) )) {
		range_node = new_stat_node(st, curr_range, rng_root->id, FALSE, FALSE);
		range_node->rng = get_range(curr_range);
	}
	va_end( list );

	return rng_root->id;
}
コード例 #4
0
ファイル: stats_tree.c プロジェクト: qnofae/wireshark
extern int
stats_tree_create_pivot(stats_tree *st, const gchar *name, int parent_id)
{
	stat_node *node = new_stat_node(st,name,parent_id,TRUE,TRUE);

	if (node)
		return node->id;
	else
		return 0;
}
コード例 #5
0
ファイル: stats_tree.c プロジェクト: qnofae/wireshark
extern int
stats_tree_create_node(stats_tree *st, const gchar *name, int parent_id, gboolean with_hash)
{
	stat_node *node = new_stat_node(st,name,parent_id,with_hash,TRUE);

	if (node)
		return node->id;
	else
		return 0;
}
コード例 #6
0
/*
 * Increases by delta the counter of the node whose name is given
 * if the node does not exist yet it's created (with counter=1)
 * using parent_name as parent node.
 * with_hash=TRUE to indicate that the created node will have a parent
 */
extern int
stats_tree_manip_node(manip_node_mode mode, stats_tree *st, const char *name,
		      int parent_id, gboolean with_hash, gint value)
{
	stat_node *node = NULL;
	stat_node *parent = NULL;

	g_assert( parent_id >= 0 && parent_id < (int) st->parents->len );

	parent = (stat_node *)g_ptr_array_index(st->parents,parent_id);

	if( parent->hash ) {
		node = (stat_node *)g_hash_table_lookup(parent->hash,name);
	} else {
		node = (stat_node *)g_hash_table_lookup(st->names,name);
	}

	if ( node == NULL )
		node = new_stat_node(st,name,parent_id,with_hash,with_hash);

	switch (mode) {
		case MN_INCREASE:
				node->counter += value;
				update_burst_calc(node, value);
				break;
		case MN_SET: node->counter = value; break;
		case MN_AVERAGE:
				node->counter++;
				update_burst_calc(node, 1);
				/* fall through to average code */
		case MN_AVERAGE_NOTICK:
				node->total += value;
				if (node->minvalue > value) {
					node->minvalue = value;
				}
				if (node->maxvalue < value) {
					node->maxvalue = value;
				}
				node->st_flags |= ST_FLG_AVERAGE;
				break;
		case MN_SET_FLAGS:
				node->st_flags |= value;
				break;
		case MN_CLEAR_FLAGS:
				node->st_flags &= ~value;
				break;
	}

	if (node)
		return node->id;
	else
		return -1;
}
コード例 #7
0
ファイル: stats_tree.c プロジェクト: qnofae/wireshark
extern int
stats_tree_create_pivot_by_pname(stats_tree *st, const gchar *name,
				 const gchar *parent_name)
{
	int parent_id = stats_tree_parent_id_by_name(st,parent_name);
	stat_node *node;

	node = new_stat_node(st,name,parent_id,TRUE,TRUE);

	if (node)
		return node->id;
	else
		return 0;
}