use macro for registering modules

SVN revision: 48747
This commit is contained in:
Hannes Janetzek 2010-05-11 01:53:34 +00:00
parent 0727615962
commit 1760d392d4
8 changed files with 49 additions and 80 deletions

View File

@ -651,8 +651,6 @@ EAPI E_Module_Api e_modapi =
EAPI void *
e_modapi_init(E_Module *m)
{
Eina_List *l;
_conf_init(m);
if ((evry = e_datastore_get("everything_loaded")))
@ -661,11 +659,8 @@ e_modapi_init(E_Module *m)
evry_module = E_NEW(Evry_Module, 1);
evry_module->init = &_plugins_init;
evry_module->shutdown = &_plugins_shutdown;
l = e_datastore_get("everything_modules");
l = eina_list_append(l, evry_module);
e_datastore_set("everything_modules", l);
EVRY_MODULE_REGISTER(evry_module);
e_module_delayed_set(m, 1);
return m;
@ -674,19 +669,12 @@ e_modapi_init(E_Module *m)
EAPI int
e_modapi_shutdown(E_Module *m)
{
Eina_List *l;
_conf_shutdown();
if (e_datastore_get("everything_loaded"))
_plugins_shutdown();
l = e_datastore_get("everything_modules");
l = eina_list_remove(l, evry_module);
e_datastore_set("everything_modules", l);
EVRY_MODULE_UNREGISTER(evry_module);
E_FREE(evry_module);
_plugins_shutdown();
_conf_shutdown();
return 1;
}

View File

@ -252,6 +252,7 @@ static void
_plugins_shutdown(void)
{
if (!active) return;
printf("calc shut down\n");
EVRY_PLUGIN_FREE(p1);
@ -269,18 +270,13 @@ EAPI E_Module_Api e_modapi =
EAPI void *
e_modapi_init(E_Module *m)
{
Eina_List *l;
if ((evry = e_datastore_get("everything_loaded")))
_plugins_init(evry);
evry_module = E_NEW(Evry_Module, 1);
evry_module->init = &_plugins_init;
evry_module->shutdown = &_plugins_shutdown;
l = e_datastore_get("everything_modules");
l = eina_list_append(l, evry_module);
e_datastore_set("everything_modules", l);
EVRY_MODULE_REGISTER(evry_module);
e_module_delayed_set(m, 1);
@ -290,17 +286,11 @@ e_modapi_init(E_Module *m)
EAPI int
e_modapi_shutdown(E_Module *m)
{
Eina_List *l;
if (e_datastore_get("everything_loaded"))
_plugins_shutdown();
l = e_datastore_get("everything_modules");
l = eina_list_remove(l, evry_module);
e_datastore_set("everything_modules", l);
EVRY_MODULE_UNREGISTER(evry_module);
E_FREE(evry_module);
_plugins_shutdown();
return 1;
}

View File

@ -154,19 +154,14 @@ EAPI E_Module_Api e_modapi =
EAPI void *
e_modapi_init(E_Module *m)
{
Eina_List *l;
if ((evry = e_datastore_get("everything_loaded")))
_plugins_init(evry);
evry_module = E_NEW(Evry_Module, 1);
evry_module->init = &_plugins_init;
evry_module->shutdown = &_plugins_shutdown;
EVRY_MODULE_REGISTER(evry_module);
l = e_datastore_get("everything_modules");
l = eina_list_append(l, evry_module);
e_datastore_set("everything_modules", l);
e_module_delayed_set(m, 1);
return m;
@ -175,16 +170,10 @@ e_modapi_init(E_Module *m)
EAPI int
e_modapi_shutdown(E_Module *m)
{
Eina_List *l;
if (e_datastore_get("everything_loaded"))
_plugins_shutdown();
l = e_datastore_get("everything_modules");
l = eina_list_remove(l, evry_module);
e_datastore_set("everything_modules", l);
EVRY_MODULE_UNREGISTER(evry_module);
E_FREE(evry_module);
_plugins_shutdown();
return 1;
}

View File

@ -381,10 +381,7 @@ e_modapi_init(E_Module *m)
evry_module = E_NEW(Evry_Module, 1);
evry_module->init = &_plugins_init;
evry_module->shutdown = &_plugins_shutdown;
l = e_datastore_get("everything_modules");
l = eina_list_append(l, evry_module);
e_datastore_set("everything_modules", l);
EVRY_MODULE_REGISTER(evry_module);
e_module_delayed_set(m, 1);
@ -396,14 +393,10 @@ e_modapi_shutdown(E_Module *m)
{
Eina_List *l;
if (e_datastore_get("everything_loaded"))
_plugins_shutdown();
l = e_datastore_get("everything_modules");
l = eina_list_remove(l, evry_module);
e_datastore_set("everything_modules", l);
EVRY_MODULE_UNREGISTER(evry_module);
E_FREE(evry_module);
_plugins_shutdown();
return 1;
}

View File

@ -435,18 +435,13 @@ EAPI E_Module_Api e_modapi =
EAPI void *
e_modapi_init(E_Module *m)
{
Eina_List *l;
if ((evry = e_datastore_get("everything_loaded")))
_plugins_init(evry);
evry_module = E_NEW(Evry_Module, 1);
evry_module->init = &_plugins_init;
evry_module->shutdown = &_plugins_shutdown;
l = e_datastore_get("everything_modules");
l = eina_list_append(l, evry_module);
e_datastore_set("everything_modules", l);
EVRY_MODULE_REGISTER(evry_module);
e_module_delayed_set(m, 1);
@ -456,17 +451,11 @@ e_modapi_init(E_Module *m)
EAPI int
e_modapi_shutdown(E_Module *m)
{
Eina_List *l;
if (e_datastore_get("everything_loaded"))
_plugins_shutdown();
l = e_datastore_get("everything_modules");
l = eina_list_remove(l, evry_module);
e_datastore_set("everything_modules", l);
EVRY_MODULE_UNREGISTER(evry_module);
E_FREE(evry_module);
_plugins_shutdown();
return 1;
}

View File

@ -4,7 +4,7 @@
#include "e.h"
#include "evry_types.h"
#define EVRY_API_VERSION 17
#define EVRY_API_VERSION 18
#define EVRY_ACTION_OTHER 0
#define EVRY_ACTION_FINISHED 1

View File

@ -185,6 +185,7 @@ e_modapi_init(E_Module *m)
SET(action_free);
SET(action_register);
SET(action_unregister);
SET(action_find);
SET(api_version_check);
SET(type_register);
SET(icon_mime_get);
@ -223,8 +224,11 @@ e_modapi_shutdown(E_Module *m __UNUSED__)
Evry_Module *em;
EINA_LIST_FOREACH(e_datastore_get("everything_modules"), l, em)
em->shutdown();
{
printf("call shutdown\n");
em->shutdown();
}
e_datastore_del("everything_loaded");
E_FREE(_api);

View File

@ -4,7 +4,7 @@
#ifndef EVRY_H
#include "evry_types.h"
#define EVRY_API_VERSION 17
#define EVRY_API_VERSION 18
#define EVRY_ACTION_OTHER 0
#define EVRY_ACTION_FINISHED 1
@ -97,7 +97,7 @@ struct _Evry_API
void (*action_free)(Evry_Action *act);
void (*action_register)(Evry_Action *act, int priority);
void (*action_unregister)(Evry_Action *act);
Evry_Action *(*action_find)(const char *name);
Evry_Type (*type_register)(const char *type);
/* evry_util.c */
@ -202,6 +202,22 @@ struct _Evry_API
#define EVRY_PLUGIN_UPDATE(_p, _action) \
if (_p) evry->plugin_update(EVRY_PLUGIN(_p), _action)
#define IF_RELEASE(x) do { \
if (x) { \
const char *__tmp; __tmp = (x); (x) = NULL; eina_stringshare_del(__tmp); \
} \
(x) = NULL; \
} while (0)
#define EVRY_MODULE_REGISTER(_module) { \
Eina_List *l = e_datastore_get("everything_modules"); \
l = eina_list_append(l, _module); \
e_datastore_set("everything_modules", l); }
#define EVRY_MODULE_UNREGISTER(_module) { \
Eina_List *l = e_datastore_get("everything_modules"); \
l = eina_list_remove(l, _module); \
e_datastore_set("everything_modules", l); }
#ifndef EINA_LOG_DEFAULT_COLOR