|
ATLAS Offline Software
|
Go to the documentation of this file.
47 #ifndef ALGORITHM_SET_H
48 #define ALGORITHM_SET_H
59 typedef struct _Set
Set;
95 #define SET_NULL ((void *) 0)
JetConstituentVector::iterator iterator
char data[hepevt_bytes_allocation_ATLAS]
int set_remove(Set *set, SetValue data)
Remove a value from a set.
int set_num_entries(Set *set)
Retrieve the number of entries in a set.
SetValue set_iter_next(SetIterator *iterator)
Using a set iterator, retrieve the next value from the set.
void(* SetFreeFunc)(SetValue value)
Function used to free values stored in a set.
void * SetValue
A value stored in a Set.
void set_iterate(Set *set, SetIterator *iter)
Initialise a SetIterator structure to iterate over the values in a set.
Set * set_union(Set *set1, Set *set2)
Perform a union of two sets.
Set * set_new(SetHashFunc hash_func, SetEqualFunc equal_func)
Create a new set.
void set_register_free_function(Set *set, SetFreeFunc free_func)
Register a function to be called when values are removed from the set.
Definition of a SetIterator.
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
struct _Set Set
Represents a set of values.
SetValue * set_to_array(Set *set)
Create an array containing all entries in a set.
unsigned long(* SetHashFunc)(SetValue value)
Hash function.
int(* SetEqualFunc)(SetValue value1, SetValue value2)
Equality function.
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.
int set_insert(Set *set, SetValue data)
Add a value to a set.
int set_query(Set *set, SetValue data)
Query if a particular value is in a set.
Set * set_intersection(Set *set1, Set *set2)
Perform an intersection of two sets.
void set_free(Set *set)
Destroy a set.