Data Structures | Macros | Typedefs | Enumerations | Functions
Eo Class

Data Structures

struct  _Eo_Op_Description
 
struct  _Eo_Class_Description
 This struct holds the description of a class. More...
 

Macros

#define EO_DEFINE_CLASS(class_get_func_name, class_desc, parent_class, ...)
 A convenience macro to be used for creating the class_get function. More...
 
#define EO_VERSION   2
 The current version of EO.
 

Typedefs

typedef enum _Eo_Class_Type Eo_Class_Type
 A convenience typedef for _Eo_Class_Type.
 
typedef struct _Eo_Op_Description Eo_Op_Description
 
typedef struct _Eo_Class_Description Eo_Class_Description
 A convenience typedef for _Eo_Class_Description.
 

Enumerations

enum  _Eo_Class_Type {
  EO_CLASS_TYPE_REGULAR = 0,
  EO_CLASS_TYPE_REGULAR_NO_INSTANT,
  EO_CLASS_TYPE_INTERFACE,
  EO_CLASS_TYPE_MIXIN
}
 An enum representing the possible types of an Eo class. More...
 

Functions

EAPI const Eo_Classeo_class_new (const Eo_Class_Description *desc, const Eo_Class *parent,...)
 Create a new class. More...
 
EAPI Eina_Bool eo_isa (const Eo *obj, const Eo_Class *klass)
 Check if an object "is a" klass. More...
 
EAPI const char * eo_class_name_get (const Eo_Class *klass)
 Gets the name of the passed class. More...
 

Detailed Description

Macro Definition Documentation

#define EO_DEFINE_CLASS (   class_get_func_name,
  class_desc,
  parent_class,
  ... 
)

A convenience macro to be used for creating the class_get function.

This macro is fairly simple but should still be used as it'll let us improve things easily.

Parameters
class_get_func_namethe name of the wanted class_get function name.
class_descthe class description.
parent_classThe parent class for the function. Look at eo_class_new() for more information.
...List of extensions. Look at eo_class_new() for more information.

You must use this macro if you want thread safety in class creation.

Enumeration Type Documentation

An enum representing the possible types of an Eo class.

Enumerator
EO_CLASS_TYPE_REGULAR 

Regular class.

EO_CLASS_TYPE_REGULAR_NO_INSTANT 

Regular non instant-able class.

EO_CLASS_TYPE_INTERFACE 

Interface.

EO_CLASS_TYPE_MIXIN 

Mixin.

Function Documentation

EAPI const Eo_Class* eo_class_new ( const Eo_Class_Description desc,
const Eo_Class parent,
  ... 
)

Create a new class.

Parameters
descthe class description to create the class with.
parentthe class to inherit from.
...A NULL terminated list of extensions (interfaces, mixins and the classes of any composite objects).
Returns
The new class's handle on success, or NULL otherwise.

You should use EO_DEFINE_CLASS. It'll provide thread safety and other features easily.

See also
EO_DEFINE_CLASS

References _eo_class_creation_lock, _Eo_Class_Description::data_size, DBG, eina_list_append(), eina_list_count(), EINA_LIST_FOREACH, eina_list_free(), EINA_LIST_FREE, eina_list_prepend(), eina_list_remove(), EINA_MAGIC_CHECK, EINA_MAGIC_FAIL, EINA_MAGIC_SET, eina_spinlock_free(), eina_spinlock_new(), eina_spinlock_release(), eina_spinlock_take(), EO_CLASS_TYPE_INTERFACE, EO_CLASS_TYPE_MIXIN, EO_CLASS_TYPE_REGULAR, EO_CLASS_TYPE_REGULAR_NO_INSTANT, ERR, _Eo_Class_Description::name, efl::eo::parent, and _Eo_Class_Description::type.

EAPI Eina_Bool eo_isa ( const Eo obj,
const Eo_Class klass 
)

Check if an object "is a" klass.

Parameters
objThe object to check
klassThe klass to check against.
Returns
EINA_TRUE if obj implements klass, EINA_FALSE otherwise.

Notice: This function does not support composite objects.

References EINA_FALSE.

Referenced by 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_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_quit(), ecore_exe_send(), ecore_exe_signal(), ecore_exe_tag_get(), ecore_exe_tag_set(), ecore_exe_terminate(), evas_object_image_data_convert(), evas_object_image_pixels_import(), evas_object_image_reload(), and evas_object_smart_interface_get().

EAPI const char* eo_class_name_get ( const Eo_Class klass)

Gets the name of the passed class.

Parameters
klassthe class to work on.
Returns
The class's name.
See also
eo_class_get()

Referenced by evas_object_image_data_convert(), evas_object_image_pixels_import(), and evas_object_image_reload().