/** * @brief Initialize Azy * * This function initializes error handlers, events, and * logging functions for Azy and must be called prior to making any * calls. * @return The number of times the function has been called, or -1 on failure */ int azy_init(void) { if (++azy_init_count_ != 1) return azy_init_count_; if (!eina_init()) return 0; azy_log_dom = eina_log_domain_register("azy", EINA_COLOR_BLUE); if (azy_log_dom < 0) { ERR("Could not register 'azy' log domain!"); goto eina_fail; } if (!ecore_init()) goto fail; if (!ecore_con_init()) goto ecore_fail; azy_lib_register_errors_(); AZY_CLIENT_DISCONNECTED = ecore_event_type_new(); AZY_CLIENT_UPGRADE = ecore_event_type_new(); AZY_CLIENT_CONNECTED = ecore_event_type_new(); AZY_CLIENT_RETURN = ecore_event_type_new(); AZY_CLIENT_RESULT = ecore_event_type_new(); AZY_CLIENT_ERROR = ecore_event_type_new(); AZY_SERVER_CLIENT_ADD = ecore_event_type_new(); AZY_SERVER_CLIENT_UPGRADE = ecore_event_type_new(); AZY_SERVER_CLIENT_DEL = ecore_event_type_new(); AZY_EVENT_DOWNLOAD_STATUS = ecore_event_type_new(); eina_magic_string_set(AZY_MAGIC_SERVER, "Azy_Server"); eina_magic_string_set(AZY_MAGIC_SERVER_CLIENT, "Azy_Server_Client"); eina_magic_string_set(AZY_MAGIC_SERVER_MODULE, "Azy_Server_Module"); eina_magic_string_set(AZY_MAGIC_SERVER_MODULE_DEF, "Azy_Server_Module_Def"); eina_magic_string_set(AZY_MAGIC_SERVER_MODULE_METHOD, "Azy_Server_Module_Method"); eina_magic_string_set(AZY_MAGIC_CLIENT, "Azy_Client"); eina_magic_string_set(AZY_MAGIC_CLIENT_DATA_HANDLER, "Azy_Client_Handler_Data"); eina_magic_string_set(AZY_MAGIC_NET, "Azy_Net"); eina_magic_string_set(AZY_MAGIC_VALUE, "Azy_Value"); eina_magic_string_set(AZY_MAGIC_CONTENT, "Azy_Content"); return azy_init_count_; ecore_fail: ecore_shutdown(); fail: eina_log_domain_unregister(azy_log_dom); azy_log_dom = -1; eina_fail: eina_shutdown(); return 0; }
int main(int argc, char **argv) { person *base; pilot *sub; eina_init(); eina_magic_string_set(BASETYPE_MAGIC, "person"); eina_magic_string_static_set(SUBTYPE_MAGIC, "pilot"); base = person_new("Tyrol"); sub = pilot_new("thrace", "starbuck"); print_person(base); print_person((person *)sub); print_pilot(base); //BAD print_pilot(sub); eina_shutdown(); }
/** * @internal * @brief Initialize the iterator module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function sets up the iterator module of Eina. It is called by * eina_init(). * * @see eina_init() */ Eina_Bool eina_iterator_init(void) { return eina_magic_string_set(EINA_MAGIC_ITERATOR, EINA_MAGIC_ITERATOR_STR); }
/** * @internal * @brief Initialize the accessor module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function sets up the accessor module of Eina. It is called by * eina_init(). * * @see eina_init() */ Eina_Bool eina_accessor_init(void) { return eina_magic_string_set(EINA_MAGIC_ACCESSOR, EINA_MAGIC_ACCESSOR_STR); }
EAPI int eldbus_init(void) { if (_eldbus_init_count++ > 0) return _eldbus_init_count; if (!eina_init()) { fputs("Eldbus: Unable to initialize eina\n", stderr); return 0; } _eldbus_log_dom = eina_log_domain_register("eldbus", EINA_COLOR_BLUE); if (_eldbus_log_dom < 0) { EINA_LOG_ERR("Unable to create an 'eldbus' log domain"); eina_shutdown(); return 0; } if (!ecore_init()) { ERR("Unable to initialize ecore"); eina_log_domain_unregister(_eldbus_log_dom); _eldbus_log_dom = -1; eina_shutdown(); return 0; } eina_magic_string_set(ELDBUS_CONNECTION_MAGIC, "Eldbus_Connection"); eina_magic_string_set(ELDBUS_MESSAGE_MAGIC, "Eldbus_Message"); eina_magic_string_set(ELDBUS_SIGNAL_HANDLER_MAGIC, "Eldbus_Signal_Handler"); eina_magic_string_set(ELDBUS_PENDING_MAGIC, "Eldbus_Pending"); eina_magic_string_set(ELDBUS_OBJECT_MAGIC, "Eldbus_Object"); eina_magic_string_set(ELDBUS_PROXY_MAGIC, "Eldbus_Proxy"); eina_magic_string_set(ELDBUS_MESSAGE_ITERATOR_MAGIC, "Eldbus_Message_Iterator"); eina_magic_string_set(ELDBUS_SERVICE_INTERFACE_MAGIC, "Eldbus_Service_Interface"); if (!eldbus_message_init()) goto message_failed; if (!eldbus_signal_handler_init()) goto signal_handler_failed; if (!eldbus_pending_init()) goto pending_failed; if (!eldbus_object_init()) goto object_failed; if (!eldbus_proxy_init()) goto proxy_failed; if (!eldbus_service_init()) goto service_failed; return _eldbus_init_count; service_failed: eldbus_proxy_shutdown(); proxy_failed: eldbus_object_shutdown(); object_failed: eldbus_pending_shutdown(); pending_failed: eldbus_signal_handler_shutdown(); signal_handler_failed: eldbus_message_shutdown(); message_failed: ecore_shutdown(); eina_log_domain_unregister(_eldbus_log_dom); _eldbus_log_dom = -1; eina_shutdown(); return 0; }