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.