eina: refactor eina_value_*_new.

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

View File

@ -1459,7 +1459,8 @@ PREDEFINED = EINA_MAGIC_DEBUG \
EXPAND_AS_DEFINED = EINA_VALUE_CONVERT \
EINA_VALUE_GET \
EINA_VALUE_INIT
EINA_VALUE_INIT \
EINA_VALUE_NEW
# 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

@ -131,277 +131,42 @@ eina_value_type_offset(const Eina_Value_Type *type, unsigned int base)
return base + padding;
}
/// @brief For internal use only.
/// @hideinitializer
#define EINA_VALUE_NEW(Compress_Type, Uppercase_Compress_Type, Type) \
/**
* @brief Create a new #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_new(unsigned char c)
{
Eina_Value *v;
v = eina_value_new(EINA_VALUE_TYPE_UCHAR);
if (v) eina_value_set(v, c);
return v;
@brief Create a new #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##_new(Type c) \
{ \
Eina_Value *v; \
\
v = eina_value_new(EINA_VALUE_TYPE_##Uppercase_Compress_Type); \
if (v) eina_value_set(v, c); \
return v; \
}
/**
* @brief Create a new #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_new(unsigned short s)
{
Eina_Value *v;
v = eina_value_new(EINA_VALUE_TYPE_USHORT);
if (v) eina_value_set(v, s);
return v;
}
/**
* @brief Create a new #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_new(unsigned int i)
{
Eina_Value *v;
v = eina_value_new(EINA_VALUE_TYPE_UINT);
if (v) eina_value_set(v, i);
return v;
}
/**
* @brief Create a new #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_ulong_new(unsigned long l)
{
Eina_Value *v;
v = eina_value_new(EINA_VALUE_TYPE_ULONG);
if (v) eina_value_set(v, l);
return v;
}
/**
* @brief Create a new #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_new(uint64_t i)
{
Eina_Value *v;
v = eina_value_new(EINA_VALUE_TYPE_UINT64);
if (v) eina_value_set(v, i);
return v;
}
/**
* @brief Create a new #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_char_new(char c)
{
Eina_Value *v;
v = eina_value_new(EINA_VALUE_TYPE_CHAR);
if (v) eina_value_set(v, c);
return v;
}
/**
* @brief Create a new #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_new(short s)
{
Eina_Value *v;
v = eina_value_new(EINA_VALUE_TYPE_SHORT);
if (v) eina_value_set(v, s);
return v;
}
/**
* @brief Create a new #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_int_new(int i)
{
Eina_Value *v;
v = eina_value_new(EINA_VALUE_TYPE_INT);
if (v) eina_value_set(v, i);
return v;
}
/**
* @brief Create a new #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_new(long l)
{
Eina_Value *v;
v = eina_value_new(EINA_VALUE_TYPE_LONG);
if (v) eina_value_set(v, l);
return v;
}
/**
* @brief Create a new #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_int64_new(int64_t i)
{
Eina_Value *v;
v = eina_value_new(EINA_VALUE_TYPE_INT64);
if (v) eina_value_set(v, i);
return v;
}
/**
* @brief Create a new #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_new(float f)
{
Eina_Value *v;
v = eina_value_new(EINA_VALUE_TYPE_FLOAT);
if (v) eina_value_set(v, f);
return v;
}
/**
* @brief Create a new #Eina_Value containing the passed parameter
* @param d The value to use
* @return The #Eina_Value
* @since 1.21
*/
static inline Eina_Value *
eina_value_double_new(double d)
{
Eina_Value *v;
v = eina_value_new(EINA_VALUE_TYPE_DOUBLE);
if (v) eina_value_set(v, d);
return v;
}
/**
* @brief Create a new #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_new(Eina_Bool b)
{
Eina_Value *v;
v = eina_value_new(EINA_VALUE_TYPE_BOOL);
if (v) eina_value_set(v, b);
return v;
}
/**
* @brief Create a new #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_string_new(const char *str)
{
Eina_Value *v;
v = eina_value_new(EINA_VALUE_TYPE_STRING);
if (v) eina_value_set(v, str);
return v;
}
/**
* @brief Create a new #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_new(const char *str)
{
Eina_Value *v;
v = eina_value_new(EINA_VALUE_TYPE_STRINGSHARE);
if (v) eina_value_set(v, str);
return v;
}
/**
* @brief Create a new #Eina_Value containing the passed parameter
* @param t The value to use
* @return The #Eina_Value
* @since 1.21
*/
static inline Eina_Value *
eina_value_time_new(time_t t)
{
Eina_Value *v;
v = eina_value_new(EINA_VALUE_TYPE_TIMESTAMP);
if (v) eina_value_set(v, t);
return v;
}
/**
* @brief Create a new #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_new(Eina_Error err)
{
Eina_Value *v;
v = eina_value_new(EINA_VALUE_TYPE_ERROR);
if (v) eina_value_set(v, err);
return v;
}
EINA_VALUE_NEW(uchar, UCHAR, unsigned char);
EINA_VALUE_NEW(ushort, USHORT, unsigned short);
EINA_VALUE_NEW(uint, UINT, unsigned int);
EINA_VALUE_NEW(ulong, ULONG, unsigned long);
EINA_VALUE_NEW(uint64, UINT64, uint64_t);
EINA_VALUE_NEW(char, CHAR, char);
EINA_VALUE_NEW(short, SHORT, short);
EINA_VALUE_NEW(int, INT, int);
EINA_VALUE_NEW(long, LONG, long);
EINA_VALUE_NEW(int64, INT64, int64_t);
EINA_VALUE_NEW(float, FLOAT, float);
EINA_VALUE_NEW(double, DOUBLE, double);
EINA_VALUE_NEW(bool, BOOL, Eina_Bool);
EINA_VALUE_NEW(string, STRING, const char *);
EINA_VALUE_NEW(stringshare, STRINGSHARE, const char *);
EINA_VALUE_NEW(time, TIMESTAMP, time_t);
EINA_VALUE_NEW(error, ERROR, Eina_Error);
/// @brief For internal use only.
/// @hideinitializer