From 72470a6732312c085185ae08d911e9f0d7c7fc1a Mon Sep 17 00:00:00 2001 From: Agustin Ranieri Date: Mon, 18 Mar 2024 15:30:30 +0000 Subject: [PATCH] Docs: convierto a doxygen (#174) * docs: doxygenize bitarray.h * docs: doxygenize config.h * docs: doxygenize dictionary.h * docs: doxygenize error.h * docs: corrections in config.h and dictionary.h * docs: doxygenize list.h * docs: doxygenize memory.h * docs: doxygenize process.h * docs: doxygenize queue.h * docs: doxygenize temporal.h * docs: doxygenize txt.h * docs: doxygenize temporal test * docs: doxygenize log.h * chore: ignore .idea files * docs: doxygenize string.h * docs: corrections in bitarray.h * docs: corrections in config.h * docs: corrections in dictionary.h * docs: corrections in list.h --- .gitignore | 1 + src/commons/bitarray.h | 80 +++---- src/commons/collections/dictionary.c | 4 - src/commons/collections/dictionary.h | 67 +++--- src/commons/collections/list.h | 271 ++++++++++++------------ src/commons/collections/queue.h | 42 ++-- src/commons/config.h | 71 ++++--- src/commons/error.h | 7 +- src/commons/log.h | 79 ++++--- src/commons/memory.h | 8 +- src/commons/process.h | 8 +- src/commons/string.h | 225 ++++++++++---------- src/commons/temporal.h | 67 +++--- src/commons/txt.h | 16 +- tests/integration-tests/temporal/main.c | 16 +- 15 files changed, 490 insertions(+), 472 deletions(-) diff --git a/.gitignore b/.gitignore index 51a0909d..7f6555d5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.idea .project .cproject .settings diff --git a/src/commons/bitarray.h b/src/commons/bitarray.h index 1c74ffb2..0c1fe6f7 100644 --- a/src/commons/bitarray.h +++ b/src/commons/bitarray.h @@ -25,17 +25,19 @@ #define BIT_CHAR(bit) ((bit) / CHAR_BIT) /** - * Define el orden bajo el cual se guardarán los bits a la hora de llenar los bytes. - * La mayoría de las implementaciones de bitmap usan LSB_FIRST. Si no estás seguro - * de cuál usar, probablemente quieras usar esta. + * @brief Define el orden bajo el cual se guardarán los bits a la hora de llenar los bytes. + * @note La mayoría de las implementaciones de bitmap usan LSB_FIRST. Si no estás seguro + * de cuál usar, probablemente quieras usar esta. */ typedef enum { - /* Completa los bits en un byte priorizando el bit menos significativo: - * 00000001 00000000 + /** + * @brief Completa los bits en un byte priorizando el bit menos significativo: + * @example 00000001 00000000 */ LSB_FIRST, - /* Completa los bits en un byte priorizando el bit más significativo: - * 10000000 00000000 + /** + * @brief Completa los bits en un byte priorizando el bit más significativo: + * @example 10000000 00000000 */ MSB_FIRST } bit_numbering_t; @@ -47,62 +49,66 @@ } t_bitarray; /** - * @DEPRECATED: La firma de esta función se encuentra en revisión y probablemente cambie - * en próximas versiones. Usar bitarray_create_with_mode. + * @deprecated Esta función se encuentra en revisión y probablemente cambie en próximas versiones. + * Usar bitarray_create_with_mode. * - * @NAME: bitarray_create - * @DESC: Crea y devuelve un puntero a una estructura t_bitarray con formato LSB_FIRST - * @PARAMS: - * bitarray - el bloque de memoria que contiene los bits a leer/escribir - * size - la cantidad de bits del bitarray, expresada en bytes (1 byte = 8 bits) + * @fn bitarray_create + * @brief Crea y devuelve un puntero a una estructura t_bitarray con formato LSB_FIRST * - * ejemplo: bitarray de 8 posiciones (bits), - * void* puntero_a_bits = //un byte de memoria, como por ejemplo malloc(1) - * bitarray_create(puntero_a_bits, 1) + * @param bitarray El bloque de memoria que contiene los bits a leer/escribir + * @param size La cantidad de bits del bitarray, expresada en bytes (1 byte = 8 bits) + * + * @example bitarray de 8 posiciones (bits), + * @code + * void* puntero_a_bits = //un byte de memoria, como por ejemplo malloc(1) + * bitarray_create(puntero_a_bits, 1) + * @endcode */ - t_bitarray *bitarray_create(char *bitarray, size_t size); + t_bitarray *bitarray_create(char *bitarray, size_t size) __attribute__((deprecated)); /** - * @NAME: bitarray_create_with_mode - * @DESC: Crea y devuelve un puntero a una estructura t_bitarray - * @PARAMS: - * bitarray - el bloque de memoria que contiene los bits a leer/escribir - * size - la cantidad de bits del bitarray, expresada en bytes (1 byte = 8 bits) - * mode - LSB_FIRST ó MSB_FIRST + * @fn bitarray_create_with_mode + * @brief Crea y devuelve un puntero a una estructura t_bitarray + * + * @param bitarray El bloque de memoria que contiene los bits a leer/escribir + * @param size La cantidad de bits del bitarray, expresada en bytes (1 byte = 8 bits) + * @param mode LSB_FIRST o MSB_FIRST @see bit_numbering_t * - * ejemplo: bitarray de 8 posiciones (bits) con LSB_FIRST, - * void* puntero_a_bits = //un byte de memoria, como por ejemplo malloc(1) - * bitarray_create_with_mode(puntero_a_bits, 1, LSB_FIRST) + * @example bitarray de 8 posiciones (bits) con LSB_FIRST, + * @code + * void* puntero_a_bits = //un byte de memoria, como por ejemplo malloc(1) + * bitarray_create_with_mode(puntero_a_bits, 1, LSB_FIRST) + * @endcode */ t_bitarray *bitarray_create_with_mode(char *bitarray, size_t size, bit_numbering_t mode); /** - * @NAME: bitarray_test_bit - * @DESC: Devuelve el valor del bit de la posicion indicada + * @fn bitarray_test_bit + * @brief Devuelve el valor del bit de la posicion indicada */ bool bitarray_test_bit(t_bitarray*, off_t bit_index); /** - * @NAME: bitarray_set_bit - * @DESC: Setea el valor del bit de la posicion indicada + * @fn bitarray_set_bit + * @brief Setea el valor del bit de la posicion indicada */ void bitarray_set_bit(t_bitarray*, off_t bit_index); /** - * @NAME: bitarray_clean_bit - * @DESC: Limpia el valor del bit de la posicion indicada + * @fn bitarray_clean_bit + * @brief Limpia el valor del bit de la posicion indicada */ void bitarray_clean_bit(t_bitarray*, off_t bit_index); /** - * @NAME: bitarray_get_max_bit - * @DESC: Devuelve la cantidad de bits en el bitarray + * @fn bitarray_get_max_bit + * @brief Devuelve la cantidad de bits en el bitarray */ size_t bitarray_get_max_bit(t_bitarray*); /** - * @NAME: bitarray_destroy - * @DESC: Destruye el bit array + * @fn bitarray_destroy + * @brief Destruye el bit array */ void bitarray_destroy(t_bitarray*); diff --git a/src/commons/collections/dictionary.c b/src/commons/collections/dictionary.c index f20f0a2c..5f2f5b2f 100644 --- a/src/commons/collections/dictionary.c +++ b/src/commons/collections/dictionary.c @@ -222,10 +222,6 @@ static void dictionary_resize(t_dictionary *self, int new_max_size) { free(old_table); } -/* - * @NAME: dictionary_clean - * @DESC: Destruye todos los elementos del diccionario -*/ static void internal_dictionary_clean_and_destroy_elements(t_dictionary *self, void(*data_destroyer)(void*)) { int table_index; diff --git a/src/commons/collections/dictionary.h b/src/commons/collections/dictionary.h index b7459739..2a3f57d5 100644 --- a/src/commons/collections/dictionary.h +++ b/src/commons/collections/dictionary.h @@ -31,95 +31,94 @@ } t_dictionary; /** - * @NAME: dictionary_create - * @DESC: Crea el diccionario + * @fn dictionary_create + * @brief Crea el diccionario */ t_dictionary *dictionary_create(); /** - * @NAME: dictionary_put - * @DESC: Inserta un nuevo par (key->element) al diccionario, en caso de ya existir la key actualiza el elemento. - * [Warning] - Tener en cuenta que esto no va a liberar la memoria del `element` original. + * @fn dictionary_put + * @brief Inserta un nuevo par (key->element) al diccionario, en caso de ya existir la key actualiza el elemento. + * + * @warning Tener en cuenta que esto no va a liberar la memoria del `element` original. */ void dictionary_put(t_dictionary *, char *key, void *element); /** - * @NAME: dictionary_get - * @DESC: Obtiene el elemento asociado a la key. + * @fn dictionary_get + * @brief Obtiene el elemento asociado a la key. */ void *dictionary_get(t_dictionary *, char *key); /** - * @NAME: dictionary_remove - * @DESC: Remueve un elemento del diccionario y lo retorna. + * @fn dictionary_remove + * @brief Remueve un elemento del diccionario y lo retorna. */ void *dictionary_remove(t_dictionary *, char *key); /** - * @NAME: dictionary_remove_and_destroy - * @DESC: Remueve un elemento del diccionario y lo destruye. + * @fn dictionary_remove_and_destroy + * @brief Remueve un elemento del diccionario y lo destruye. */ void dictionary_remove_and_destroy(t_dictionary *, char *, void(*element_destroyer)(void*)); /** - * @NAME: dictionary_iterator - * @DESC: Aplica closure a todos los elementos del diccionario. - * - * La función que se pasa por paremtro recibe (char* key, void* element) + * @fn dictionary_iterator + * @brief Aplica closure a todos los elementos del diccionario. */ - void dictionary_iterator(t_dictionary *, void(*closure)(char*,void*)); + void dictionary_iterator(t_dictionary *, void(*closure)(char* key, void* element)); /** - * @NAME: dictionary_clean - * @DESC: Quita todos los elementos del diccionario + * @fn dictionary_clean + * @brief Quita todos los elementos del diccionario */ void dictionary_clean(t_dictionary *); /** - * @NAME: dictionary_clean_and_destroy_elements - * @DESC: Quita todos los elementos del diccionario y los destruye + * @fn dictionary_clean_and_destroy_elements + * @brief Quita todos los elementos del diccionario y los destruye */ void dictionary_clean_and_destroy_elements(t_dictionary *, void(*element_destroyer)(void*)); /** - * @NAME: dictionary_has_key - * @DESC: Retorna true si key se encuentra en el diccionario + * @fn dictionary_has_key + * @brief Retorna true si key se encuentra en el diccionario */ bool dictionary_has_key(t_dictionary *, char* key); /** - * @NAME: dictionary_is_empty - * @DESC: Retorna true si el diccionario está vacío + * @fn dictionary_is_empty + * @brief Retorna true si el diccionario está vacío */ bool dictionary_is_empty(t_dictionary *); /** - * @NAME: dictionary_size - * @DESC: Retorna la cantidad de elementos del diccionario + * @fn dictionary_size + * @brief Retorna la cantidad de elementos del diccionario */ int dictionary_size(t_dictionary *); /** - * @NAME: dictionary_keys - * @DESC: Retorna todas las keys en una lista + * @fn dictionary_keys + * @brief Retorna todas las keys en una lista */ t_list *dictionary_keys(t_dictionary *self); /** - * @NAME: dictionary_elements - * @DESC: Retorna todos los elementos en una lista + * @fn dictionary_elements + * @brief Retorna todos los elementos en una lista */ t_list *dictionary_elements(t_dictionary *self); /** - * @NAME: dictionary_destroy - * @DESC: Destruye el diccionario + * @fn dictionary_destroy + * @brief Destruye el diccionario */ void dictionary_destroy(t_dictionary *); /** - * @NAME: dictionary_destroy_and_destroy_elements - * @DESC: Destruye el diccionario y destruye sus elementos + * @fn dictionary_destroy_and_destroy_elements + * @brief Destruye el diccionario y destruye sus elementos */ void dictionary_destroy_and_destroy_elements(t_dictionary *, void(*element_destroyer)(void*)); diff --git a/src/commons/collections/list.h b/src/commons/collections/list.h index de49c87f..6605e227 100755 --- a/src/commons/collections/list.h +++ b/src/commons/collections/list.h @@ -33,327 +33,330 @@ } t_list_iterator; /** - * @NAME: list_create - * @DESC: Crea una lista + * @fn list_create + * @brief Crea una lista */ t_list * list_create(); /** - * @NAME: list_destroy - * @DESC: Destruye una lista sin liberar - * los elementos contenidos en los nodos + * @fn list_destroy + * @brief Destruye una lista sin liberar + * los elementos contenidos en los nodos */ void list_destroy(t_list *); /** - * @NAME: list_destroy_and_destroy_elements - * @DESC: Destruye una lista y sus elementos + * @fn list_destroy_and_destroy_elements + * @brief Destruye una lista y sus elementos */ void list_destroy_and_destroy_elements(t_list*, void(*element_destroyer)(void*)); /** - * @NAME: list_add - * @DESC: Agrega un elemento al final de la lista + * @fn list_add + * @brief Agrega un elemento al final de la lista */ int list_add(t_list *, void *element); /** - * @NAME: list_add_in_index - * @DESC: Agrega un elemento en una posicion determinada de la lista + * @fn list_add_in_index + * @brief Agrega un elemento en una posicion determinada de la lista */ void list_add_in_index(t_list *, int index, void *element); /** - * @NAME: list_add_sorted - * @DESC: Agrega un elemento a una lista ordenada, manteniendo el - * orden definido por el comparador - * El comparador devuelve si el primer parametro debe aparecer antes que el - * segundo en la lista + * @fn list_add_sorted + * @brief Agrega un elemento a una lista ordenada, manteniendo el + * orden definido por el comparador + * + * @note El comparador devuelve true si el primer parametro debe aparecer + * antes que el segundo en la lista */ int list_add_sorted(t_list *self, void* data, bool (*comparator)(void*,void*)); /** - * @NAME: list_add_all - * @DESC: Agrega todos los elementos de - * la segunda lista en la primera + * @fn list_add_all + * @brief Agrega todos los elementos de la segunda lista en la primera */ void list_add_all(t_list*, t_list* other); /** - * @NAME: list_get - * @DESC: Retorna el contenido de una posicion determianda de la lista + * @fn list_get + * @brief Retorna el contenido de una posicion determinada de la lista */ void *list_get(t_list *, int index); /** - * @NAME: list_get_minimum - * @DESC: Retorna el minimo de la lista según el comparador - * El comparador devuelve cuál es el mínimo de dos valores + * @fn list_get_minimum + * @brief Retorna el minimo de la lista según el comparador + * + * @note El comparador devuelve cuál es el mínimo de dos valores */ void *list_get_minimum(t_list* self, void* (*minimum)(void*, void*)); /** - * @NAME: list_get_maximum - * @DESC: Retorna el maximo de la lista según el comparador - * El comparador devuelve cuál es el máximo de dos valores + * @fn list_get_maximum + * @brief Retorna el maximo de la lista según el comparador + * + * @note El comparador devuelve cuál es el máximo de dos valores */ void *list_get_maximum(t_list* self, void* (*maximum)(void*, void*)); /** - * @NAME: list_take - * @DESC: Retorna una nueva lista con los primeros n elementos. + * @fn list_take + * @brief Retorna una nueva lista con los primeros n elementos. */ t_list* list_take(t_list*, int count); /** - * @NAME: list_slice - * @DESC: Retorna una nueva lista con los primeros n elementos partiendo - * desde el índice indicado. + * @fn list_slice + * @brief Retorna una nueva lista con los primeros n elementos partiendo + * desde el índice indicado. */ t_list* list_slice(t_list* self, int start, int count); /** - * @NAME: list_take_and_remove - * @DESC: Retorna una nueva lista con los primeros n elementos, eliminando - * del origen estos elementos. + * @fn list_take_and_remove + * @brief Retorna una nueva lista con los primeros n elementos, eliminando + * del origen estos elementos. */ t_list* list_take_and_remove(t_list*, int count); /** - * @NAME: list_slice_and_remove - * @DESC: Retorna una nueva lista con los primeros n elementos partiendo - * desde el índice indicado, eliminando del origen estos elementos. + * @fn list_slice_and_remove + * @brief Retorna una nueva lista con los primeros n elementos partiendo + * desde el índice indicado, eliminando del origen estos elementos. */ t_list* list_slice_and_remove(t_list* self, int start, int count); /** - * @NAME: list_filter - * @DESC: Retorna una nueva lista con los - * elementos que cumplen la condicion + * @fn list_filter + * @brief Retorna una nueva lista con los elementos que cumplen la condicion */ t_list* list_filter(t_list*, bool(*condition)(void*)); /** - * @NAME: list_map - * @DESC: Retorna una nueva lista con los - * con los elementos transformados + * @fn list_map + * @brief Retorna una nueva lista con los elementos transformados */ t_list* list_map(t_list*, void*(*transformer)(void*)); /** - * @NAME: list_flatten - * @DESC: Retorna una nueva lista con los elementos de - * la lista de listas recibida + * @fn list_flatten + * @brief Retorna una nueva lista con los elementos de la lista de listas + * recibida */ t_list* list_flatten(t_list* self); /** - * @NAME: list_replace - * @DESC: Coloca un elemento en una de la posiciones - * de la lista retornando el valor anterior + * @fn list_replace + * @brief Coloca un elemento en una de la posiciones de la lista retornando + * el valor anterior */ void *list_replace(t_list*, int index, void* element); /** - * @NAME: list_replace_by_condition - * @DESC: Coloca un elemento en la posición de la lista - * en donde se encuentra el primer valor que haga que - * condition sea != 0, retornando el valor anterior. + * @fn list_replace_by_condition + * @brief Coloca un elemento en la posición de la lista + * en donde se encuentra el primer valor que haga que + * condition sea != 0, retornando el valor anterior. * - * En caso de no encontrar ningún valor, no realiza el - * reemplazo y retorna NULL. + * @note En caso de no encontrar ningún valor, no realiza el + * reemplazo y retorna NULL. */ void *list_replace_by_condition(t_list*, bool(*condition)(void*), void* element); /** - * @NAME: list_replace_and_destroy_element - * @DESC: Coloca un valor en una de la posiciones - * de la lista liberando el valor anterior + * @fn list_replace_and_destroy_element + * @brief Coloca un valor en una de la posiciones de la lista liberando el + * valor anterior */ void list_replace_and_destroy_element(t_list*, int index, void* element, void(*element_destroyer)(void*)); /** - * @NAME: list_remove - * @DESC: Remueve un elemento de la lista de - * una determinada posicion y lo retorna. + * @fn list_remove + * @brief Remueve un elemento de la lista de una determinada posicion y lo + * retorna. */ void *list_remove(t_list *, int index); /** - * @NAME: list_remove_element - * @DESC: Remueve al elemento de la lista recibido por parámetro. Devuelve - * false en caso de no haberlo encontrado. + * @fn list_remove_element + * @brief Remueve al elemento de la lista recibido por parámetro. Devuelve + * false en caso de no haberlo encontrado. */ bool list_remove_element(t_list* self, void* element); /** - * @NAME: list_remove_and_destroy_element - * @DESC: Remueve un elemento de la lista de una - * determinada posicion y libera la memoria. + * @fn list_remove_and_destroy_element + * @brief Remueve un elemento de la lista de una determinada posicion y + * libera la memoria. */ void list_remove_and_destroy_element(t_list *, int index, void(*element_destroyer)(void*)); /** - * @NAME: list_remove_by_condition - * @DESC: Remueve el primer elemento de la lista - * que haga que condition devuelva != 0. + * @fn list_remove_by_condition + * @brief Remueve el primer elemento de la lista que haga que condition + * devuelva != 0. */ void *list_remove_by_condition(t_list *, bool(*condition)(void*)); /** - * @NAME: list_remove_and_destroy_by_condition - * @DESC: Remueve y destruye el primer elemento de - * la lista que haga que condition devuelva != 0. + * @fn list_remove_and_destroy_by_condition + * @brief Remueve y destruye el primer elemento de la lista que haga que + * condition devuelva != 0. */ void list_remove_and_destroy_by_condition(t_list *, bool(*condition)(void*), void(*element_destroyer)(void*)); /** - * @NAME: list_remove_and_destroy_all_by_condition - * @DESC: Remueve y destruye todos los elementos de - * la lista que hagan que condition devuelva != 0. + * @fn list_remove_and_destroy_all_by_condition + * @brief Remueve y destruye todos los elementos de la lista que hagan que + * condition devuelva != 0. */ void list_remove_and_destroy_all_by_condition(t_list *self, bool(*condition)(void*), void(*element_destroyer)(void*)); /** - * @NAME: list_clean - * @DESC: Quita todos los elementos de la lista. + * @fn list_clean + * @brief Quita todos los elementos de la lista. */ void list_clean(t_list *); /** - * @NAME: list_clean - * @DESC: Quita y destruye todos los elementos de la lista + * @fn list_clean + * @brief Quita y destruye todos los elementos de la lista */ void list_clean_and_destroy_elements(t_list *self, void(*element_destroyer)(void*)); /** - * @NAME: list_iterate - * @DESC: Itera la lista llamando al closure por cada elemento + * @fn list_iterate + * @brief Itera la lista llamando al closure por cada elemento */ void list_iterate(t_list *, void(*closure)(void*)); /** - * @NAME: list_find - * @DESC: Retorna el primer valor encontrado, el cual haga que condition devuelva != 0 + * @fn list_find + * @brief Retorna el primer valor encontrado, el cual haga que condition + * devuelva != 0 */ void *list_find(t_list *, bool(*closure)(void*)); /** - * @NAME: list_size - * @DESC: Retorna el tamaño de la lista + * @fn list_size + * @brief Retorna el tamaño de la lista */ int list_size(t_list *); /** - * @NAME: list_is_empty - * @DESC: Verifica si la lista esta vacia + * @fn list_is_empty + * @brief Verifica si la lista esta vacia */ bool list_is_empty(t_list *); /** - * @NAME: list_sort - * @DESC: Ordena la lista segun el comparador - * El comparador devuelve si el primer parametro debe aparecer antes que el - * segundo en la lista + * @fn list_sort + * @brief Ordena la lista segun el comparador + * + * @note El comparador devuelve si el primer parametro debe aparecer antes + * que el segundo en la lista */ void list_sort(t_list *, bool (*comparator)(void *, void *)); /** - * @NAME: list_sorted - * @DESC: Retorna una lista nueva ordenada segun el comparador - * El comparador devuelve si el primer parametro debe aparecer antes que el - * segundo en la lista + * @fn list_sorted + * @brief Retorna una lista nueva ordenada segun el comparador + * + * @note El comparador devuelve si el primer parametro debe aparecer antes + * que el segundo en la lista */ t_list* list_sorted(t_list *, bool (*comparator)(void *, void *)); /** - * @NAME: list_count_satisfying - * @DESC: Cuenta la cantidad de elementos de - * la lista que cumplen una condición + * @fn list_count_satisfying + * @brief Cuenta la cantidad de elementos de la lista que cumplen una + * condición */ int list_count_satisfying(t_list* self, bool(*condition)(void*)); /** - * @NAME: list_any_satisfy - * @DESC: Determina si algún elemento - * de la lista cumple una condición + * @fn list_any_satisfy + * @brief Determina si algún elemento de la lista cumple una condición */ bool list_any_satisfy(t_list* self, bool(*condition)(void*)); /** - * @NAME: list_any_satisfy - * @DESC: Determina si todos los elementos - * de la lista cumplen una condición + * @fn list_any_satisfy + * @brief Determina si todos los elementos de la lista cumplen una condición */ bool list_all_satisfy(t_list* self, bool(*condition)(void*)); /** - * @NAME: list_duplicate - * @DESC: Crea una lista nueva con los mismos elementos que la original. + * @fn list_duplicate + * @brief Crea una lista nueva con los mismos elementos que la original. **/ t_list* list_duplicate(t_list* self); /** - * @NAME: list_fold1 - * @DESC: Devuelve un valor que resulta de aplicar la operacion entre todos los elementos - * de la lista, tomando al primero como semilla y partiendo desde el segundo (si existe). + * @fn list_fold1 + * @brief Devuelve un valor que resulta de aplicar la operacion entre todos + * los elementos de la lista, tomando al primero como semilla y + * partiendo desde el segundo (si existe). * - * La funcion 'operation' debe recibir dos valores del tipo de los elementos de la lista. + * @note La funcion 'operation' debe recibir dos valores del tipo de los + * elementos de la lista. */ void* list_fold1(t_list* self, void* (*operation)(void*, void*)); /** - * @NAME: list_fold - * @DESC: Devuelve un valor que resulta de aplicar la operacion entre todos los elementos - * de la lista, partiendo desde el primero. + * @fn list_fold + * @brief Devuelve un valor que resulta de aplicar la operacion entre todos + * los elementos de la lista, partiendo desde el primero. * - * La funcion 'operation' debe recibir dos valores: uno del tipo del valor initial (seed) - * y otro del tipo de los elementos de la lista. + * @note La funcion 'operation' debe recibir dos valores: uno del tipo del + * valor initial (seed) y otro del tipo de los elementos de la lista. */ void* list_fold(t_list* self, void* seed, void*(*operation)(void*, void*)); /** - * @NAME: list_iterator_create - * @DESC: Inicializa una iteración externa de la lista + * @fn list_iterator_create + * @brief Inicializa una iteración externa de la lista */ t_list_iterator* list_iterator_create(t_list* list); /** - * @NAME: list_iterator_has_next - * @DESC: Devuelve true si quedan elementos de la lista por recorrer + * @fn list_iterator_has_next + * @brief Devuelve true si quedan elementos de la lista por recorrer */ bool list_iterator_has_next(t_list_iterator* iterator); /** - * @NAME: list_iterator_next - * @DESC: Avanza hacia el siguiente elemento a iterar de la lista y - * lo devuelve + * @fn list_iterator_next + * @brief Avanza hacia el siguiente elemento a iterar de la lista y + * lo devuelve */ void* list_iterator_next(t_list_iterator* iterator); /** - * @NAME: list_iterator_index - * @DESC: Devuelve el índice del elemento actual de la iteración + * @fn list_iterator_index + * @brief Devuelve el índice del elemento actual de la iteración */ int list_iterator_index(t_list_iterator* iterator); /** - * @NAME: list_iterator_add - * @DESC: Agrega a la lista un elemento delante del actual y detrás - * del siguiente. Luego, avanza hacia el elemento agregado. + * @fn list_iterator_add + * @brief Agrega a la lista un elemento delante del actual y detrás + * del siguiente. Luego, avanza hacia el elemento agregado. */ void list_iterator_add(t_list_iterator* iterator, void *data); /** - * @NAME: list_iterator_remove - * @DESC: Remueve de la lista al elemento actual de la iteración + * @fn list_iterator_remove + * @brief Remueve de la lista al elemento actual de la iteración */ void list_iterator_remove(t_list_iterator* iterator); /** - * @NAME: list_iterator_destroy - * @DESC: Finaliza la instancia de iteración externa liberando sus - * recursos + * @fn list_iterator_destroy + * @brief Finaliza la instancia de iteración externa liberando sus + * recursos */ void list_iterator_destroy(t_list_iterator* iterator); diff --git a/src/commons/collections/queue.h b/src/commons/collections/queue.h index 9207deb6..5010f34e 100755 --- a/src/commons/collections/queue.h +++ b/src/commons/collections/queue.h @@ -24,63 +24,63 @@ } t_queue; /** - * @NAME: queue_create - * @DESC: Crea y devuelve un puntero a una cola + * @fn queue_create + * @brief Crea y devuelve un puntero a una cola */ t_queue *queue_create(); /** - * @NAME: queue_destroy - * @DESC: Destruye una cola. + * @fn queue_destroy + * @brief Destruye una cola. */ void queue_destroy(t_queue *); /** - * @NAME: queue_destroy_and_destroy_elements - * @DESC: Destruye una cola, recibiendo como argumento el metodo encargado de liberar cada - * elemento de la cola. + * @fn queue_destroy_and_destroy_elements + * @brief Destruye una cola, recibiendo como argumento el metodo encargado de + * liberar cada elemento de la cola. */ void queue_destroy_and_destroy_elements(t_queue*, void(*element_destroyer)(void*)); /** - * @NAME: queue_push - * @DESC: Agrega un elemento al final de la cola + * @fn queue_push + * @brief Agrega un elemento al final de la cola */ void queue_push(t_queue *, void *element); /** - * @NAME: queue_pop - * @DESC: quita el primer elemento de la cola + * @fn queue_pop + * @brief quita el primer elemento de la cola */ void *queue_pop(t_queue *); /** - * @NAME: queue_peek - * @DESC: Devuelve el primer elemento de la cola sin extraerlo + * @fn queue_peek + * @brief Devuelve el primer elemento de la cola sin extraerlo */ void *queue_peek(t_queue *); /** - * @NAME: queue_clean - * @DESC: Elimina todos los elementos de la cola. + * @fn queue_clean + * @brief Elimina todos los elementos de la cola. */ void queue_clean(t_queue *); /** - * @NAME: queue_clean_and_destroy_elements - * @DESC: Elimina y destruye todos los elementos de la cola. + * @fn queue_clean_and_destroy_elements + * @brief Elimina y destruye todos los elementos de la cola. */ void queue_clean_and_destroy_elements(t_queue *, void(*element_destroyer)(void*)); /** - * @NAME: queue_size - * @DESC: Devuelve la cantidad de elementos de la cola + * @fn queue_size + * @brief Devuelve la cantidad de elementos de la cola */ int queue_size(t_queue *); /** - * @NAME: queue_is_empty - * @DESC: Verifica si la cola esta vacía + * @fn queue_is_empty + * @brief Verifica si la cola esta vacía */ bool queue_is_empty(t_queue *); diff --git a/src/commons/config.h b/src/commons/config.h index 4de80193..79414262 100644 --- a/src/commons/config.h +++ b/src/commons/config.h @@ -25,89 +25,90 @@ } t_config; /** - * @NAME: config_create - * @DESC: Crea una estructura t_config - * @PARAMS: - * path - path del archivo de configuracion - * @RETURN: Devuelve un puntero hacia la estructura creada o NULL - * en caso de no encotrar el archivo en el path especificado. + * @fn config_create + * @brief Crea una estructura t_config + * + * @param path Ruta hacia el archivo de configuracion + * @return Retorna un puntero hacia la estructura creada, o NULL + * en caso de no encontrar el archivo en el path especificado. */ t_config *config_create(char *path); /** - * @NAME: config_has_property - * @DESC: Retorna true si key se encuentra en la configuracion. + * @fn config_has_property + * @brief Retorna true si key se encuentra en la configuracion. */ bool config_has_property(t_config*, char* key); /** - * @NAME: config_get_string_value - * @DESC: Retorna un string con el valor asociado a key. + * @fn config_get_string_value + * @brief Retorna un string con el valor asociado a key. */ char *config_get_string_value(t_config*, char *key); /** - * @NAME: config_get_int_value - * @DESC:Retorna un int con el valor asociado a key. + * @fn config_get_int_value + * @brief Retorna un int con el valor asociado a key. */ int config_get_int_value(t_config*, char *key); /** - * @NAME: config_get_long_value - * @DESC:Retorna un long con el valor asociado a key. + * @fn config_get_long_value + * @brief Retorna un long con el valor asociado a key. */ long config_get_long_value(t_config*, char *key); /** - * @NAME: config_get_double_value - * @DESC:Retorna un double con el valor asociado a key. + * @fn config_get_double_value + * @brief Retorna un double con el valor asociado a key. */ double config_get_double_value(t_config*, char *key); /** - * @NAME: config_get_array_value - * @DESC: Retorna un array con los valores asociados a la key especificada. - * En el archivo de configuracion un valor de este tipo debería ser representado - * de la siguiente forma [lista_valores_separados_por_coma] - * Ejemplo: - * VALORES=[1,2,3,4,5] - * El array que devuelve termina en NULL + * @fn config_get_array_value + * @brief Retorna un array con los valores asociados a la key especificada. + * + * @note En el archivo de configuracion un valor de este tipo debería ser representado + * de la siguiente forma [lista_valores_separados_por_coma] + * + * @example VALORES=[1,2,3,4,5] + * @note El array que devuelve termina en NULL */ char** config_get_array_value(t_config*, char* key); /** - * @NAME: config_key_amount - * @DESC: Retorna la cantidad de keys. + * @fn config_key_amount + * @brief Retorna la cantidad de keys. */ int config_keys_amount(t_config*); /** - * @NAME: config_destroy - * @DESC: Destruye la estructura config. + * @fn config_destroy + * @brief Destruye la estructura config. */ void config_destroy(t_config *config); /** - * @NAME: config_set_value - * @DESC: Setea el valor en el archivo de config, a la key asociada. + * @fn config_set_value + * @brief Setea el valor en el archivo de config, a la key asociada. */ void config_set_value(t_config*, char *key, char *value); /** - * @NAME: config_remove_key - * @DESC: Remueve la clave y su valor asociado del archivo de config. + * @fn config_remove_key + * @brief Remueve la clave y su valor asociado del archivo de config. */ void config_remove_key(t_config*, char *key); /** - * @NAME: config_save - * @DESC: Reescribe el archivo de configuracion con los valores del config. + * @fn config_save + * @brief Reescribe el archivo de configuracion con los valores del config. */ int config_save(t_config*); /** - * @NAME: config_save_in_file - * @DESC: Escribe un archivo de configuracion en el path indicado con los valores del config. + * @fn config_save_in_file + * @brief Escribe un archivo de configuracion en el path indicado con los valores del config. */ int config_save_in_file(t_config*, char *path); diff --git a/src/commons/error.h b/src/commons/error.h index 3b658138..83bd9a85 100644 --- a/src/commons/error.h +++ b/src/commons/error.h @@ -18,10 +18,9 @@ /** - * @NAME: error_show - * @DESC: imprime un mensaje con el siguiente formato - * - * [[ERROR]] MESSAGE + * @fn error_show + * @brief imprime un mensaje con el siguiente formato + * [[ERROR]] MESSAGE */ void error_show(char *message, ...); diff --git a/src/commons/log.h b/src/commons/log.h index 97f9539b..5efd08ff 100644 --- a/src/commons/log.h +++ b/src/commons/log.h @@ -38,83 +38,80 @@ }t_log; /** - * @NAME: log_create - * @DESC: Crea una instancia de logger - * @PARAMS: - * file - la ruta hacia el archivo donde se van a generar los logs: - * + si el archivo ya existe, se escribirá al final del mismo - * + si el archivo no existe, se creará uno nuevo en el directorio indicado - * + si el directorio hacia el archivo no existe, se producirá un error - * process_name - el nombre a ser mostrado en los logs - * is_active_console - si lo que se loguea debe mostrarse por consola - * level - el nivel de detalle mínimo a loguear (ver definición de t_log_level) - * ejemplo: LOG_LEVEL_INFO logueará mediante log_error, log_warning y log_info - * e ignorará los llamados a log_debug y log_trace - * @RETURN: - * retorna una instancia de logger, o NULL en caso de error - */ + * @fn log_create + * @brief Crea una instancia de logger + * + * @param file La ruta hacia el archivo donde se van a generar los logs + * @param process_name El nombre a ser mostrado en los logs + * @param is_active_console Si lo que se loguea debe mostrarse por consola + * @param level El nivel de detalle mínimo a loguear (ver definición de t_log_level) + * + * @note si file ya existe, se escribirá al final del archivo + * @note si file no existe, se creará un nuevo archivo en el directorio indicado + * @note si el directorio hacia file no existe, se producirá un error + * + * @example si level es LOG_LEVEL_INFO, se loguearán los mensajes de nivel INFO, WARNING y ERROR + * y se ignorarán los mensajes de nivel DEBUG y TRACE + * + * @return Retorna una instancia de logger, o NULL en caso de error + */ t_log* log_create(char* file, char *process_name, bool is_active_console, t_log_level level); /** - * @NAME: log_destroy - * @DESC: Destruye una instancia de logger + * @fn log_destroy + * @brief Destruye una instancia de logger */ void log_destroy(t_log* logger); /** - * @NAME: log_trace - * @DESC: Loguea un mensaje con el siguiente formato - * - * [TRACE] hh:mm:ss:mmmm PROCESS_NAME/(PID:TID): MESSAGE + * @fn log_trace + * @brief Loguea un mensaje con el siguiente formato + * [TRACE] hh:mm:ss:mmmm PROCESS_NAME/(PID:TID): MESSAGE * */ void log_trace(t_log* logger, const char* message, ...) __attribute__((format(printf, 2, 3))); /** - * @NAME: log_debug - * @DESC: Loguea un mensaje con el siguiente formato - * - * [DEBUG] hh:mm:ss:mmmm PROCESS_NAME/(PID:TID): MESSAGE + * @fn log_debug + * @brief Loguea un mensaje con el siguiente formato + * [DEBUG] hh:mm:ss:mmmm PROCESS_NAME/(PID:TID): MESSAGE * */ void log_debug(t_log* logger, const char* message, ...) __attribute__((format(printf, 2, 3))); /** - * @NAME: log_info - * @DESC: Loguea un mensaje con el siguiente formato - * - * [INFO] hh:mm:ss:mmmm PROCESS_NAME/(PID:TID): MESSAGE + * @fn log_info + * @brief Loguea un mensaje con el siguiente formato + * [INFO] hh:mm:ss:mmmm PROCESS_NAME/(PID:TID): MESSAGE * */ void log_info(t_log* logger, const char* message, ...) __attribute__((format(printf, 2, 3))); /** - * @NAME: log_warning - * @DESC: Loguea un mensaje con el siguiente formato - * - * [WARNING] hh:mm:ss:mmmm PROCESS_NAME/(PID:TID): MESSAGE + * @fn log_warning + * @brief Loguea un mensaje con el siguiente formato + * [WARNING] hh:mm:ss:mmmm PROCESS_NAME/(PID:TID): MESSAGE * */ void log_warning(t_log* logger, const char* message, ...) __attribute__((format(printf, 2, 3))); /** - * @NAME: log_error - * @DESC: Loguea un mensaje con el siguiente formato - * - * [ERROR] hh:mm:ss:mmmm PROCESS_NAME/(PID:TID): MESSAGE + * @fn log_error + * @brief Loguea un mensaje con el siguiente formato + * [ERROR] hh:mm:ss:mmmm PROCESS_NAME/(PID:TID): MESSAGE * */ void log_error(t_log* logger, const char* message, ...) __attribute__((format(printf, 2, 3))); /** - * @NAME: log_level_as_string - * @DESC: Convierte un t_log_level a su representacion en string + * @fn log_level_as_string + * @brief Convierte un t_log_level a su representacion en string */ char *log_level_as_string(t_log_level level); /** - * @NAME: log_level_from_string - * @DESC: Convierte un string a su representacion en t_log_level + * @fn log_level_from_string + * @brief Convierte un string a su representacion en t_log_level */ t_log_level log_level_from_string(char *level); diff --git a/src/commons/memory.h b/src/commons/memory.h index 460e2a0b..d6e38219 100644 --- a/src/commons/memory.h +++ b/src/commons/memory.h @@ -27,14 +27,14 @@ /* amount of hex columns allow without a separator */ #define HEXDUMP_COLS_SEP 8 /** - * @NAME: mem_hexstring - * @DESC: Devuelve un dump hexadecimal en formato string de una porción de memoria dada + * @fn mem_hexstring + * @brief Devuelve un dump hexadecimal en formato string de una porción de memoria dada */ char *mem_hexstring(void *source, size_t length); /** - * @NAME: mem_hexdump - * @DESC: Imprime un dump hexadecimal por pantalla de una porción de memoria dada + * @fn mem_hexdump + * @brief Imprime un dump hexadecimal por pantalla de una porción de memoria dada */ void mem_hexdump(void *source, size_t length); diff --git a/src/commons/process.h b/src/commons/process.h index f8e8fea0..85898afb 100644 --- a/src/commons/process.h +++ b/src/commons/process.h @@ -18,14 +18,14 @@ #define PROCESS_H_ /** -* @NAME: process_get_thread_id -* @DESC: Obtiene el ID del thread actual +* @fn process_get_thread_id +* @brief Obtiene el ID del thread actual */ unsigned int process_get_thread_id(); /** -* @NAME: process_getpid -* @DESC: Obtiene el ID del proceso actual +* @fn process_getpid +* @brief Obtiene el ID del proceso actual */ unsigned int process_getpid(); diff --git a/src/commons/string.h b/src/commons/string.h index 686c9fa2..438afe7f 100644 --- a/src/commons/string.h +++ b/src/commons/string.h @@ -21,302 +21,313 @@ #include /** - * @NAME: string_new - * @DESC: Crea un string vacio + * @fn string_new + * @brief Crea un string vacio */ char* string_new(); /** - * @NAME: string_itoa - * @DESC: Crea un string a partir de un numero + * @fn string_itoa + * @brief Crea un string a partir de un numero */ char* string_itoa(int number); /** - * @NAME: string_from_format - * @DESC: Crea un nuevo string a partir de un formato especificado + * @fn string_from_format + * @brief Crea un nuevo string a partir de un formato especificado * - * Ejemplo: + * @example + * @code * char* saludo = string_from_format("Hola %s", "mundo"); * * => saludo = "Hola mundo" + * @endcode */ char* string_from_format(const char* format, ...) __attribute__((format(printf, 1, 2))); /** - * @NAME: string_from_vformat - * @DESC: Crea un nuevo string a partir de un formato especificado - * pasando un va_list con los argumentos + * @fn string_from_vformat + * @brief Crea un nuevo string a partir de un formato especificado + * pasando un va_list con los argumentos */ char* string_from_vformat(const char* format, va_list arguments); /** - * @NAME: string_repeat - * @DESC: Crea un string de longitud 'count' con el mismo caracter. + * @fn string_repeat + * @brief Crea un string de longitud 'count' con el mismo caracter. * - * Ejemplo: + * @example + * @code * string_repeat('a', 5) = "aaaaa" - * + * @endcode */ char* string_repeat(char ch, int count); /** - * @NAME: string_append - * @DESC: Agrega al primer string el segundo + * @fn string_append + * @brief Agrega al primer string el segundo * - * Ejemplo: + * @example + * @code * char *unaPalabra = string_new(); * string_append(&unaPalabra, "HOLA "); * string_append(&unaPalabra, "PEPE"); * * => unaPalabra = "HOLA PEPE" + * @endcode */ void string_append(char ** original, char * string_to_add); /** - * @NAME: string_n_append - * @DESC: Agrega al primer string un máximo de n caracteres - * del segundo. + * @fn string_n_append + * @brief Agrega al primer string un máximo de n caracteres + * del segundo. * - * Ejemplo: + * @example + * @code * char *unaPalabra = string_new(); * string_n_append(&unaPalabra, "HOLA ", 10); * string_n_append(&unaPalabra, "PEPE", 3); * * => unaPalabra = "HOLA PEP" + * @endcode */ void string_n_append(char** original, char* string_to_add, int n); /** - * @NAME: string_append_with_format - * @DESC: Concatena al primer string el resultado de aplicar los parametros al - * formato especificado + * @fn string_append_with_format + * @brief Concatena al primer string el resultado de aplicar los parametros + * al formato especificado * - * Ejemplo: + * @example + * @code * char *saludo = "HOLA "; * char *nombre = "PEPE"; * * string_append_with_format(&saludo, "%s!", nombre); * * => saludo = "HOLA PEPE!" + * @endcode */ void string_append_with_format(char **original, const char *format, ...) __attribute__((format(printf, 2, 3))); /** - * @NAME: string_duplicate - * @DESC: Retorna una copia del string pasado - * como argumento + * @fn string_duplicate + * @brief Retorna una copia del string pasado como argumento */ char* string_duplicate(char* original); /** - * @NAME: string_to_upper - * @DESC: Pone en mayuscula todos los caracteres de un string + * @fn string_to_upper + * @brief Pone en mayuscula todos los caracteres de un string */ void string_to_upper(char * text); /** - * @NAME: string_to_lower - * @DESC: Pone en minuscula todos los caracteres de un string + * @fn string_to_lower + * @brief Pone en minuscula todos los caracteres de un string */ void string_to_lower(char * text); /** - * @NAME: string_capitalized - * @DESC: Capitaliza un string + * @fn string_capitalized + * @brief Capitaliza un string */ void string_capitalized(char * text); /** - * @NAME: string_trim - * @DESC: Remueve todos los caracteres - * vacios de la derecha y la izquierda + * @fn string_trim + * @brief Remueve todos los caracteres vacios de la derecha y la izquierda */ void string_trim(char ** text); /** - * @NAME: string_trim_left - * @DESC: Remueve todos los caracteres - * vacios de la izquierda + * @fn string_trim_left + * @brief Remueve todos los caracteres vacios de la izquierda */ void string_trim_left(char ** text); /** - * @NAME: string_trim_right - * @DESC: Remueve todos los caracteres - * vacios de la derecha + * @fn string_trim_right + * @brief Remueve todos los caracteres vacios de la derecha */ void string_trim_right(char ** text); /** - * @NAME: string_length - * @DESC: Retorna la longitud del string + * @fn string_length + * @brief Retorna la longitud del string */ int string_length(char * text); /** - * @NAME: string_is_empty - * @DESC: Retorna si un string es "" + * @fn string_is_empty + * @brief Retorna si un string es "" */ bool string_is_empty(char * text); /** - * @NAME: string_starts_with - * @DESC: Retorna un boolean que indica - * si un string comienza con el - * string pasado por parametro + * @fn string_starts_with + * @brief Retorna un boolean que indica si un string comienza con el string + * pasado por parametro */ bool string_starts_with(char * text, char * begin); /** - * @NAME: string_ends_with - * @DESC: Retorna un boolean que indica - * si un string finaliza con el - * string pasado por parametro + * @fn string_ends_with + * @brief Retorna un boolean que indica si un string finaliza con el string + * pasado por parametro */ bool string_ends_with(char* text, char* end); /** - * @NAME: string_equals_ignore_case - * @DESC: Retorna si dos strings son iguales - * ignorando las mayusculas y minusculas + * @fn string_equals_ignore_case + * @brief Retorna si dos strings son iguales ignorando las mayusculas y + * minusculas */ bool string_equals_ignore_case(char * actual, char * expected); /** - * @NAME: string_split - * @DESC: Separa un string dado un separador + * @fn string_split + * @brief Separa un string dado un separador * * @Return: Retorna un array con cada palabra y en la última posición un NULL * - * Ejemplo: + * @example + * @code * string_split("hola, mundo", ",") => ["hola", " mundo", NULL] + * @endcode */ char** string_split(char * text, char * separator); /** - * @NAME: string_n_split - * @DESC: Separa un string tantas veces por su separador como n lo permita + * @fn string_n_split + * @brief Separa un string tantas veces por su separador como n lo permita * - * Ejemplo: + * @example + * @code * string_n_split("hola, mundo, bueno", 2, ",") => ["hola", " mundo, bueno", NULL] * string_n_split("hola, mundo, bueno", 3, ",") => ["hola", " mundo", " bueno", NULL] * string_n_split("hola, mundo, bueno", 10, ",") => ["hola", " mundo", " bueno", NULL] - * + * @endcode */ char** string_n_split(char* text, int n, char* separator); /** - * @NAME: string_substring - * @DESC: Retorna los length caracteres de text empezando en start - * en un nuevo string + * @fn string_substring + * @brief Retorna los length caracteres de text empezando en start + * en un nuevo string */ char* string_substring(char* text, int start, int length); /** - * @NAME: string_substring_from - * @DESC: Retorna el substring de text desde el indice start hasta - * el último de la palabra + * @fn string_substring_from + * @brief Retorna el substring de text desde el indice start hasta + * el último de la palabra */ char* string_substring_from(char *text, int start); /** - * @NAME: string_substring_until - * @DESC: Retorna los primeros length caracteres de text como un nuevo string + * @fn string_substring_until + * @brief Retorna los primeros length caracteres de text como un nuevo string */ char* string_substring_until(char *text, int length); /** - * @NAME: string_iterate_lines - * @DESC: Itera un array de strings aplicando - * el closure a cada string, hasta que encuentre un NULL + * @fn string_iterate_lines + * @brief Itera un array de strings aplicando + * el closure a cada string, hasta que encuentre un NULL */ void string_iterate_lines(char ** strings, void (*closure)(char *)); /** - * @NAME: string_get_string_as_array - * @DESC: Retorna una array separando los elementos - * de un string con formato de array + * @fn string_get_string_as_array + * @brief Retorna una array separando los elementos + * de un string con formato de array * - * Ejemplo: + * @example + * @code * char* array_string = "[1,2,3,4]" - * string_get_value_as_array(array_string) => ["1","2","3","4"] + * string_get_value_as_array(array_string) => ["1","2","3","4",NULL] + * @endcode */ char** string_get_string_as_array(char* text); /** - * @NAME: string_reverse - * @DESC: Retorna el texto invertido. No se maneja el caso de NULL, + * @fn string_reverse + * @brief Retorna el texto invertido. No se maneja el caso de NULL, * si se pasa NULL su comportamiento no esta determinado. * - * Ejemplo: + * @example + * @code * char* original = "boo"; * string_reverse(original) => "oob" + * @endcode */ char* string_reverse(char* text); /** - * @NAME: string_replace - * @DESC: Retorna una copia de un string con todas las ocurrencias - * de un substring no vacío siendo reemplazadas por otro string. + * @fn string_replace + * @brief Retorna una copia de un string con todas las ocurrencias + * de un substring no vacío siendo reemplazadas por otro string. * - * Ejemplo: + * @example + * @code * char* original = "hello"; * string_replace(original, "ello", "ola") => "hola" * string_replace(original, "l", ""); => "heo" * string_replace(original, "not a substring", "yay!"); => "hello" + * @endcode */ char* string_replace(char* text, char* substring, char* replacement); /** - * @NAME: string_contains - * @DESC: Retorna un boolean que indica si text contiene o no - * a substring. + * @fn string_contains + * @brief Retorna un boolean que indica si text contiene o no + * a substring. */ bool string_contains(char* text, char *substring); /** - * @NAME: string_array_new - * @DESC: Crea un array de strings vacio + * @fn string_array_new + * @brief Crea un array de strings vacio */ char** string_array_new(); /** - * @NAME: string_array_destroy - * @DESC: Destruye un array con sus strings + * @fn string_array_destroy + * @brief Destruye un array con sus strings */ void string_array_destroy(char** array); /** - * @NAME: string_array_size - * @DESC: Retorna la cantidad de líneas del - * array de strings + * @fn string_array_size + * @brief Retorna la cantidad de líneas del array de strings */ int string_array_size(char** array); /** - * @NAME: string_array_is_empty - * @DESC: Verifica si el array de strings está vacío + * @fn string_array_is_empty + * @brief Verifica si el array de strings está vacío */ bool string_array_is_empty(char** array); /** - * @NAME: string_array_push - * @DESC: Agrega un string al final del array + * @fn string_array_push + * @brief Agrega un string al final del array */ void string_array_push(char*** array, char* text); /** - * @NAME: string_array_replace - * @DESC: Reemplaza un string en un array por otro, retornando - * el anterior + * @fn string_array_replace + * @brief Reemplaza un string en un array por otro, retornando + * el anterior */ char* string_array_replace(char** array, int pos, char* text); /** - * @NAME: string_array_pop - * @DESC: Quita el último string del array y lo retorna + * @fn string_array_pop + * @brief Quita el último string del array y lo retorna */ char* string_array_pop(char** array); diff --git a/src/commons/temporal.h b/src/commons/temporal.h index 1e3cea69..22738a16 100644 --- a/src/commons/temporal.h +++ b/src/commons/temporal.h @@ -20,8 +20,7 @@ #include /** - * @NAME: t_temporal_status - * @DESC: Estado de una variable temporal. + * @brief Estado de una variable temporal. */ typedef enum { TEMPORAL_STATUS_STOPPED, @@ -29,8 +28,7 @@ } t_temporal_status; /** - * @NAME: t_temporal - * @DESC: Estructura de una Variable temporal. + * @brief Estructura de una Variable temporal. */ typedef struct { struct timespec current; @@ -39,61 +37,66 @@ } t_temporal; /** - * @NAME: temporal_get_string_time - * @DESC: Retorna un string con la hora actual, - * con el formato recibido por parámetro. - * Ejemplos: + * @fn temporal_get_string_time + * @brief Retorna un string con la hora actual, con el formato recibido por + * parámetro. + * + * @example + * @code * temporal_get_string_time("%d/%m/%y") => "30/09/20" * temporal_get_string_time("%H:%M:%S:%MS") => "12:51:59:331" * temporal_get_string_time("%d/%m/%y %H:%M:%S") => "30/09/20 12:51:59" + * @endcode */ char *temporal_get_string_time(const char* format); /** - * @NAME: temporal_create - * @DESC: Crea una variable temporal e inicia su cronómetro. + * @fn temporal_create + * @brief Crea una variable temporal e inicia su cronómetro. */ t_temporal* temporal_create(void); /** - * @NAME: temporal_destroy - * @DESC: Destruye una variable temporal. - * @PARAMS: - * temporal - Variable temporal a destruir. + * @fn temporal_destroy + * @brief Destruye una variable temporal. + * + * @param temporal Variable temporal a destruir. */ void temporal_destroy(t_temporal* temporal); /** - * @NAME: temporal_gettime - * @DESC: Retorna el tiempo total transcurrido mientras el cronómetro estuvo activo en milisegundos. - * @PARAMS: - * temporal - Variable temporal. + * @fn temporal_gettime + * @brief Retorna el tiempo total transcurrido mientras el cronómetro estuvo + * activo en milisegundos. + * + * @param temporal Variable temporal. */ int64_t temporal_gettime(t_temporal* temporal); /** - * @NAME: temporal_stop - * @DESC: Detiene el cronómetro de una variable temporal. - * @PARAMS: - * temporal - Variable temporal a frenar. + * @fn temporal_stop + * @brief Detiene el cronómetro de una variable temporal. + * + * @param temporal Variable temporal a frenar. */ void temporal_stop(t_temporal* temporal); /** - * @NAME: temporal_resume - * @DESC: Reanuda el cronómetro de una variable temporal. - * @PARAMS: - * temporal - Variable temporal a reanudar. + * @fn temporal_resume + * @brief Reanuda el cronómetro de una variable temporal. + * + * @param temporal Variable temporal a reanudar. */ void temporal_resume(t_temporal* temporal); /** - * @NAME: temporal_diff - * @DESC: Retorna la diferencia del tiempo total transcurrido entre dos variables temporales en milisegundos - * @PARAMS: - * temporal_1 - Primera variable temporal. - * temporal_2 - Segunda variable temporal. + * @fn temporal_diff + * @brief Retorna la diferencia del tiempo total transcurrido entre dos + * variables temporales en milisegundos + * + * @param temporal_1 Primera variable temporal. + * @param temporal_2 Segunda variable temporal. */ int64_t temporal_diff(t_temporal* temporal_1, t_temporal* temporal_2); -#endif /* TEMPORAL_H_ */ \ No newline at end of file +#endif /* TEMPORAL_H_ */ diff --git a/src/commons/txt.h b/src/commons/txt.h index 196be60a..402b5978 100644 --- a/src/commons/txt.h +++ b/src/commons/txt.h @@ -20,26 +20,26 @@ #include /** -* @NAME: txt_open_for_append -* @DESC: Abre un archivo para agregarle contenido al final +* @fn txt_open_for_append +* @brief Abre un archivo para agregarle contenido al final */ FILE* txt_open_for_append(char* path); /** -* @NAME: txt_write_in_file -* @DESC: Agrega contenido al final del archivo +* @fn txt_write_in_file +* @brief Agrega contenido al final del archivo */ void txt_write_in_file(FILE* file, char* string); /** -* @NAME: txt_write_in_stdout -* @DESC: Imprime un mensaje en la salida estandar +* @fn txt_write_in_stdout +* @brief Imprime un mensaje en la salida estandar */ void txt_write_in_stdout(char* string); /** -* @NAME: txt_close_file -* @DESC: Cierra el archivo +* @fn txt_close_file +* @brief Cierra el archivo */ void txt_close_file(FILE* file); diff --git a/tests/integration-tests/temporal/main.c b/tests/integration-tests/temporal/main.c index 4ef67118..59720bc6 100644 --- a/tests/integration-tests/temporal/main.c +++ b/tests/integration-tests/temporal/main.c @@ -9,7 +9,6 @@ #include #include #include -#include #include #include @@ -26,7 +25,7 @@ static void print_time() { void test_temporal_gettime() { /** - * @DESC: El tiempo que se obtiene es correcto. + * @brief El tiempo que se obtiene es correcto. */ t_temporal *temporal = temporal_create(); sleep(2); @@ -38,7 +37,7 @@ void test_temporal_gettime() { void test_temporal_stop() { /** - * @DESC: Al detener el temporal, deja de sumar tiempo. + * @brief Al detener el temporal, deja de sumar tiempo. */ t_temporal *temporal = temporal_create(); sleep(1); @@ -52,7 +51,8 @@ void test_temporal_stop() { void test_temporal_resume() { /** - * @DESC: Al detener y reanudar el temporal varias veces, el tiempo que este suma es correcto. + * @brief Al detener y reanudar el temporal varias veces, el tiempo que este + * suma es correcto. */ t_temporal* temporal = temporal_create(); @@ -84,7 +84,7 @@ void test_temporal_resume() { void test_temporal_diff() { /** - * @DESC: Comparar dos variables temporales. + * @brief Comparar dos variables temporales. */ t_temporal* temporal1 = temporal_create(); @@ -108,8 +108,10 @@ void test_temporal_diff() { void test_temporal_status() { /** - * @DESC: Verificar el comportamiento del temporal en sus diferentes estados. - * En este test se verifica que no ocurra ningún error al usar el temporal de cualquier forma. + * @brief Verificar el comportamiento del temporal en sus diferentes estados. + * + * @note En este test se verifica que no ocurra ningún error al usar el + * temporal de cualquier forma. */ t_temporal* temporal1 = temporal_create();