eina: refactor eina_value_*_init.

Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D7700
This commit is contained in:
Xavi Artigas 2019-01-22 12:52:41 +00:00 committed by Cedric BAIL
parent de608bb203
commit 06604d5d25
2 changed files with 35 additions and 269 deletions

View File

@ -1458,7 +1458,8 @@ PREDEFINED = EINA_MAGIC_DEBUG \
# Use the PREDEFINED tag if you want to use a different macro definition that overrules the definition found in the source code.
EXPAND_AS_DEFINED = EINA_VALUE_CONVERT \
EINA_VALUE_GET
EINA_VALUE_GET \
EINA_VALUE_INIT
# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
# doxygen's preprocessor will remove all references to function-like macros

View File

@ -403,277 +403,42 @@ eina_value_error_new(Eina_Error err)
return v;
}
/// @brief For internal use only.
/// @hideinitializer
#define EINA_VALUE_INIT(Compress_Type, Uppercase_Compress_Type, Type) \
/**
* @brief Initialize #Eina_Value containing the passed parameter
* @param c The value to use
* @return The #Eina_Value
* @since 1.21
*/
static inline Eina_Value
eina_value_uchar_init(unsigned char c)
{
Eina_Value v = EINA_VALUE_EMPTY;
if (eina_value_setup(&v, EINA_VALUE_TYPE_UCHAR))
eina_value_set(&v, c);
return v;
@brief Initialize #Eina_Value containing the passed parameter
@param c The value to use
@return The #Eina_Value
@since 1.21
*/ \
static inline Eina_Value \
eina_value_##Compress_Type##_init(Type c) \
{ \
Eina_Value v = EINA_VALUE_EMPTY; \
\
if (eina_value_setup(&v, EINA_VALUE_TYPE_##Uppercase_Compress_Type)) \
eina_value_set(&v, c); \
return v; \
}
/**
* @brief Initialize #Eina_Value containing the passed parameter
* @param s The value to use
* @return The #Eina_Value
* @since 1.21
*/
static inline Eina_Value
eina_value_ushort_init(unsigned short s)
{
Eina_Value v = EINA_VALUE_EMPTY;
if (eina_value_setup(&v, EINA_VALUE_TYPE_USHORT))
eina_value_set(&v, s);
return v;
}
/**
* @brief Initialize #Eina_Value containing the passed parameter
* @param i The value to use
* @return The #Eina_Value
* @since 1.21
*/
static inline Eina_Value
eina_value_uint_init(unsigned int i)
{
Eina_Value v = EINA_VALUE_EMPTY;
if (eina_value_setup(&v, EINA_VALUE_TYPE_UINT))
eina_value_set(&v, i);
return v;
}
/**
* @brief Create a new #EinaInitializeining the passed parameter
* @param l The value to use
* @return The #Eina_Value
* @since 1.21
*/
static inline Eina_Value
eina_value_ulong_init(unsigned long l)
{
Eina_Value v = EINA_VALUE_EMPTY;
if (eina_value_setup(&v, EINA_VALUE_TYPE_ULONG))
eina_value_set(&v, l);
return v;
}
/**
* @brief Initialize #Eina_Value containing the passed parameter
* @param i The value to use
* @return The #Eina_Value
* @since 1.21
*/
static inline Eina_Value
eina_value_uint64_init(uint64_t i)
{
Eina_Value v = EINA_VALUE_EMPTY;
if (eina_value_setup(&v, EINA_VALUE_TYPE_UINT64))
eina_value_set(&v, i);
return v;
}
/**
* @brief Create a new #EinaInitializeining the passed parameter
* @param c The value to use
* @return The #Eina_Value
* @since 1.21
*/
static inline Eina_Value
eina_value_char_init(char c)
{
Eina_Value v = EINA_VALUE_EMPTY;
if (eina_value_setup(&v, EINA_VALUE_TYPE_CHAR))
eina_value_set(&v, c);
return v;
}
/**
* @brief Initialize #Eina_Value containing the passed parameter
* @param s The value to use
* @return The #Eina_Value
* @since 1.21
*/
static inline Eina_Value
eina_value_short_init(short s)
{
Eina_Value v = EINA_VALUE_EMPTY;
if (eina_value_setup(&v, EINA_VALUE_TYPE_SHORT))
eina_value_set(&v, s);
return v;
}
/**
* @brief Create a new #EinaInitializeining the passed parameter
* @param i The value to use
* @return The #Eina_Value
* @since 1.21
*/
static inline Eina_Value
eina_value_int_init(int i)
{
Eina_Value v = EINA_VALUE_EMPTY;
if (eina_value_setup(&v, EINA_VALUE_TYPE_INT))
eina_value_set(&v, i);
return v;
}
/**
* @brief Initialize #Eina_Value containing the passed parameter
* @param l The value to use
* @return The #Eina_Value
* @since 1.21
*/
static inline Eina_Value
eina_value_long_init(long l)
{
Eina_Value v = EINA_VALUE_EMPTY;
if (eina_value_setup(&v, EINA_VALUE_TYPE_LONG))
eina_value_set(&v, l);
return v;
}
/**
* @brief Create a new #EinaInitializeining the passed parameter
* @param i The value to use
* @return The #Eina_Value
* @since 1.21
*/
static inline Eina_Value
eina_value_int64_init(int64_t i)
{
Eina_Value v = EINA_VALUE_EMPTY;
if (eina_value_setup(&v, EINA_VALUE_TYPE_INT64))
eina_value_set(&v, i);
return v;
}
/**
* @brief Initialize #Eina_Value containing the passed parameter
* @param f The value to use
* @return The #Eina_Value
* @since 1.21
*/
static inline Eina_Value
eina_value_float_init(float f)
{
Eina_Value v = EINA_VALUE_EMPTY;
if (eina_value_setup(&v, EINA_VALUE_TYPE_FLOAT))
eina_value_set(&v, f);
return v;
}
/**
* @brief Create a new #EinaInitializeining the passed parameter
* @param d The value to use
* @return The #Eina_Value
* @since 1.21
*/
static inline Eina_Value
eina_value_double_init(double d)
{
Eina_Value v = EINA_VALUE_EMPTY;
if (eina_value_setup(&v, EINA_VALUE_TYPE_DOUBLE))
eina_value_set(&v, d);
return v;
}
/**
* @brief Initialize #Eina_Value containing the passed parameter
* @param b The value to use
* @return The #Eina_Value
* @since 1.21
*/
static inline Eina_Value
eina_value_bool_init(Eina_Bool b)
{
Eina_Value v = EINA_VALUE_EMPTY;
if (eina_value_setup(&v, EINA_VALUE_TYPE_BOOL))
eina_value_set(&v, b);
return v;
}
/**
* @brief Create a new #EinaInitializeining the passed parameter
* @param str The value to use
* @return The #Eina_Value
* @since 1.21
*/
static inline Eina_Value
eina_value_string_init(const char *str)
{
Eina_Value v = EINA_VALUE_EMPTY;
if (eina_value_setup(&v, EINA_VALUE_TYPE_STRING))
eina_value_set(&v, str);
return v;
}
/**
* @brief Initialize #Eina_Value containing the passed parameter
* @param str The value to use
* @return The #Eina_Value
* @since 1.21
*/
static inline Eina_Value
eina_value_stringshare_init(const char *str)
{
Eina_Value v = EINA_VALUE_EMPTY;
if (eina_value_setup(&v, EINA_VALUE_TYPE_STRINGSHARE))
eina_value_set(&v, str);
return v;
}
/**
* @brief Create a new #EinaInitializeining the passed parameter
* @param t The value to use
* @return The #Eina_Value
* @since 1.21
*/
static inline Eina_Value
eina_value_time_init(time_t t)
{
Eina_Value v = EINA_VALUE_EMPTY;
if (eina_value_setup(&v, EINA_VALUE_TYPE_TIMESTAMP))
eina_value_set(&v, t);
return v;
}
/**
* @brief Initialize #Eina_Value containing the passed parameter
* @param err The error code
* @return The #Eina_Value
* @since 1.21
*/
static inline Eina_Value
eina_value_error_init(Eina_Error err)
{
Eina_Value v = EINA_VALUE_EMPTY;
if (eina_value_setup(&v, EINA_VALUE_TYPE_ERROR))
eina_value_set(&v, err);
return v;
}
EINA_VALUE_INIT(uchar, UCHAR, unsigned char);
EINA_VALUE_INIT(ushort, USHORT, unsigned short);
EINA_VALUE_INIT(uint, UINT, unsigned int);
EINA_VALUE_INIT(ulong, ULONG, unsigned long);
EINA_VALUE_INIT(uint64, UINT64, uint64_t);
EINA_VALUE_INIT(char, CHAR, char);
EINA_VALUE_INIT(short, SHORT, short);
EINA_VALUE_INIT(int, INT, int);
EINA_VALUE_INIT(long, LONG, long);
EINA_VALUE_INIT(int64, INT64, int64_t);
EINA_VALUE_INIT(float, FLOAT, float);
EINA_VALUE_INIT(double, DOUBLE, double);
EINA_VALUE_INIT(bool, BOOL, Eina_Bool);
EINA_VALUE_INIT(string, STRING, const char *);
EINA_VALUE_INIT(stringshare, STRINGSHARE, const char *);
EINA_VALUE_INIT(time, TIMESTAMP, time_t);
EINA_VALUE_INIT(error, ERROR, Eina_Error);
/// @brief For internal use only.
/// @hideinitializer