47#ifndef ALGORITHM_SET_H
48#define ALGORITHM_SET_H
59typedef struct _Set
Set;
95#define SET_NULL ((void *) 0)
char data[hepevt_bytes_allocation_ATLAS]
int set_insert(Set *set, SetValue data)
Add a value to a set.
void(* SetFreeFunc)(SetValue value)
Function used to free values stored in a set.
int set_query(Set *set, SetValue data)
Query if a particular value is in a set.
SetValue set_iter_next(SetIterator *iterator)
Using a set iterator, retrieve the next value from the set.
int set_remove(Set *set, SetValue data)
Remove a value from a set.
int(* SetEqualFunc)(SetValue value1, SetValue value2)
Equality function.
SetValue * set_to_array(Set *set)
Create an array containing all entries in a set.
struct _SetEntry SetEntry
Internal structure representing an entry in the set.
int set_iter_has_more(SetIterator *iterator)
Determine if there are more values in the set to iterate over.
struct _Set Set
Represents a set of values.
void * SetValue
A value stored in a Set.
Set * set_intersection(Set *set1, Set *set2)
Perform an intersection of two sets.
void set_iterate(Set *set, SetIterator *iter)
Initialise a SetIterator structure to iterate over the values in a set.
unsigned long(* SetHashFunc)(SetValue value)
Hash function.
void set_register_free_function(Set *set, SetFreeFunc free_func)
Register a function to be called when values are removed from the set.
Set * set_new(SetHashFunc hash_func, SetEqualFunc equal_func)
Create a new set.
int set_num_entries(Set *set)
Retrieve the number of entries in a set.
Set * set_union(Set *set1, Set *set2)
Perform a union of two sets.
struct _SetIterator SetIterator
An object used to iterate over a set.
void set_free(Set *set)
Destroy a set.
Definition of a SetIterator.