static Eina_Bool
_a_changed_cb(void *data, Eobj *obj, const Eobj_Event_Description *desc, void *event_info)
{
- /* FIXME: Actually print it. */
(void) desc;
(void) obj;
int new_a = *((int *) event_info);
- printf("%s event_info:'%d' data:'%s'\n", __func__, new_a, (const char *) data);
+ printf("%s event_info:'%d' data:'%d'\n", __func__, new_a, (int) data);
cb_count++;
- /* Fix data is NULL, stop. */
- return !!data;
+ /* Stop as we reached the 3rd one. */
+ return (cb_count != 3);
}
int
Eobj *obj = eobj_add(SIMPLE_CLASS, NULL);
/* The order of these two is undetermined. */
- eobj_event_callback_priority_add(obj, SIG_A_CHANGED, EOBJ_CALLBACK_PRIORITY_BEFORE, _a_changed_cb, "CALLED");
- eobj_event_callback_priority_add(obj, SIG_A_CHANGED, EOBJ_CALLBACK_PRIORITY_BEFORE, _a_changed_cb, "CALLED2");
+ eobj_event_callback_priority_add(obj, SIG_A_CHANGED, EOBJ_CALLBACK_PRIORITY_BEFORE, _a_changed_cb, (void *) 2);
+ eobj_event_callback_priority_add(obj, SIG_A_CHANGED, EOBJ_CALLBACK_PRIORITY_BEFORE, _a_changed_cb, (void *) 1);
/* This will be called afterwards. */
- eobj_event_callback_priority_add(obj, SIG_A_CHANGED, EOBJ_CALLBACK_PRIORITY_DEFAULT, _a_changed_cb, NULL);
+ eobj_event_callback_priority_add(obj, SIG_A_CHANGED, EOBJ_CALLBACK_PRIORITY_DEFAULT, _a_changed_cb, (void *) 3);
/* This will never be called because the previous callback returns NULL. */
- eobj_event_callback_priority_add(obj, SIG_A_CHANGED, EOBJ_CALLBACK_PRIORITY_AFTER, _a_changed_cb, "NOT CALLED");
+ eobj_event_callback_priority_add(obj, SIG_A_CHANGED, EOBJ_CALLBACK_PRIORITY_AFTER, _a_changed_cb, (void *) 4);
eobj_do(obj, SIMPLE_A_SET(1));