parent
5c0041f6ad
commit
4915aeb8db
|
@ -1444,8 +1444,30 @@ EAPI extern const Eina_Model_Type *EINA_MODEL_TYPE_GENERIC;
|
||||||
*/
|
*/
|
||||||
EAPI extern const Eina_Model_Type *EINA_MODEL_TYPE_STRUCT;
|
EAPI extern const Eina_Model_Type *EINA_MODEL_TYPE_STRUCT;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Create and setup an instance of #EINA_MODEL_TYPE_STRUCT.
|
||||||
|
* @param desc struct description to use for properties.
|
||||||
|
* @return newly created and set model, or @c NULL on errors.
|
||||||
|
*
|
||||||
|
* @see eina_model_type_struct_new()
|
||||||
|
* @since 1.2
|
||||||
|
*/
|
||||||
EAPI Eina_Model *eina_model_struct_new(const Eina_Value_Struct_Desc *desc) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT EINA_MALLOC;
|
EAPI Eina_Model *eina_model_struct_new(const Eina_Value_Struct_Desc *desc) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT EINA_MALLOC;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Create and setup an instance of type subclass of #EINA_MODEL_TYPE_STRUCT.
|
||||||
|
* @param type a type which is subclass of #EINA_MODEL_TYPE_STRUCT.
|
||||||
|
* @param desc struct description to use for properties.
|
||||||
|
* @return newly created and set model, or @c NULL on errors.
|
||||||
|
*
|
||||||
|
* @see eina_model_struct_new()
|
||||||
|
* @since 1.2
|
||||||
|
*/
|
||||||
|
EAPI Eina_Model *eina_model_type_struct_new(const Eina_Model_Type *type,
|
||||||
|
const Eina_Value_Struct_Desc *desc) EINA_ARG_NONNULL(1, 2) EINA_WARN_UNUSED_RESULT EINA_MALLOC;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var EINA_MODEL_INTERFACE_NAME_PROPERTIES
|
* @var EINA_MODEL_INTERFACE_NAME_PROPERTIES
|
||||||
|
|
|
@ -5302,6 +5302,28 @@ eina_model_struct_new(const Eina_Value_Struct_Desc *desc)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EAPI Eina_Model *
|
||||||
|
eina_model_type_struct_new(const Eina_Model_Type *type, const Eina_Value_Struct_Desc *desc)
|
||||||
|
{
|
||||||
|
Eina_Model *m;
|
||||||
|
|
||||||
|
EINA_SAFETY_ON_FALSE_RETURN_VAL
|
||||||
|
(eina_model_type_subclass_check(type, EINA_MODEL_TYPE_STRUCT), NULL);
|
||||||
|
EINA_SAFETY_ON_NULL_RETURN_VAL(desc, NULL);
|
||||||
|
EINA_SAFETY_ON_FALSE_RETURN_VAL
|
||||||
|
(desc->version == EINA_VALUE_STRUCT_DESC_VERSION, NULL);
|
||||||
|
|
||||||
|
m = eina_model_new(type);
|
||||||
|
EINA_SAFETY_ON_NULL_RETURN_VAL(m, NULL);
|
||||||
|
|
||||||
|
EINA_SAFETY_ON_FALSE_GOTO(_eina_model_struct_set(m, desc, NULL), error);
|
||||||
|
return m;
|
||||||
|
|
||||||
|
error:
|
||||||
|
eina_model_del(m);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
EAPI Eina_Bool
|
EAPI Eina_Bool
|
||||||
eina_model_struct_set(Eina_Model *model, const Eina_Value_Struct_Desc *desc, void *memory)
|
eina_model_struct_set(Eina_Model *model, const Eina_Value_Struct_Desc *desc, void *memory)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue