A simple set implementation, based on hash.h.  
More...
 | 
| 
typedef struct set_entry_s  | SET_ENTRY_T | 
|   | This structure represents an entry in the set. 
  | 
| 
typedef struct set_s  | SET_T | 
|   | This represents a set. 
  | 
 | 
| SET_T *  | set_new (const unsigned long slots) | 
|   | Create a new set with the given number of slots.  
  | 
| 
SET_T *  | set_new_string (const unsigned long slots) | 
|   | Create a new set which holds strings (pointers to char). 
  | 
| 
SET_T *  | set_new_int (const unsigned long slots) | 
|   | Create a new set which holds pointers to integers. 
  | 
| 
void *  | set_add_int (SET_T *set, const int val) | 
|   | Helper to add integers to sets. 
  | 
| void  | set_free (SET_T *set) | 
|   | Frees memory (including values) associated with a set.  
  | 
| void *  | set_add (SET_T *set, const void *val) | 
|   | Add a value to a set.  
  | 
| void *  | set_del (SET_T *set, const void *val) | 
|   | Remove a value from the set.  
  | 
| void *  | set_contains (const SET_T *set, const void *val) | 
|   | Test whether a set contains a given value.  
  | 
| void **  | set_values (const SET_T *set) | 
|   | Obtains all values currently in the set.  
  | 
| SET_T *  | set_dup (const SET_T *set) | 
|   | Create a deep copy of a set.  
  | 
A simple set implementation, based on hash.h. 
 
◆ set_add()
      
        
          | void * set_add  | 
          ( | 
          SET_T * |           set,  | 
        
        
           | 
           | 
          const void * |           val ) | 
        
      
 
Add a value to a set. 
If the set already contains the value, a pointer to the value in the set is returned.
- Parameters
 - 
  
    | set | The set to which the value will be added.  | 
    | val | The value to store.  | 
  
   
- Return values
 - 
  
    | void * | If the value already exists in the set.  | 
    | NULL | If the value did not already exist in the set.  | 
  
   
 
 
◆ set_contains()
      
        
          | void * set_contains  | 
          ( | 
          const SET_T * |           set,  | 
        
        
           | 
           | 
          const void * |           val ) | 
        
      
 
Test whether a set contains a given value. 
- Parameters
 - 
  
    | set | The set to be searched for the value.  | 
    | val | The value which is to be searched for.  | 
  
   
- Return values
 - 
  
    | void * | The value, if found.  | 
    | NULL | If the value was not found.  | 
  
   
 
 
◆ set_del()
      
        
          | void * set_del  | 
          ( | 
          SET_T * |           set,  | 
        
        
           | 
           | 
          const void * |           val ) | 
        
      
 
Remove a value from the set. 
- Parameters
 - 
  
    | set | The set from which the value will be removed.  | 
    | val | The value to be removed from the set.  | 
  
   
- Return values
 - 
  
    | void * | The value which was removed. The caller should free this value.  | 
    | NULL | If the value was not found.  | 
  
   
 
 
◆ set_dup()
Create a deep copy of a set. 
set_free should be called on the pointer when no longer needed.
- Parameters
 - 
  
  
 
- Returns
 - A copy of the set. 
 
 
 
◆ set_free()
      
        
          | void set_free  | 
          ( | 
          SET_T * |           set | ) | 
           | 
        
      
 
Frees memory (including values) associated with a set. 
This function can free all memory associated with a set.
- Parameters
 - 
  
  
 
 
 
◆ set_new()
      
        
          | SET_T * set_new  | 
          ( | 
          const unsigned long |           slots | ) | 
           | 
        
      
 
Create a new set with the given number of slots. 
- Parameters
 - 
  
    | slots | The number of slots available in the set. Values hash to a slot, and if a slot already contains a value which yields the same hash, it is chained to other entries in the bucket.  | 
  
   
- Return values
 - 
  
    | SET_T * | Returns a pointer to a SET_T structure.  | 
    | NULL | If the set cannot be created.  | 
  
   
 
 
◆ set_values()
      
        
          | void ** set_values  | 
          ( | 
          const SET_T * |           set | ) | 
           | 
        
      
 
Obtains all values currently in the set. 
- Parameters
 - 
  
    | set | The set to be inspected. | 
  
   
- Returns
 - A NULL-terminated array of all values in the set. Call free() on the array when it is no longer required; values are pointers into the set and should not be freed.