most config fixed, still need to do a bunch more testing

This commit is contained in:
herbglitch 2023-01-20 22:38:29 -07:00
parent 2b2e40921d
commit 5e6ee54473
7 changed files with 730 additions and 424 deletions

View file

@ -41,7 +41,7 @@ typedef uint8_t (* ARC_ConfigKeyRead)(ARC_Config* config, ARC_String *string, vo
* @note this function can be NULL if memory does not need to be cleaned for this type
* if there is an error, set arc_errno
*/
typedef void (* ARC_ConfigKeyDelete)(ARC_Config* config, void *value);
typedef void (* ARC_ConfigKeyDelete)(ARC_Config* config, ARC_String *string, void *value);
/**
* @brief adds a usable key to ARC_Config

View file

@ -15,31 +15,35 @@ void ARC_Defaults_ConfigKey_Create(ARC_Config *config);
uint8_t ARC_ConfigKey_Read_Uint8_t (ARC_Config *config, ARC_String *string, void **value);
uint8_t ARC_ConfigKey_Read_Int8_t (ARC_Config *config, ARC_String *string, void **value);
uint8_t ARC_ConfigKey_Read_Char (ARC_Config *config, ARC_String *string, void **value);
uint8_t ARC_ConfigKey_Read_Uint16_t (ARC_Config *config, ARC_String *string, void **value);
uint8_t ARC_ConfigKey_Read_Int16_t (ARC_Config *config, ARC_String *string, void **value);
uint8_t ARC_ConfigKey_Read_Uint32_t (ARC_Config *config, ARC_String *string, void **value);
uint8_t ARC_ConfigKey_Read_Int32_t (ARC_Config *config, ARC_String *string, void **value);
uint8_t ARC_ConfigKey_Read_Int (ARC_Config *config, ARC_String *string, void **value);
uint8_t ARC_ConfigKey_Read_Uint64_t (ARC_Config *config, ARC_String *string, void **value);
uint8_t ARC_ConfigKey_Read_Int64_t (ARC_Config *config, ARC_String *string, void **value);
uint8_t ARC_ConfigKey_Read_Char (ARC_Config *config, ARC_String *string, void **value);
uint8_t ARC_ConfigKey_Read_Int (ARC_Config *config, ARC_String *string, void **value);
uint8_t ARC_ConfigKey_Read_Long (ARC_Config *config, ARC_String *string, void **value);
uint8_t ARC_ConfigKey_Read_Float (ARC_Config *config, ARC_String *string, void **value);
uint8_t ARC_ConfigKey_Read_Double (ARC_Config *config, ARC_String *string, void **value);
uint8_t ARC_ConfigKey_Read_String (ARC_Config *config, ARC_String *string, void **value);
uint8_t ARC_ConfigKey_Read_StringArray(ARC_Config *config, ARC_String *string, void **value);
// uint8_t ARC_ConfigKey_Read_StringArray(ARC_Config *config, ARC_String *string, void **value);
void ARC_ConfigKey_Delete_Uint8_t (ARC_Config *config, void *value);
void ARC_ConfigKey_Delete_Int8_t (ARC_Config *config, void *value);
void ARC_ConfigKey_Delete_Char (ARC_Config *config, void *value);
void ARC_ConfigKey_Delete_Uint16_t (ARC_Config *config, void *value);
void ARC_ConfigKey_Delete_Int16_t (ARC_Config *config, void *value);
void ARC_ConfigKey_Delete_Uint32_t (ARC_Config *config, void *value);
void ARC_ConfigKey_Delete_Int32_t (ARC_Config *config, void *value);
void ARC_ConfigKey_Delete_Int (ARC_Config *config, void *value);
void ARC_ConfigKey_Delete_Uint64_t (ARC_Config *config, void *value);
void ARC_ConfigKey_Delete_Int64_t (ARC_Config *config, void *value);
void ARC_ConfigKey_Delete_Long (ARC_Config *config, void *value);
void ARC_ConfigKey_Delete_String (ARC_Config *config, void *value);
void ARC_ConfigKey_Delete_StringArray(ARC_Config *config, void *value);
void ARC_ConfigKey_Delete_Uint8_t (ARC_Config *config, ARC_String *string, void *value);
void ARC_ConfigKey_Delete_Int8_t (ARC_Config *config, ARC_String *string, void *value);
void ARC_ConfigKey_Delete_Uint16_t (ARC_Config *config, ARC_String *string, void *value);
void ARC_ConfigKey_Delete_Int16_t (ARC_Config *config, ARC_String *string, void *value);
void ARC_ConfigKey_Delete_Uint32_t (ARC_Config *config, ARC_String *string, void *value);
void ARC_ConfigKey_Delete_Int32_t (ARC_Config *config, ARC_String *string, void *value);
void ARC_ConfigKey_Delete_Uint64_t (ARC_Config *config, ARC_String *string, void *value);
void ARC_ConfigKey_Delete_Int64_t (ARC_Config *config, ARC_String *string, void *value);
void ARC_ConfigKey_Delete_Char (ARC_Config *config, ARC_String *string, void *value);
void ARC_ConfigKey_Delete_Int (ARC_Config *config, ARC_String *string, void *value);
void ARC_ConfigKey_Delete_Long (ARC_Config *config, ARC_String *string, void *value);
void ARC_ConfigKey_Delete_Float (ARC_Config *config, ARC_String *string, void *value);
void ARC_ConfigKey_Delete_Double (ARC_Config *config, ARC_String *string, void *value);
void ARC_ConfigKey_Delete_String (ARC_Config *config, ARC_String *string, void *value);
// void ARC_ConfigKey_Delete_StringArray(ARC_Config *config, ARC_String *string, void *value);
#ifdef __cplusplus
}

View file

@ -24,6 +24,14 @@ typedef struct ARC_String {
*/
void ARC_String_Create(ARC_String **string, char *data, uint64_t length);
/**
* @brief creates ARC_String type with strinlen
*
* @param string ARC_String to create
* @param data cstring that will be stored in ARC_String
*/
void ARC_String_CreateWithStrlen(ARC_String **string, char *data);
/**
* @brief destroys ARC_String type
*
@ -89,12 +97,30 @@ uint8_t ARC_String_Alpha(ARC_String *string);
/**
* @brief converst substring from string to uint64_t
*
* @param string string to convert to long
* @param string string to convert to uint64_t
*
* @return uint64_t converted number
*/
uint64_t ARC_String_ToUint64_t(ARC_String *string);
/**
* @brief converst substring from string to int64_t
*
* @param string string to convert to int64_t
*
* @return int64_t converted number
*/
int64_t ARC_String_ToInt64_t(ARC_String *string);
/**
* @brief converst substring from string to double
*
* @param string string to convert to double
*
* @return double converted number
*/
double ARC_String_ToDouble(ARC_String *string);
/**
* @brief takes a given string, and assigns index and length for position of first matching substring
*