diff --git a/source_code/MODULE_marigold_vector/internal/internal_marigold_vector.h b/source_code/MODULE_marigold_vector/internal/internal_marigold_vector.h index f7403e8..a2ef07b 100644 --- a/source_code/MODULE_marigold_vector/internal/internal_marigold_vector.h +++ b/source_code/MODULE_marigold_vector/internal/internal_marigold_vector.h @@ -2,7 +2,62 @@ #define INTERNAL_MARIGOLD_VECTOR_H -struct vector_struct* vector_initialize(); +#include +#include +#include +#include + +typedef enum +vector_flag_enum +{ + vector_multithread_safe = 1 << 0, + vector_read_only = 1 << 1, + vector_certainly_sorted = 1 << 2, + vector_marked_for_free = 1 << 3, + vector_debug_has_function_call_rolled_over = 1 << 4, + vector_debug_has_owner_count_rolled_over = 1 << 5, + vector_debug_has_been_resized = 1 << 6, + vector_debug_has_been_resized_rolled_over = 1 << 7 +} +vector_flag_enum; + +typedef enum +vector_growth_rate_enum +{ + vector_growth_none = 0, + vector_growth_linear = 1, + vector_growth_double = 2, + vector_growth_triple = 3, + vector_growth_quadruple = 4, + vector_growth_quintuple = 5 +} +vector_growth_rate_enum; + +typedef struct +vector_struct +{ + size_t item_size; + size_t current_capacity; + size_t current_occupancy; + void* data_pointer; + int (*comparator)(const void *, const void *); + void (*item_free)(const void *); + pthread_mutex_t* mutex_lock; + unsigned short owner_count; + uint8_t growth_strategy; + uint8_t flags; +#ifdef MARIGOLD_DEBUG + uint8_t debug_flags; + uint32_t debug_resize_count; + uint32_t debug_function_call_count; + uint32_t debug_last_error_code; + uint32_t debug_allocation_failures; + +#endif /* MARIGOLD_DEBUG. */ +} +vector_struct; + +vector_struct* vector_initialize(); void vector_free_members(); diff --git a/source_code/MODULE_marigold_vector/marigold_vector.c b/source_code/MODULE_marigold_vector/marigold_vector.c index 555736b..3c0bf40 100644 --- a/source_code/MODULE_marigold_vector/marigold_vector.c +++ b/source_code/MODULE_marigold_vector/marigold_vector.c @@ -1,5 +1,4 @@ #include "marigold_vector.h" -#include "internal/internal_marigold_vector.h" #include diff --git a/source_code/MODULE_marigold_vector/marigold_vector.h b/source_code/MODULE_marigold_vector/marigold_vector.h index 0f5930c..7f32204 100644 --- a/source_code/MODULE_marigold_vector/marigold_vector.h +++ b/source_code/MODULE_marigold_vector/marigold_vector.h @@ -1,60 +1,7 @@ #ifndef MARIGOLD_VECTOR_H #define MARIGOLD_VECTOR_H -#include -#include -#include -#include - -typedef enum -vector_flag_enum -{ - vector_multithread_safe = 1 << 0, - vector_read_only = 1 << 1, - vector_certainly_sorted = 1 << 2, - vector_marked_for_free = 1 << 3, - vector_debug_has_function_call_rolled_over = 1 << 4, - vector_debug_has_owner_count_rolled_over = 1 << 5, - vector_debug_has_been_resized = 1 << 6, - vector_debug_has_been_resized_rolled_over = 1 << 7 -} -vector_flag_enum; - -typedef enum -vector_growth_rate_enum -{ - vector_growth_none = 0, - vector_growth_linear = 1, - vector_growth_double = 2, - vector_growth_triple = 3, - vector_growth_quadruple = 4, - vector_growth_quintuple = 5 -} -vector_growth_rate_enum; - -typedef struct -vector_struct -{ - size_t item_size; - size_t current_capacity; - size_t current_occupancy; - void* data_pointer; - int (*comparator)(const void *, const void *); - void (*item_free)(const void *); - pthread_mutex_t* mutex_lock; - unsigned short owner_count; - uint8_t growth_strategy; - uint8_t flags; -#ifdef MARIGOLD_DEBUG - uint8_t debug_flags; - uint32_t debug_resize_count; - uint32_t debug_function_call_count; - uint32_t debug_last_error_code; - uint32_t debug_allocation_failures; - -#endif /* MARIGOLD_DEBUG. */ -} -vector_struct; +#include "internal/internal_marigold_vector.h" /** * @brief Create a new dynamic vector, it then internally does all the