Object
These functions manage object providing pointer checking and memory repacking. More...Typedefs | |
typedef struct _Eina_Class | Eina_Class |
typedef struct _Eina_Object | Eina_Object |
typedef void(* | Eina_Class_Callback )(Eina_Class *c, void *object, void *data) |
Functions | |
Eina_Class * | eina_class_new (const char *name, unsigned int class_size, unsigned int pool_size, Eina_Class_Callback constructor, Eina_Class_Callback destructor, Eina_Class *parent, void *data) |
const char * | eina_class_name_get (Eina_Class *c) |
unsigned int | eina_class_size_get (Eina_Class *c) |
unsigned int | eina_class_object_size_get (Eina_Class *c) |
void | eina_class_del (Eina_Class *c) |
void | eina_class_repack (Eina_Class *c) |
Eina_Object * | eina_object_add (Eina_Class *c) |
void * | eina_object_pointer_get (Eina_Class *c, Eina_Object *object) |
void | eina_object_del (Eina_Class *c, Eina_Object *object) |
Eina_Bool | eina_object_parent_set (Eina_Class *parent_class, Eina_Object *parent, Eina_Class *object_class, Eina_Object *object) |
Eina_Object * | eina_object_parent_get (Eina_Class *c, Eina_Object *object) |
Detailed Description
These functions manage object providing pointer checking and memory repacking.Each Eina_Object is in fact only an ID and a generation count. This make it possible to check if the ID is allocated by checking that it is inside the boudary limit of the allocated range. The generation count, give the possibility to check that we use a valid alive pointer as generation is increased each time an object is allocated/destroyed. And finally it provide type checking against Eina_Class.
It is also to define link between object, then when father get deleted all child will get deleted and their respective destructor will be called.