From d4731d39612ef7c77a6b8bccffdf8bed660f00b1 Mon Sep 17 00:00:00 2001 From: herbglitch Date: Mon, 19 Dec 2022 23:16:17 -0700 Subject: [PATCH] string arrays and started work on ecs --- include/arc/engine/ecs.h | 32 ++++++++ include/arc/std/array.h | 11 +++ include/arc/std/defaults/config.h | 50 ++++++------ src/engine/ecs.c | 11 +++ src/graphics/sdl/config.c | 16 ++-- src/std/defaults/config.c | 125 ++++++++++++++++++++++++------ 6 files changed, 186 insertions(+), 59 deletions(-) create mode 100644 include/arc/std/array.h diff --git a/include/arc/engine/ecs.h b/include/arc/engine/ecs.h index e69de29..e03bd0b 100644 --- a/include/arc/engine/ecs.h +++ b/include/arc/engine/ecs.h @@ -0,0 +1,32 @@ +#ifndef ARC_ENGINE_ECS_H_ +#define ARC_ENGINE_ECS_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "arc/std/vector.h" +#include + +/** + * @brief a type that keeps permanice of data for when loading and unloading config files + */ +typedef struct ARC_ECS ARC_ECS; + +/** + * @brief creates ARC_Config type + * + * @param ecs ARC_ECS + */ +void ARC_ECS_Create(ARC_ECS **ecs); + +/** + * @brief destroys ARC_ECS type + */ +void ARC_ECS_Destroy(ARC_ECS *ecs); + +#ifdef __cplusplus +} +#endif + +#endif //ARC_ENGINE_ECS_H_ \ No newline at end of file diff --git a/include/arc/std/array.h b/include/arc/std/array.h new file mode 100644 index 0000000..8fc1a66 --- /dev/null +++ b/include/arc/std/array.h @@ -0,0 +1,11 @@ +#ifndef ARC_STD_ARRAY_H_ +#define ARC_STD_ARRAY_H_ + +#include + +typedef struct ARC_Array { + uint32_t *size; + void *data; +} ARC_Array; + +#endif //ARC_STD_ARRAY_H_ \ No newline at end of file diff --git a/include/arc/std/defaults/config.h b/include/arc/std/defaults/config.h index bfca04c..e9d8e1c 100644 --- a/include/arc/std/defaults/config.h +++ b/include/arc/std/defaults/config.h @@ -13,31 +13,33 @@ extern "C" { typedef struct ARC_Config ARC_Config; int32_t ARC_Defaults_ConfigKey_Create(ARC_Config *config); -int32_t ARC_ConfigKey_Read_Uint8_t (ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); -int32_t ARC_ConfigKey_Read_Int8_t (ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); -//int32_t ARC_ConfigKey_Read_Char (ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); -int32_t ARC_ConfigKey_Read_Uint16_t(ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); -int32_t ARC_ConfigKey_Read_Int16_t (ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); -int32_t ARC_ConfigKey_Read_Uint32_t(ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); -int32_t ARC_ConfigKey_Read_Int32_t (ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); -int32_t ARC_ConfigKey_Read_Int (ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); -int32_t ARC_ConfigKey_Read_Uint64_t(ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); -int32_t ARC_ConfigKey_Read_Int64_t (ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); -int32_t ARC_ConfigKey_Read_Long (ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); -int32_t ARC_ConfigKey_Read_String (ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); +int32_t ARC_ConfigKey_Read_Uint8_t (ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); +int32_t ARC_ConfigKey_Read_Int8_t (ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); +//int32_t ARC_ConfigKey_Read_Char (ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); +int32_t ARC_ConfigKey_Read_Uint16_t (ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); +int32_t ARC_ConfigKey_Read_Int16_t (ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); +int32_t ARC_ConfigKey_Read_Uint32_t (ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); +int32_t ARC_ConfigKey_Read_Int32_t (ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); +int32_t ARC_ConfigKey_Read_Int (ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); +int32_t ARC_ConfigKey_Read_Uint64_t (ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); +int32_t ARC_ConfigKey_Read_Int64_t (ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); +int32_t ARC_ConfigKey_Read_Long (ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); +int32_t ARC_ConfigKey_Read_String (ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); +int32_t ARC_ConfigKey_Read_StringArray(ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); -int32_t ARC_ConfigKey_Delete_Uint8_t (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value); -int32_t ARC_ConfigKey_Delete_Int8_t (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value); -int32_t ARC_ConfigKey_Delete_Char (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value); -int32_t ARC_ConfigKey_Delete_Uint16_t(ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value); -int32_t ARC_ConfigKey_Delete_Int16_t (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value); -int32_t ARC_ConfigKey_Delete_Uint32_t(ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value); -int32_t ARC_ConfigKey_Delete_Int32_t (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value); -int32_t ARC_ConfigKey_Delete_Int (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value); -int32_t ARC_ConfigKey_Delete_Uint64_t(ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value); -int32_t ARC_ConfigKey_Delete_Int64_t (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value); -int32_t ARC_ConfigKey_Delete_Long (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value); -int32_t ARC_ConfigKey_Delete_String (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value); +int32_t ARC_ConfigKey_Delete_Uint8_t (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value); +int32_t ARC_ConfigKey_Delete_Int8_t (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value); +int32_t ARC_ConfigKey_Delete_Char (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value); +int32_t ARC_ConfigKey_Delete_Uint16_t (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value); +int32_t ARC_ConfigKey_Delete_Int16_t (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value); +int32_t ARC_ConfigKey_Delete_Uint32_t (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value); +int32_t ARC_ConfigKey_Delete_Int32_t (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value); +int32_t ARC_ConfigKey_Delete_Int (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value); +int32_t ARC_ConfigKey_Delete_Uint64_t (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value); +int32_t ARC_ConfigKey_Delete_Int64_t (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value); +int32_t ARC_ConfigKey_Delete_Long (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value); +int32_t ARC_ConfigKey_Delete_String (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value); +int32_t ARC_ConfigKey_Delete_StringArray(ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value); #ifdef __cplusplus } diff --git a/src/engine/ecs.c b/src/engine/ecs.c index e69de29..40907e2 100644 --- a/src/engine/ecs.c +++ b/src/engine/ecs.c @@ -0,0 +1,11 @@ +#include "arc/engine/ecs.h" +#include "arc/std/vector.h" + +struct ARC_ECS { + ARC_Vector *components; +}; + +struct ARC_ECSComponent { + ARC_Vector *functions; + ARC_Vector *data; +}; \ No newline at end of file diff --git a/src/graphics/sdl/config.c b/src/graphics/sdl/config.c index db872f8..d78d234 100644 --- a/src/graphics/sdl/config.c +++ b/src/graphics/sdl/config.c @@ -3,6 +3,7 @@ #include #include +#include "arc/std/array.h" #include "arc/std/string.h" #include "arc/std/errno.h" #include "arc/graphics/sdl/renderer.h" @@ -18,11 +19,6 @@ SDL_Renderer *global_renderer; -typedef struct ARC_Array { - uint32_t *size; - void *data; -} ARC_Array; - int32_t ARC_Point_Read (ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); int32_t ARC_Rect_Read (ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); int32_t ARC_RectArray_Read (ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value); @@ -41,7 +37,7 @@ void ARC_GraphicsConfig_Init(ARC_Config *config, ARC_Renderer *renderer){ global_renderer = renderer->renderer; ARC_ConfigKey_Add(config, (char *)"ARC_Point" , (ARC_ConfigKeyRead) ARC_Point_Read , (ARC_ConfigKeyDelete) ARC_Point_Delete ); ARC_ConfigKey_Add(config, (char *)"ARC_Rect" , (ARC_ConfigKeyRead) ARC_Rect_Read , (ARC_ConfigKeyDelete) ARC_Rect_Delete ); - ARC_ConfigKey_Add(config, (char *)"ARC_RectArray" , (ARC_ConfigKeyRead) ARC_RectArray_Read , (ARC_ConfigKeyDelete) ARC_RectArray_Delete ); + ARC_ConfigKey_Add(config, (char *)"ARC_Rect[]" , (ARC_ConfigKeyRead) ARC_RectArray_Read , (ARC_ConfigKeyDelete) ARC_RectArray_Delete ); ARC_ConfigKey_Add(config, (char *)"SDL_Texture" , (ARC_ConfigKeyRead) ARC_SDL_Texture_Read, (ARC_ConfigKeyDelete) ARC_SDL_Texture_Delete); ARC_ConfigKey_Add(config, (char *)"ARC_Spritesheet", (ARC_ConfigKeyRead) ARC_Spritesheet_Read, (ARC_ConfigKeyDelete) ARC_Spritesheet_Delete); ARC_ConfigKey_Add(config, (char *)"ARC_Sprite" , (ARC_ConfigKeyRead) ARC_Sprite_Read , (ARC_ConfigKeyDelete) ARC_Sprite_Delete ); @@ -109,7 +105,7 @@ int32_t ARC_Rect_Read(ARC_Config* config, const char *data, ARC_StringSubstr *su if(err){ return err; } if(split == ~((uint64_t)0) || split > subdata->length){ return ARC_ERRNO_DATA; } temp.length = split; - ((SDL_Rect *) *value)->y = (int)ARC_String_ToUint64_t(data, &temp); + ((ARC_Rect *) *value)->y = (int)ARC_String_ToUint64_t(data, &temp); ttt = ((ARC_Rect *) *value)->y; //w @@ -118,13 +114,13 @@ int32_t ARC_Rect_Read(ARC_Config* config, const char *data, ARC_StringSubstr *su if(err){ return err; } if(split == ~((uint64_t)0) || split > subdata->length){ return ARC_ERRNO_DATA; } temp.length = split; - ((SDL_Rect *) *value)->w = (int)ARC_String_ToUint64_t(data, &temp); + ((ARC_Rect *) *value)->w = (int)ARC_String_ToUint64_t(data, &temp); ttt = ((ARC_Rect *) *value)->w; //h temp = (ARC_StringSubstr){ temp.index + split + 1, subdata->length - split - 1 }; - ((SDL_Rect *) *value)->h = (int)ARC_String_ToUint64_t(data, &temp); - ttt = ((ARC_Rect *) *value)->h; + ((ARC_Rect *) *value)->h = (int)ARC_String_ToUint64_t(data, &temp); + ttt = ((ARC_Rect *) *value)->h; return 0; } diff --git a/src/std/defaults/config.c b/src/std/defaults/config.c index 3842690..e188313 100644 --- a/src/std/defaults/config.c +++ b/src/std/defaults/config.c @@ -2,6 +2,7 @@ #include "arc/std/defaults/config.h" +#include "arc/std/array.h" #include "arc/std/config.h" #include "arc/std/errno.h" #include @@ -9,18 +10,19 @@ #include int32_t ARC_Defaults_ConfigKey_Create(ARC_Config *config){ - ARC_ConfigKey_Add(config, "uint8_t" , ARC_ConfigKey_Read_Uint8_t , ARC_ConfigKey_Delete_Uint8_t ); - ARC_ConfigKey_Add(config, "int8_t" , ARC_ConfigKey_Read_Int8_t , ARC_ConfigKey_Delete_Int8_t ); -// ARC_ConfigKey_Add(config, "char" , ARC_ConfigKey_Read_Char , ARC_ConfigKey_Delete_Char ); - ARC_ConfigKey_Add(config, "uint16_t", ARC_ConfigKey_Read_Uint16_t, ARC_ConfigKey_Delete_Uint16_t); - ARC_ConfigKey_Add(config, "int16_t" , ARC_ConfigKey_Read_Int16_t , ARC_ConfigKey_Delete_Int16_t ); - ARC_ConfigKey_Add(config, "uint32_t", ARC_ConfigKey_Read_Uint32_t, ARC_ConfigKey_Delete_Uint32_t); - ARC_ConfigKey_Add(config, "int32_t" , ARC_ConfigKey_Read_Int32_t , ARC_ConfigKey_Delete_Int32_t ); - ARC_ConfigKey_Add(config, "int" , ARC_ConfigKey_Read_Int , ARC_ConfigKey_Delete_Int ); - ARC_ConfigKey_Add(config, "uint64_t", ARC_ConfigKey_Read_Uint64_t, ARC_ConfigKey_Delete_Uint64_t); - ARC_ConfigKey_Add(config, "int64_t" , ARC_ConfigKey_Read_Int64_t , ARC_ConfigKey_Delete_Int64_t ); - ARC_ConfigKey_Add(config, "long" , ARC_ConfigKey_Read_Long , ARC_ConfigKey_Delete_Long ); - ARC_ConfigKey_Add(config, "string" , ARC_ConfigKey_Read_String , ARC_ConfigKey_Delete_String ); + ARC_ConfigKey_Add(config, "uint8_t" , ARC_ConfigKey_Read_Uint8_t , ARC_ConfigKey_Delete_Uint8_t ); + ARC_ConfigKey_Add(config, "int8_t" , ARC_ConfigKey_Read_Int8_t , ARC_ConfigKey_Delete_Int8_t ); +// ARC_ConfigKey_Add(config, "char" , ARC_ConfigKey_Read_Char , ARC_ConfigKey_Delete_Char ); + ARC_ConfigKey_Add(config, "uint16_t", ARC_ConfigKey_Read_Uint16_t , ARC_ConfigKey_Delete_Uint16_t ); + ARC_ConfigKey_Add(config, "int16_t" , ARC_ConfigKey_Read_Int16_t , ARC_ConfigKey_Delete_Int16_t ); + ARC_ConfigKey_Add(config, "uint32_t", ARC_ConfigKey_Read_Uint32_t , ARC_ConfigKey_Delete_Uint32_t ); + ARC_ConfigKey_Add(config, "int32_t" , ARC_ConfigKey_Read_Int32_t , ARC_ConfigKey_Delete_Int32_t ); + ARC_ConfigKey_Add(config, "int" , ARC_ConfigKey_Read_Int , ARC_ConfigKey_Delete_Int ); + ARC_ConfigKey_Add(config, "uint64_t", ARC_ConfigKey_Read_Uint64_t , ARC_ConfigKey_Delete_Uint64_t ); + ARC_ConfigKey_Add(config, "int64_t" , ARC_ConfigKey_Read_Int64_t , ARC_ConfigKey_Delete_Int64_t ); + ARC_ConfigKey_Add(config, "long" , ARC_ConfigKey_Read_Long , ARC_ConfigKey_Delete_Long ); + ARC_ConfigKey_Add(config, "string" , ARC_ConfigKey_Read_String , ARC_ConfigKey_Delete_String ); + ARC_ConfigKey_Add(config, "string[]", ARC_ConfigKey_Read_StringArray, ARC_ConfigKey_Delete_StringArray); return 0; } @@ -92,7 +94,10 @@ int32_t ARC_ConfigKey_Read_Long(ARC_Config* config, const char *data, ARC_String int32_t ARC_ConfigKey_Read_String(ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value){ ARC_StringSubstr_StripWhitespaceEnds((char *)data, subdata); - if(data[subdata->index] != '"' || data[subdata->index + subdata->length] != '"'){ return ARC_ERRNO_DATA; } + if(data[subdata->index] != '"' || data[subdata->index + subdata->length - 1] != '"'){ + arc_errno = ARC_ERRNO_DATA; + return arc_errno; + } ARC_StringSubstr_StripEnds((char *)data, (char *)"\"", subdata); *value = (char *) malloc(sizeof(char) * (subdata->length + 1)); strncpy((char *)(*value), data + subdata->index, subdata->length); @@ -100,17 +105,87 @@ int32_t ARC_ConfigKey_Read_String(ARC_Config* config, const char *data, ARC_Stri return 0; } -int32_t ARC_ConfigKey_Delete_Uint8_t (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value){ if((uint8_t *)value){ free((uint8_t *)value); } return 0; } -int32_t ARC_ConfigKey_Delete_Int8_t (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value){ if((int8_t *)value){ free((int8_t *)value); } return 0; } -int32_t ARC_ConfigKey_Delete_Char (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value){ if((char *)value){ free((char *)value); } return 0; } -int32_t ARC_ConfigKey_Delete_Uint16_t(ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value){ if((uint16_t *)value){ free((uint16_t *)value); } return 0; } -int32_t ARC_ConfigKey_Delete_Int16_t (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value){ if((int16_t *)value){ free((int16_t *)value); } return 0; } -int32_t ARC_ConfigKey_Delete_Uint32_t(ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value){ if((uint32_t *)value){ free((uint32_t *)value); } return 0; } -int32_t ARC_ConfigKey_Delete_Int32_t (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value){ if((int32_t *)value){ free((int32_t *)value); } return 0; } -int32_t ARC_ConfigKey_Delete_Int (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value){ if((int *)value){ free((int *)value); } return 0; } -int32_t ARC_ConfigKey_Delete_Uint64_t(ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value){ if((uint64_t *)value){ free((uint64_t *)value); } return 0; } -int32_t ARC_ConfigKey_Delete_Int64_t (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value){ if((int64_t *)value){ free((int64_t *)value); } return 0; } -int32_t ARC_ConfigKey_Delete_Long (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value){ if((long *)value){ free((long *)value); } return 0; } -int32_t ARC_ConfigKey_Delete_String (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value){ if((char *)value){ free((char *)value); } return 0; } +int32_t ARC_ConfigKey_Read_StringArray(ARC_Config* config, const char *data, ARC_StringSubstr *subdata, void **value){ + ARC_StringSubstr_StripWhitespaceEnds((char *)data, subdata); + if(data[subdata->index] != '{' || data[subdata->index + subdata->length - 1] != '}'){ return ARC_ERRNO_DATA; } + subdata->index++; + subdata->length -= 2; + + uint32_t arraySize = 1; + for(uint32_t i = subdata->index; i < subdata->index + subdata->length; i++){ + if(data[i] == ','){ + arraySize++; + } + } + + *value = malloc(sizeof(char *)); + ((ARC_Array *) *value)->data = malloc(sizeof(char *) * arraySize); + ((ARC_Array *) *value)->size = malloc(sizeof(uint32_t)); + *((ARC_Array *) *value)->size = arraySize; + + ARC_StringSubstr temp = { subdata->index, 0 }; + arraySize = 0; + for(uint64_t i = subdata->index; i < subdata->index + subdata->length; i++){ + if(data[i] != ','){ + continue; + } + + temp.length = i - temp.index; + + char *tempStr = (char *)ARC_Config_GetReference(config, (char *)data, &temp); + if(!tempStr){ + ARC_ConfigKey_Read_String(config, data, &temp, (void **) &tempStr); + if(arc_errno){ + return arc_errno; + } + } + + ((char **)((ARC_Array *) *value)->data)[arraySize] = tempStr; + + // ARC_ConfigKey_Delete_String(config, data, &temp, (void *)tempStr); + // if(arc_errno){ + // return arc_errno; + // } + + arraySize++; + temp = (ARC_StringSubstr){ i + 1, 0 }; + + if(arraySize == *((ARC_Array *) *value)->size){ + break; + } + } + + temp.length = (subdata->index + subdata->length) - temp.index; + char *tempStr = (char *)ARC_Config_GetReference(config, (char *)data, &temp); + if(!tempStr){ + ARC_ConfigKey_Read_String(config, data, &temp, (void **) &tempStr); + if(arc_errno){ + return arc_errno; + } + } + + ((char **)((ARC_Array *) *value)->data)[arraySize] = tempStr; + + // ARC_ConfigKey_Delete_String(config, data, &temp, (void *)tempStr); + // if(arc_errno){ + // return arc_errno; + // } + + return 0; +} + +int32_t ARC_ConfigKey_Delete_Uint8_t (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value){ if((uint8_t *)value){ free((uint8_t *)value); } return 0; } +int32_t ARC_ConfigKey_Delete_Int8_t (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value){ if((int8_t *)value){ free((int8_t *)value); } return 0; } +int32_t ARC_ConfigKey_Delete_Char (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value){ if((char *)value){ free((char *)value); } return 0; } +int32_t ARC_ConfigKey_Delete_Uint16_t (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value){ if((uint16_t *)value){ free((uint16_t *)value); } return 0; } +int32_t ARC_ConfigKey_Delete_Int16_t (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value){ if((int16_t *)value){ free((int16_t *)value); } return 0; } +int32_t ARC_ConfigKey_Delete_Uint32_t (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value){ if((uint32_t *)value){ free((uint32_t *)value); } return 0; } +int32_t ARC_ConfigKey_Delete_Int32_t (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value){ if((int32_t *)value){ free((int32_t *)value); } return 0; } +int32_t ARC_ConfigKey_Delete_Int (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value){ if((int *)value){ free((int *)value); } return 0; } +int32_t ARC_ConfigKey_Delete_Uint64_t (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value){ if((uint64_t *)value){ free((uint64_t *)value); } return 0; } +int32_t ARC_ConfigKey_Delete_Int64_t (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value){ if((int64_t *)value){ free((int64_t *)value); } return 0; } +int32_t ARC_ConfigKey_Delete_Long (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value){ if((long *)value){ free((long *)value); } return 0; } +int32_t ARC_ConfigKey_Delete_String (ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value){ if((char *)value){ free((char *)value); } return 0; } +int32_t ARC_ConfigKey_Delete_StringArray(ARC_Config* config, const char* data, ARC_StringSubstr *subdata, void *value){ if((ARC_Array *)value){ free((ARC_Array *)value); } return 0; } #endif //ARC_DEFAULT_CONFIG