* @defgroup Eina_Model_Group Data Model API.
*
* Abstracts data access to hierarchical data in an efficient way,
- * extensible to different backign store such as database or remote
+ * extensible to different backing stores such as database or remote
* access.
*
* It is heavily based on #Eina_Value, as properties are exchanged
* @return child instance with reference @b increased, or @c NULL on error.
*
* The given @a position must be valid, otherwise it may fail and
- * return @c NULL, one can check for a valid position with
+ * return @c NULL, one should check for a valid position with
* eina_model_child_count().
*
* The returned model has its reference increased, you must release it
* @return #EINA_TRUE on success, #EINA_FALSE on failure.
*
* The given @a position must be valid, otherwise it may fail and
- * return #EINA_FALSE, one can check for a valid position with
+ * return #EINA_FALSE, one should check for a valid position with
* eina_model_child_count().
*
* The existing child is replaced. Its reference will be decreased
*
* Private are created @b automatically and should be setup with @c
* setup and flushed with @c flush. All types (or interfaces)
- * functions that exist are called! Don't call parent's @c setup or @c
- * flush! The setup is done from parent to child. Flush is done from
+ * functions that exist are called! Don't call your parent's @c setup or
+ * @c flush! The setup is done from parent to child. Flush is done from
* child to parent.
*
* After memory setup was done, @c constructor of the toplevel type
* called, do them in the desired order from the type destructor.
*
* @note a runtime check will enforce just types with ABI version
- * #EINA_MODEL_TYPE_VERSION are used by comparing with @c version
+ * #EINA_MODEL_TYPE_VERSION are used by comparing with the @c version
* member.
*
* @since 1.2
unsigned int version; /**< must be #EINA_MODEL_TYPE_VERSION */
unsigned int private_size; /**< used to allocate type private data */
const char *name; /**< name for debug and introspection */
- const Eina_Model_Type *parent; /**< parent type */
+ const Eina_Model_Type *parent; /**< parent type, must be EINA_MODEL_TYPE_BASE or a child of */
const Eina_Model_Interface **interfaces; /**< null terminated array of interfaces */
const Eina_Model_Event_Description *events; /**< null terminated array of events */
Eina_Bool (*setup)(Eina_Model *model); /**< setup type private data, do @b not call parent type setup! */
/**
* @var EINA_MODEL_TYPE_BASE
- * Base type for all types.
+ * Base type for all eina model types.
*
* @since 1.2
*/
* #EINA_MODEL_INTERFACE_NAME_CHILDREN to manage the model.
*
* This is an abstract type, it does not work out of the box as one
- * need to subclass it and define the interface implementations for
+ * needs to subclass it and define the interface implementations for
* properties and children, as done by #EINA_MODEL_TYPE_GENERIC
*
* @see EINA_MODEL_TYPE_GENERIC
* (#EINA_MODEL_INTERFACE_NAME_CHILDREN) using #Eina_Inarray. It
* should be efficient in space and time for most operations.
*
- * @note it may become slow if eina_model_child_insert_at() is used at
+ * @note it may become slow if eina_model_child_insert_at() is used at(or near)
* the beginning of the array as the members from that position
* to the end must be memmove()d.
*