Commons Library  1.7.0
Estructuras de datos | defines | Funciones
Referencia del Archivo dictionary.h

#include <commons/collections/dictionary.h> Más...

Ir al código fuente de este archivo.

Estructuras de datos

struct  t_dictionary
 Estructura de un diccionario que contiene pares string->puntero. Inicializar con dictionary_create(). Más...
 

defines

#define DEFAULT_DICTIONARY_INITIAL_SIZE   20
 

Funciones

t_dictionarydictionary_create (void)
 Crea el diccionario. Más...
 
void dictionary_put (t_dictionary *, char *key, void *element)
 Inserta un nuevo par (key->element) al diccionario, en caso de ya existir la key actualiza el elemento. Más...
 
void * dictionary_get (t_dictionary *, char *key)
 Obtiene el elemento asociado a la key. Más...
 
void * dictionary_remove (t_dictionary *, char *key)
 Remueve un elemento del diccionario y lo retorna. Más...
 
void dictionary_remove_and_destroy (t_dictionary *, char *, void(*element_destroyer)(void *))
 Remueve un elemento del diccionario y lo destruye llamando a la función element_destroyer pasada por parámetro. Más...
 
void dictionary_iterator (t_dictionary *, void(*closure)(char *key, void *element))
 Aplica closure a todos los elementos del diccionario. Más...
 
void dictionary_clean (t_dictionary *)
 Quita todos los elementos del diccionario sin liberarlos, dejando el diccionario vacío. Más...
 
void dictionary_clean_and_destroy_elements (t_dictionary *, void(*element_destroyer)(void *))
 Quita todos los elementos del diccionario y los destruye, dejando el diccionario vacío. Más...
 
bool dictionary_has_key (t_dictionary *, char *key)
 Retorna true si key se encuentra en el diccionario. Más...
 
bool dictionary_is_empty (t_dictionary *)
 Retorna true si el diccionario está vacío. Más...
 
int dictionary_size (t_dictionary *)
 Retorna la cantidad de elementos del diccionario. Más...
 
t_listdictionary_keys (t_dictionary *self)
 Retorna todas las keys en una lista. Más...
 
t_listdictionary_elements (t_dictionary *self)
 Retorna todos los elementos en una lista. Más...
 
void dictionary_destroy (t_dictionary *)
 Destruye el diccionario. Más...
 
void dictionary_destroy_and_destroy_elements (t_dictionary *, void(*element_destroyer)(void *))
 Destruye el diccionario y destruye sus elementos. Más...
 

Descripción detallada

#include <commons/collections/dictionary.h>

Documentación de los 'defines'

◆ DEFAULT_DICTIONARY_INITIAL_SIZE

#define DEFAULT_DICTIONARY_INITIAL_SIZE   20

Documentación de las funciones

◆ dictionary_create()

t_dictionary* dictionary_create ( void  )

Crea el diccionario.

Devuelve
Devuelve un puntero al diccionario creado, liberable con:

◆ dictionary_put()

void dictionary_put ( t_dictionary ,
char *  key,
void *  element 
)

Inserta un nuevo par (key->element) al diccionario, en caso de ya existir la key actualiza el elemento.

Parámetros
[in]keyLa clave del elemento. Una copia de la clave será almacenada en el diccionario, por lo que no se afectará a la original.
[in]elementEl elemento a insertar. Este elemento pasará a pertenecer al diccionario, por lo que no debe ser liberado por fuera de éste.
Atención
Tener en cuenta que esto no va a liberar la memoria del element original.

◆ dictionary_get()

void* dictionary_get ( t_dictionary ,
char *  key 
)

Obtiene el elemento asociado a la key.

Devuelve
Devuelve un puntero perteneciente al diccionario, o NULL si no existe. Este puntero no debe ser liberado por fuera del diccionario.

◆ dictionary_remove()

void* dictionary_remove ( t_dictionary ,
char *  key 
)

Remueve un elemento del diccionario y lo retorna.

Devuelve
Devuelve un puntero al elemento removido, o NULL si no existe. Al haberse removido, debe ser liberado por fuera del diccionario en caso de ser necesario.

◆ dictionary_remove_and_destroy()

void dictionary_remove_and_destroy ( t_dictionary ,
char *  ,
void(*)(void *)  element_destroyer 
)

Remueve un elemento del diccionario y lo destruye llamando a la función element_destroyer pasada por parámetro.

◆ dictionary_iterator()

void dictionary_iterator ( t_dictionary ,
void(*)(char *key, void *element)  closure 
)

Aplica closure a todos los elementos del diccionario.

◆ dictionary_clean()

void dictionary_clean ( t_dictionary )

Quita todos los elementos del diccionario sin liberarlos, dejando el diccionario vacío.

◆ dictionary_clean_and_destroy_elements()

void dictionary_clean_and_destroy_elements ( t_dictionary ,
void(*)(void *)  element_destroyer 
)

Quita todos los elementos del diccionario y los destruye, dejando el diccionario vacío.

◆ dictionary_has_key()

bool dictionary_has_key ( t_dictionary ,
char *  key 
)

Retorna true si key se encuentra en el diccionario.

◆ dictionary_is_empty()

bool dictionary_is_empty ( t_dictionary )

Retorna true si el diccionario está vacío.

◆ dictionary_size()

int dictionary_size ( t_dictionary )

Retorna la cantidad de elementos del diccionario.

◆ dictionary_keys()

t_list* dictionary_keys ( t_dictionary self)

Retorna todas las keys en una lista.

◆ dictionary_elements()

t_list* dictionary_elements ( t_dictionary self)

Retorna todos los elementos en una lista.

◆ dictionary_destroy()

void dictionary_destroy ( t_dictionary )

Destruye el diccionario.

◆ dictionary_destroy_and_destroy_elements()

void dictionary_destroy_and_destroy_elements ( t_dictionary ,
void(*)(void *)  element_destroyer 
)

Destruye el diccionario y destruye sus elementos.

Nota
En caso de recibir un diccionario vacío, se comporta como dictionary_destroy()