Generic object system. More...
Modules | |
Eo's Debug information helper. | |
Eo's Event Handling | |
Eo Class | |
Eo's Class class. | |
Eo's Base class. | |
Data Structures | |
struct | _Eo_Op_Call_Data |
struct | _Eo_Call_Cache_Index |
struct | _Eo_Call_Cache_Entry |
struct | _Eo_Call_Cache_Off |
struct | _Eo_Call_Cache |
struct | _Eo_Event_Description |
This struct holds the description of a specific event. More... | |
struct | _Eo_Callback_Array_Item |
An item in an array of callback desc/func. More... | |
struct | _Eo_Dbg_Info |
The structure for the debug info used by Eo. More... | |
Macros | |
#define | EO_CLASS EO_BASE_CLASS |
#define | EO_NOOP ((Eo_Op) 0) |
A special Eo_Op meaning "No operation". | |
#define | EO_CLASS_DESCRIPTION_NOOPS() { NULL, 0} |
#define | EO_CLASS_DESCRIPTION_OPS(op_descs) { op_descs, EINA_C_ARRAY_LENGTH(op_descs) } |
#define | EO_CALL_CACHE_SIZE 1 |
#define | EO_FUNC_CALL(...) __VA_ARGS__ |
#define | EO_FUNC_COMMON_OP_FUNC(Name) ((const void *) Name) |
#define | EO_FUNC_COMMON_OP(Name, DefRet) |
#define | EO_FUNC_BODY(Name, Ret, DefRet) |
#define | EO_VOID_FUNC_BODY(Name) |
#define | EO_FUNC_BODYV(Name, Ret, DefRet, Arguments, ...) |
#define | EO_VOID_FUNC_BODYV(Name, Arguments, ...) |
#define | _EO_OP_API_ENTRY(a) (void*)a |
#define | EO_OP_FUNC(_api, _private) { _EO_OP_API_ENTRY(_api), (void*)_private, EO_OP_TYPE_REGULAR } |
#define | EO_OP_CLASS_FUNC(_api, _private) { _EO_OP_API_ENTRY(_api), (void*)_private, EO_OP_TYPE_CLASS } |
#define | EO_OP_FUNC_OVERRIDE(_api, _private) { _EO_OP_API_ENTRY(_api), (void*)_private, EO_OP_TYPE_REGULAR_OVERRIDE } |
#define | EO_OP_CLASS_FUNC_OVERRIDE(_api, _private) { _EO_OP_API_ENTRY(_api), (void*)_private, EO_OP_TYPE_CLASS_OVERRIDE } |
#define | _eo_do_common(eoid, clsid, is_super, ...) |
#define | _eo_do_common_ret(eoid, clsid, is_super, ret_tmp, func) |
#define | eo_do(eoid, ...) _eo_do_common(eoid, NULL, EINA_FALSE, __VA_ARGS__) |
#define | eo_do_super(eoid, clsid, func) _eo_do_common(eoid, clsid, EINA_TRUE, func) |
#define | eo_do_ret(eoid, ret_tmp, func) _eo_do_common_ret(eoid, NULL, EINA_FALSE, ret_tmp, func) |
#define | eo_do_super_ret(eoid, clsid, ret_tmp, func) _eo_do_common_ret(eoid, clsid, EINA_TRUE, ret_tmp, func) |
#define | eo_do_part(eoid, part_func, ...) |
#define | _eo_add_common(klass, parent, is_ref, ...) |
#define | eo_add(klass, parent, ...) _eo_add_common(klass, parent, EINA_FALSE, ##__VA_ARGS__) |
Create a new object and call its constructor(If it exits). More... | |
#define | eo_add_ref(klass, parent, ...) _eo_add_common(klass, parent, EINA_TRUE, ##__VA_ARGS__) |
Create a new object and call its constructor(If it exists). More... | |
#define | eo_data_xref(obj, klass, ref_obj) eo_data_xref_internal(__FILE__, __LINE__, obj, klass, ref_obj) |
Use this macro if you want to associate a referencer object. More... | |
#define | eo_data_ref(obj, klass) eo_data_xref_internal(__FILE__, __LINE__, obj, klass, (const Eo *)obj) |
Use this macro if you don't want to associate a referencer object. More... | |
#define | eo_data_xunref(obj, data, ref_obj) eo_data_xunref_internal(obj, data, ref_obj) |
Use this function if you used eo_data_xref to reference the data. More... | |
#define | eo_data_unref(obj, data) eo_data_xunref_internal(obj, data, obj) |
Use this function if you used eo_data_ref to reference the data. More... | |
#define | eo_xref(obj, ref_obj) eo_xref_internal(__FILE__, __LINE__, obj, ref_obj) |
Convenience macro around eo_xref_internal() More... | |
Typedefs | |
typedef struct _Eo_Opaque | Eo |
The basic Object type. | |
typedef Eo | Eo_Class |
The basic class type - should be removed, just for compat. More... | |
typedef enum _Eo_Op_Type | Eo_Op_Type |
typedef struct _Eo_Event_Description | Eo_Event_Description2 |
XXX: Hack until fixed in Eolian. | |
typedef Eina_Bool(* | Eo_Event_Cb) (void *data, Eo *obj, const Eo_Event_Description2 *desc, void *event_info) |
An event callback prototype. More... | |
typedef unsigned int | Eo_Op |
The Eo operation type id. | |
typedef struct _Eo_Op_Call_Data | Eo_Op_Call_Data |
typedef struct _Eo_Call_Cache_Index | Eo_Call_Cache_Index |
typedef struct _Eo_Call_Cache_Entry | Eo_Call_Cache_Entry |
typedef struct _Eo_Call_Cache_Off | Eo_Call_Cache_Off |
typedef struct _Eo_Call_Cache | Eo_Call_Cache |
typedef struct _Eo_Event_Description | Eo_Event_Description |
This struct holds the description of a specific event. | |
typedef struct _Eo_Callback_Array_Item | Eo_Callback_Array_Item |
An item in an array of callback desc/func. More... | |
typedef struct _Eo_Dbg_Info | Eo_Dbg_Info |
The structure for the debug info used by Eo. | |
typedef short | Eo_Callback_Priority |
Callback priority value. More... | |
Enumerations | |
enum | _Eo_Op_Type { EO_OP_TYPE_INVALID = -1, EO_OP_TYPE_REGULAR = 0, EO_OP_TYPE_CLASS, EO_OP_TYPE_REGULAR_OVERRIDE, EO_OP_TYPE_CLASS_OVERRIDE } |
Functions | |
EAPI Eina_Bool | eo_init (void) |
Init the eo subsystem. More... | |
EAPI Eina_Bool | eo_shutdown (void) |
Shutdown the eo subsystem. More... | |
EAPI Eo_Op | _eo_api_op_id_get (const void *api_func) |
EAPI Eina_Bool | _eo_call_resolve (const char *func_name, Eo_Op_Call_Data *call, Eo_Call_Cache *callcache, const char *file, int line) |
EAPI Eina_Bool | _eo_do_start (const Eo *obj, const Eo_Class *cur_klass, Eina_Bool is_super, void *eo_stack) |
EAPI void | _eo_do_end (void *eo_stack) |
EAPI Eo * | _eo_add_end (void *eo_stack) |
EAPI void * | _eo_stack_get (void) |
EAPI const Eo_Class * | eo_class_get (const Eo *obj) |
Gets the class of the object. More... | |
EAPI Eo * | _eo_add_internal_start (const char *file, int line, const Eo_Class *klass_id, Eo *parent, Eina_Bool ref) |
EAPI void * | eo_data_get (const Eo *obj, const Eo_Class *klass) EINA_DEPRECATED |
Get a pointer to the data of an object for a specific class. More... | |
EAPI void * | eo_data_scope_get (const Eo *obj, const Eo_Class *klass) |
Get a pointer to the data of an object for a specific class. More... | |
EAPI void * | eo_data_xref_internal (const char *file, int line, const Eo *obj, const Eo_Class *klass, const Eo *ref_obj) |
Get a pointer to the data of an object for a specific class and increment the data reference count. More... | |
EAPI void | eo_data_xunref_internal (const Eo *obj, void *data, const Eo *ref_obj) |
Decrement the object data reference count by 1. More... | |
EAPI Eo * | eo_ref (const Eo *obj) |
Increment the object's reference count by 1. More... | |
EAPI void | eo_unref (const Eo *obj) |
Decrement the object's reference count by 1 and free it if needed. More... | |
EAPI int | eo_ref_get (const Eo *obj) |
Return the ref count of the object passed. More... | |
EAPI void | eo_del (const Eo *obj) |
Unrefs the object and reparents it to NULL. More... | |
EAPI Eo * | eo_xref_internal (const char *file, int line, Eo *obj, const Eo *ref_obj) |
Increment the object's reference count by 1 (and associate the ref with ref_obj) More... | |
EAPI void | eo_xunref (Eo *obj, const Eo *ref_obj) |
Decrement the object's reference count by 1 and free it if needed. More... | |
EAPI void | eo_manual_free_set (Eo *obj, Eina_Bool manual_free) |
Enable or disable the manual free feature. More... | |
EAPI Eina_Bool | eo_manual_free (Eo *obj) |
Frees the object. More... | |
EAPI Eina_Bool | eo_destructed_is (const Eo *obj) |
Checks if the object was already descructed (only relevant for manual_free objects). More... | |
Variables | |
EAPI Eina_Spinlock | _eo_class_creation_lock |
This variable is used for locking purposes in the class_get function defined in EO_DEFINE_CLASS. More... | |
EAPI Eina_Spinlock | _eo_class_creation_lock |
This variable is used for locking purposes in the class_get function defined in EO_DEFINE_CLASS. More... | |
Generic object system.
#define EO_FUNC_COMMON_OP | ( | Name, | |
DefRet | |||
) |
#define EO_FUNC_BODY | ( | Name, | |
Ret, | |||
DefRet | |||
) |
#define EO_VOID_FUNC_BODY | ( | Name | ) |
#define EO_FUNC_BODYV | ( | Name, | |
Ret, | |||
DefRet, | |||
Arguments, | |||
... | |||
) |
#define EO_VOID_FUNC_BODYV | ( | Name, | |
Arguments, | |||
... | |||
) |
#define _eo_do_common | ( | eoid, | |
clsid, | |||
is_super, | |||
... | |||
) |
#define _eo_do_common_ret | ( | eoid, | |
clsid, | |||
is_super, | |||
ret_tmp, | |||
func | |||
) |
#define eo_do_part | ( | eoid, | |
part_func, | |||
... | |||
) |
#define _eo_add_common | ( | klass, | |
parent, | |||
is_ref, | |||
... | |||
) |
#define eo_add | ( | klass, | |
parent, | |||
... | |||
) | _eo_add_common(klass, parent, EINA_FALSE, ##__VA_ARGS__) |
Create a new object and call its constructor(If it exits).
The object returned by this function will always have 1 ref (reference count) irrespective of whether the parent is NULL or not. If the object is created using this function, then it would automatically gets deleted when the parent object is deleted. There is no need to call eo_unref on the child. This is convenient in C.
If you want a more "consistent" behaviour, take a look at eo_add_ref.
klass | the class of the object to create. |
parent | the parent to set to the object. |
... | The ops to run. |
Referenced by ecore_animator_add(), ecore_animator_timeline_add(), ecore_con_client_fd_get(), ecore_con_eet_client_new(), ecore_con_eet_server_new(), ecore_con_server_add(), ecore_con_server_connect(), ecore_con_shutdown(), ecore_con_url_new(), ecore_exe_pipe_run(), ecore_idle_enterer_add(), ecore_idle_enterer_before_add(), ecore_idle_exiter_add(), ecore_idler_add(), ecore_init(), ecore_job_add(), ecore_main_fd_handler_active_set(), ecore_poller_add(), ecore_timer_add(), ecore_timer_dump(), edje_audio_channel_mute_get(), edje_edit_object_add(), emotion_object_add(), evas_new(), evas_object_box_add(), evas_object_grid_add(), evas_object_image_add(), evas_object_polygon_add(), evas_object_rectangle_add(), evas_object_smart_add(), evas_object_table_add(), evas_object_text_add(), evas_object_textblock_add(), and evas_object_textgrid_add().
#define eo_add_ref | ( | klass, | |
parent, | |||
... | |||
) | _eo_add_common(klass, parent, EINA_TRUE, ##__VA_ARGS__) |
Create a new object and call its constructor(If it exists).
The object returned by this function has 1 ref for itself, 1 ref from the parent (if exists) and possible other refs if were added during construction. If a child object is created using this, then it won't get deleted when the parent object is deleted until you manually remove the ref by calling eo_unref().
klass | the class of the object to create. |
parent | the parent to set to the object. |
... | The ops to run. |
Referenced by eo::abstract_class::abstract_class(), ecore::animator::animator(), efl::gfx::gradient::base::base(), efl::gfx::base::base(), efl::vg::base::base(), efl::model::base::base(), eo::base::base(), evas::box::box(), evas::canvas3d::camera::camera(), evas::canvas::canvas(), evas::clickable_interface::clickable_interface(), evas::common_interface::common_interface(), efl::vg::container::container(), efl::control::control(), evas::draggable_interface::draggable_interface(), edje::edit::edit(), ecore::idle::enterer::enterer(), ecore::exe::exe(), ecore::idle::exiter::exiter(), efl::file::file(), efl::gfx::fill::fill(), efl::gfx::filter::filter(), evas::filter::filter(), efl::vg::gradient::gradient(), efl::vg::gradient_linear::gradient_linear(), efl::vg::gradient_radial::gradient_radial(), evas::grid::grid(), ecore::idler::idler(), efl::image::image(), evas::image::image(), efl::eo::inherit< D, E >::inherit(), ecore::job::job(), evas::canvas3d::light::light(), evas::line::line(), efl::gfx::gradient::linear::linear(), evas::canvas3d::material::material(), evas::canvas3d::mesh::mesh(), eio::model::model(), eldbus::model_arguments::model_arguments(), eldbus::model_connection::model_connection(), eldbus::model_method::model_method(), eldbus::model_object::model_object(), eldbus::model_proxy::model_proxy(), eldbus::model_signal::model_signal(), evas::canvas3d::node::node(), evas::canvas3d::object::object(), edje::object::object(), evas::object::object(), evas::object_smart::object_smart(), evas::out::out(), ecore::parent::parent(), efl::player::player(), ecore::poller::poller(), evas::polygon::polygon(), evas::canvas3d::primitive::primitive(), efl::gfx::gradient::radial::radial(), evas::rectangle::rectangle(), efl::vg::root_node::root_node(), evas::canvas3d::scene::scene(), evas::scrollable_interface::scrollable_interface(), evas::selectable_interface::selectable_interface(), efl::vg::shape::shape(), efl::gfx::shape::shape(), evas::signal_interface::signal_interface(), evas::smart_clipped::smart_clipped(), efl::gfx::stack::stack(), evas::table::table(), efl::text::text(), evas::text::text(), efl::text_properties::text_properties(), evas::textblock::textblock(), evas::textgrid::textgrid(), evas::canvas3d::texture::texture(), ecore::timer::timer(), evas::vg::vg(), efl::gfx::view::view(), and evas::zoomable_interface::zoomable_interface().
#define eo_data_xref | ( | obj, | |
klass, | |||
ref_obj | |||
) | eo_data_xref_internal(__FILE__, __LINE__, obj, klass, ref_obj) |
Use this macro if you want to associate a referencer object.
Convenience macro around eo_data_xref_internal()
#define eo_data_ref | ( | obj, | |
klass | |||
) | eo_data_xref_internal(__FILE__, __LINE__, obj, klass, (const Eo *)obj) |
Use this macro if you don't want to associate a referencer object.
Convenience macro around eo_data_xref_internal()
Referenced by ecore_timer_dump(), edje_edit_object_add(), evas_gl_new(), evas_object_image_alpha_mask_set(), evas_object_polygon_add(), evas_object_rectangle_add(), evas_object_smart_callback_call(), evas_object_smart_member_add(), evas_object_textblock_add(), and evas_string_char_len_get().
#define eo_data_xunref | ( | obj, | |
data, | |||
ref_obj | |||
) | eo_data_xunref_internal(obj, data, ref_obj) |
Use this function if you used eo_data_xref to reference the data.
Convenience macro around eo_data_xunref_internal()
#define eo_data_unref | ( | obj, | |
data | |||
) | eo_data_xunref_internal(obj, data, obj) |
Use this function if you used eo_data_ref to reference the data.
Convenience macro around eo_data_unref_internal()
Referenced by ecore_timer_dump(), edje_edit_object_add(), evas_gl_free(), evas_gl_new(), and evas_object_smart_member_del().
#define eo_xref | ( | obj, | |
ref_obj | |||
) | eo_xref_internal(__FILE__, __LINE__, obj, ref_obj) |
Convenience macro around eo_xref_internal()
The basic class type - should be removed, just for compat.
Eo_Event_Cb |
An event callback prototype.
data | The user data registered with the callback. |
obj | The object which initiated the event. |
desc | The event's description. |
event_info | additional data passed with the event. |
typedef struct _Eo_Callback_Array_Item Eo_Callback_Array_Item |
An item in an array of callback desc/func.
See also eo_event_callback_array_add.
typedef short Eo_Callback_Priority |
Callback priority value.
Range is -32k - 32k. The lower the number, the higher the priority.
See EO_CALLBACK_PRIORITY_AFTER, EO_CALLBACK_PRIORITY_BEFORE EO_CALLBACK_PRIORITY_DEFAULT
enum _Eo_Op_Type |
Init the eo subsystem.
EINA_TRUE
on success.References _eo_class_creation_lock, EINA_FALSE, eina_hash_pointer_new(), eina_hash_string_superfast_new(), eina_init(), eina_log_domain_register(), EINA_LOG_ERR, EINA_LOG_STATE_INIT, eina_log_timing(), eina_magic_string_static_set(), eina_spinlock_new(), eina_tls_cb_new(), EINA_TRUE, and WRN.
Referenced by ecore_audio_init(), ecore_init(), ector_init(), and evas_init().
Shutdown the eo subsystem.
EINA_TRUE
on success.References _eo_class_creation_lock, EINA_FALSE, eina_hash_free(), eina_log_domain_unregister(), EINA_LOG_STATE_SHUTDOWN, eina_log_timing(), eina_shutdown(), eina_spinlock_free(), eina_tls_free(), and EINA_TRUE.
Referenced by ecore_audio_shutdown(), ecore_init(), ecore_shutdown(), ector_init(), ector_shutdown(), and evas_shutdown().
Gets the class of the object.
obj | The object to work on |
Get a pointer to the data of an object for a specific class.
obj | the object to work on. |
klass | the klass associated with the data. |
References eo_data_scope_get().
Get a pointer to the data of an object for a specific class.
The data reference count is not incremented. The pointer must be used only in the scope of the function and its callees.
obj | the object to work on. |
klass | the klass associated with the data. |
References ERR.
Referenced by ecore_animator_custom_tick(), ecore_animator_del(), ecore_con_client_data_get(), ecore_con_client_data_set(), ecore_con_client_del(), ecore_con_client_fd_get(), ecore_con_client_ip_get(), ecore_con_client_send(), ecore_con_eet_client_connect_callback_add(), ecore_con_eet_client_connect_callback_del(), ecore_con_eet_client_disconnect_callback_add(), ecore_con_eet_client_disconnect_callback_del(), ecore_con_eet_server_connect_callback_add(), ecore_con_eet_server_connect_callback_del(), ecore_con_eet_server_disconnect_callback_add(), ecore_con_eet_server_disconnect_callback_del(), ecore_con_server_connect(), ecore_con_server_data_get(), ecore_con_server_data_set(), ecore_con_server_del(), ecore_con_shutdown(), ecore_con_ssl_client_upgrade(), ecore_con_ssl_server_cafile_add(), ecore_con_ssl_server_cert_add(), ecore_con_ssl_server_crl_add(), ecore_con_ssl_server_privkey_add(), ecore_con_ssl_server_upgrade(), ecore_con_ssl_server_verify(), ecore_con_ssl_server_verify_basic(), ecore_con_ssl_server_verify_name_get(), ecore_con_ssl_server_verify_name_set(), ecore_con_url_additional_header_add(), ecore_con_url_additional_headers_clear(), ecore_con_url_cookies_clear(), ecore_con_url_cookies_file_add(), ecore_con_url_cookies_ignore_old_session_set(), ecore_con_url_cookies_init(), ecore_con_url_cookies_jar_file_set(), ecore_con_url_cookies_jar_write(), ecore_con_url_cookies_session_clear(), ecore_con_url_custom_new(), ecore_con_url_data_get(), ecore_con_url_data_set(), ecore_con_url_fd_set(), ecore_con_url_free(), ecore_con_url_ftp_upload(), ecore_con_url_ftp_use_epsv_set(), ecore_con_url_http_version_set(), ecore_con_url_httpauth_set(), ecore_con_url_proxy_password_set(), ecore_con_url_proxy_set(), ecore_con_url_proxy_username_set(), ecore_con_url_received_bytes_get(), ecore_con_url_response_headers_get(), ecore_con_url_ssl_ca_set(), ecore_con_url_ssl_verify_peer_set(), ecore_con_url_status_code_get(), ecore_con_url_time(), ecore_con_url_timeout_set(), ecore_con_url_verbose_set(), ecore_exe_auto_limits_set(), ecore_exe_callback_pre_free_set(), ecore_exe_close_stdin(), ecore_exe_data_get(), ecore_exe_data_set(), ecore_exe_event_data_get(), ecore_exe_flags_get(), ecore_exe_free(), ecore_exe_hup(), ecore_exe_interrupt(), ecore_exe_kill(), ecore_exe_pid_get(), ecore_exe_pipe_run(), ecore_exe_quit(), ecore_exe_send(), ecore_exe_signal(), ecore_exe_tag_get(), ecore_exe_tag_set(), ecore_exe_terminate(), ecore_idle_enterer_del(), ecore_idle_exiter_del(), ecore_idler_del(), ecore_job_del(), ecore_poller_del(), ecore_timer_dump(), edje_box_layout_register(), edje_edit_sound_tones_list_get(), edje_edit_source_generate(), edje_evas_global_perspective_get(), edje_language_set(), edje_perspective_global_set(), edje_perspective_set(), eo_data_get(), evas_device_add(), evas_device_emulation_source_get(), evas_device_list(), evas_device_parent_set(), evas_device_pop(), evas_device_push(), evas_event_callback_del(), evas_event_callback_del_full(), evas_event_callback_priority_add(), evas_event_thaw_eval(), evas_font_path_global_list(), evas_map_util_clockwise_get(), evas_map_util_points_populate_from_object(), evas_map_util_points_populate_from_object_full(), evas_object_del(), evas_object_event_callback_del(), evas_object_event_callback_del_full(), evas_object_event_callback_priority_add(), evas_object_image_add(), evas_object_image_alpha_mask_set(), evas_object_image_data_convert(), evas_object_image_fill_set(), evas_object_image_fill_spread_set(), evas_object_image_memfile_set(), evas_object_image_native_surface_set(), evas_object_image_pixels_import(), evas_object_image_preload(), evas_object_image_reload(), evas_object_image_size_get(), evas_object_image_size_set(), evas_object_image_source_unset(), evas_object_layer_get(), evas_object_polygon_add(), evas_object_rectangle_add(), evas_object_ref(), evas_object_ref_get(), evas_object_smart_add(), evas_object_smart_callback_call(), evas_object_smart_callback_del(), evas_object_smart_callback_del_full(), evas_object_smart_callback_priority_add(), evas_object_smart_interface_data_get(), evas_object_smart_member_add(), evas_object_smart_member_del(), evas_object_stack_above(), evas_object_stack_below(), evas_object_text_add(), evas_object_text_text_get(), evas_object_textblock_add(), evas_object_textblock_clear(), evas_object_textblock_text_markup_prepend(), evas_object_textgrid_add(), evas_object_top_at_pointer_get(), evas_object_unref(), evas_post_event_callback_push(), evas_post_event_callback_remove(), evas_post_event_callback_remove_full(), evas_render_updates_free(), evas_smart_legacy_type_register(), evas_string_char_len_get(), evas_textblock_cursor_at_format_set(), evas_textblock_cursor_char_coord_set(), evas_textblock_cursor_char_delete(), evas_textblock_cursor_char_geometry_get(), evas_textblock_cursor_char_next(), evas_textblock_cursor_char_prev(), evas_textblock_cursor_compare(), evas_textblock_cursor_content_get(), evas_textblock_cursor_copy(), evas_textblock_cursor_eol_get(), evas_textblock_cursor_format_append(), evas_textblock_cursor_format_get(), evas_textblock_cursor_format_is_visible_get(), evas_textblock_cursor_format_item_geometry_get(), evas_textblock_cursor_format_next(), evas_textblock_cursor_format_prepend(), evas_textblock_cursor_format_prev(), evas_textblock_cursor_free(), evas_textblock_cursor_geometry_bidi_get(), evas_textblock_cursor_geometry_get(), evas_textblock_cursor_is_format(), evas_textblock_cursor_line_char_first(), evas_textblock_cursor_line_char_last(), evas_textblock_cursor_line_coord_set(), evas_textblock_cursor_line_geometry_get(), evas_textblock_cursor_line_set(), evas_textblock_cursor_paragraph_char_first(), evas_textblock_cursor_paragraph_char_last(), evas_textblock_cursor_paragraph_first(), evas_textblock_cursor_paragraph_last(), evas_textblock_cursor_paragraph_next(), evas_textblock_cursor_paragraph_prev(), evas_textblock_cursor_paragraph_text_get(), evas_textblock_cursor_paragraph_text_length_get(), evas_textblock_cursor_pen_geometry_get(), evas_textblock_cursor_pos_get(), evas_textblock_cursor_pos_set(), evas_textblock_cursor_range_delete(), evas_textblock_cursor_range_formats_get(), evas_textblock_cursor_range_geometry_get(), evas_textblock_cursor_range_simple_geometry_get(), evas_textblock_cursor_range_text_get(), evas_textblock_cursor_text_append(), evas_textblock_cursor_text_prepend(), evas_textblock_cursor_visible_range_get(), evas_textblock_cursor_word_end(), evas_textblock_cursor_word_start(), evas_textblock_node_format_prev_get(), evas_textblock_string_escape_get(), evas_textblock_style_get(), evas_textblock_style_set(), and evas_textblock_text_utf8_to_markup().
EAPI void* eo_data_xref_internal | ( | const char * | file, |
int | line, | ||
const Eo * | obj, | ||
const Eo_Class * | klass, | ||
const Eo * | ref_obj | ||
) |
Get a pointer to the data of an object for a specific class and increment the data reference count.
obj | the object to work on. |
klass | the klass associated with the data. |
ref_obj | the object that references the data. |
file | the call's filename. |
line | the call's line number. |
References ERR.
Decrement the object data reference count by 1.
obj | the object to work on. |
data | a pointer to the data to unreference |
file | the call's filename. |
line | the call's line number. |
Increment the object's reference count by 1.
obj | the object to work on. |
It's very easy to get a refcount leak and start leaking memory because of a forgotten unref or an extra ref. That is why there are eo_xref and eo_xunref that will make debugging easier in such a case. Therefor, these functions should only be used in small scopes, i.e at the start of some section in which the object may get freed, or if you know what you are doing.
Referenced by evas_object_image_alpha_mask_set(), evas_object_ref(), evas_smart_legacy_type_register(), and efl::eina::accessor< T, typename std::enable_if< std::is_base_of<::efl::eo::concrete, T >::value, T >::type >::operator[]().
Decrement the object's reference count by 1 and free it if needed.
obj | the object to work on. |
Referenced by ecore_shutdown(), eo_del(), evas_free(), evas_object_image_alpha_mask_set(), evas_object_unref(), and evas_smart_legacy_type_register().
Return the ref count of the object passed.
obj | the object to work on. |
References EINA_INLIST_FOREACH, EINA_INLIST_GET, eina_inlist_prepend(), eina_inlist_remove(), EINA_LIKELY, EINA_TRUE, EINA_UNLIKELY, EO_CLASS_TYPE_MIXIN, and ERR.
Referenced by evas_free().
Unrefs the object and reparents it to NULL.
obj | the object to work on. |
Because eo_del() unrefs and reparents to NULL, it doesn't really delete the object.
References eo_unref().
Referenced by ecore_con_client_fd_get(), ecore_con_eet_server_free(), ecore_con_shutdown(), ecore_con_url_free(), ecore_exe_free(), edje_audio_channel_mute_get(), and evas_object_del().
Increment the object's reference count by 1 (and associate the ref with ref_obj)
obj | the object to work on. |
ref_obj | the object that references obj. |
file | the call's filename. |
line | the call's line number. |
People should not use this function, use eo_xref instead. A compile flag my make it and eobj_xunref() behave the same as eobj_ref() and eobj_unref() respectively. So this should be used wherever possible.
References EINA_INLIST_GET, and eina_inlist_prepend().
Decrement the object's reference count by 1 and free it if needed.
Will free the ref associated with ref_obj).
obj | the object to work on. |
ref_obj | the object that references obj. |
This function only enforces the checks for object association. I.e don't rely on it. If such enforces are compiled out, this function behaves the same as eo_unref().
References EINA_INLIST_FOREACH, EINA_INLIST_GET, eina_inlist_remove(), and ERR.
Enable or disable the manual free feature.
obj | the object to work on. |
manual_free | indicates if the free is manual (EINA_TRUE) or automatic (EINA_FALSE). |
The developer is in charge to call the function eo_manual_free to free the memory allocated for this object.
Do not use, unless you really know what you are doing. It's used by Evas because evas wants to keep its private data available even after the object is deleted. Setting this to true makes Eo destruct the object but not free the private data or the object itself.
Referenced by ecore_animator_custom_tick(), ecore_con_url_free(), ecore_con_url_new(), ecore_idle_enterer_del(), ecore_idle_exiter_add(), ecore_idle_exiter_del(), ecore_idler_add(), ecore_idler_del(), ecore_job_add(), ecore_job_del(), ecore_poller_add(), ecore_poller_del(), ecore_timer_add(), ecore_timer_dump(), and evas_object_del().
Frees the object.
obj | the object to work on. This function must be called by the developer if the function eo_manual_free_set has been called before with the parameter EINA_TRUE. An error will be printed if this function is called when the manual free option is not set to EINA_TRUE or the number of refs is not 0. |
References EINA_FALSE, EINA_TRUE, and ERR.
Referenced by ecore_animator_custom_tick(), ecore_con_url_proxy_password_set(), ecore_idle_enterer_del(), ecore_idle_exiter_del(), ecore_idler_del(), ecore_job_del(), ecore_poller_del(), and ecore_timer_dump().
Checks if the object was already descructed (only relevant for manual_free objects).
obj | the object to check. This function checks if the object was already destructed (but not alraedy freed). It should only be used with objects that are supposed to be manually freed, but not yet freed (but possibly destructed). |
References EINA_FALSE.
Referenced by ecore_animator_custom_tick(), ecore_idle_enterer_del(), ecore_idle_exiter_del(), ecore_idler_del(), ecore_job_del(), ecore_poller_del(), and ecore_timer_dump().
EAPI Eina_Spinlock _eo_class_creation_lock |
This variable is used for locking purposes in the class_get function defined in EO_DEFINE_CLASS.
This is just to work around the fact that we need to init locks before using them. Don't touch it if you don't know what you are doing.
Referenced by eo_class_new(), eo_init(), and eo_shutdown().
_eo_class_creation_lock |
This variable is used for locking purposes in the class_get function defined in EO_DEFINE_CLASS.
This is just to work around the fact that we need to init locks before using them. Don't touch it if you don't know what you are doing.
Referenced by eo_class_new(), eo_init(), and eo_shutdown().