Enlightenment CVS committal

Author  : handyande
Project : e17
Module  : libs/ecore

Dir     : e17/libs/ecore/src/lib/ecore_config


Modified Files:
        Makefile.am ecore_config_ipc_ecore.c ecore_config_ipc_main.c 


Log Message:
Ecore_config cleanup step 2)
A contraversial one perhaps - remove the modular backend
This fixes the hard coded .so extension problems and gives us a must more 
stable system
still no API breakage :)
===================================================================
RCS file: 
/cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_config/Makefile.am,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -3 -r1.27 -r1.28
--- Makefile.am 10 Mar 2005 15:19:37 -0000      1.27
+++ Makefile.am 7 Jun 2005 21:53:58 -0000       1.28
@@ -14,9 +14,6 @@
 libecore_config_la_LDFLAGS = -version-info 1:0:0 \
 -L$(top_builddir)/src/lib/ecore/.libs
 
-ecore_config_ipc_ecore_la_LDFLAGS = -no-undefined -module \
--avoid-version -rdynamic -shared
-
 if BUILD_ECORE_CONFIG
 
 #DB = system.db
@@ -26,7 +23,7 @@
 #      edb_ed $(top_builddir)/src/lib/ecore_config/$(DB) add /apps/web/browser 
str `which firefox 2>/dev/null || which phoenix 2>/dev/null || which mozilla 
2>/dev/null || which opera 2>/dev/null || which konqueror 2>/dev/null || which 
epiphany 2>/dev/null`
 #      edb_ed $(top_builddir)/src/lib/ecore_config/$(DB) add /apps/web/email 
str `which thunderbird 2>/dev/null || which mozilla 2>/dev/null || which kmail 
2>/dev/null || which sylpheed 2>/dev/null || which evolution 2>/dev/null`
 
-lib_LTLIBRARIES = libecore_config.la ecore_config_ipc_ecore.la
+lib_LTLIBRARIES = libecore_config.la
 include_HEADERS = \
 Ecore_Config.h
 
@@ -36,6 +33,7 @@
 libecore_config_la_SOURCES = \
 ecore_config.c \
 ecore_config_ipc_main.c \
+ecore_config_ipc_ecore.c \
 ecore_config_util.c \
 ecore_config_storage.c \
 ecore_config_extra.c \
@@ -44,33 +42,22 @@
 
 libecore_config_la_LIBADD = \
 $(top_builddir)/src/lib/ecore/libecore.la \
+$(top_builddir)/src/lib/ecore_ipc/libecore_ipc.la \
 @eet_libs@ \
 @evas_libs@
 
 libecore_config_la_DEPENDENCIES = \
-$(top_builddir)/src/lib/ecore/libecore.la
-
-ecore_config_ipc_ecore_la_DEPENDENCIES = \
-$(top_builddir)/config.h \
 $(top_builddir)/src/lib/ecore/libecore.la \
-$(top_builddir)/src/lib/ecore_ipc/libecore_ipc.la \
-libecore_config.la
+$(top_builddir)/src/lib/ecore_ipc/libecore_ipc.la
 
-ecore_config_ipc_ecore_la_SOURCES          = ecore_config_ipc_ecore.c
-ecore_config_ipc_ecore_la_LIBADD           = \
-$(top_builddir)/src/lib/ecore/libecore.la \
-$(top_builddir)/src/lib/ecore_ipc/libecore_ipc.la \
-libecore_config.la \
[EMAIL PROTECTED]@ \
[EMAIL PROTECTED]@
 
 endif
 
 EXTRA_DIST = \
 Ecore_Config.h \
 ecore_config.c \
-ecore_config_ipc_main.c \
 ecore_config_ipc_ecore.c \
+ecore_config_ipc_main.c \
 ecore_config_ipc.h \
 ecore_config_util.c \
 ecore_config_util.h \
===================================================================
RCS file: 
/cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_config/ecore_config_ipc_ecore.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- ecore_config_ipc_ecore.c    7 Jun 2005 20:08:16 -0000       1.6
+++ ecore_config_ipc_ecore.c    7 Jun 2005 21:54:07 -0000       1.7
@@ -276,7 +276,7 @@
 /*****************************************************************************/
 
 int
-_ecore_config_mod_init(const char *pipe_name, void **data)
+_ecore_config_ipc_ecore_init(const char *pipe_name, void **data)
 {
    Ecore_Ipc_Server  **server;
    struct stat         st;
@@ -335,7 +335,7 @@
 }
 
 int
-_ecore_config_mod_exit(void **data)
+_ecore_config_ipc_ecore_exit(void **data)
 {
    int                 ret;
    Ecore_Ipc_Server  **server;
@@ -360,7 +360,7 @@
 /*****************************************************************************/
 
 int
-_ecore_config_mod_poll(void **data)
+_ecore_config_ipc_ecore_poll(void **data)
 {
    Ecore_Ipc_Server  **server;
 
===================================================================
RCS file: 
/cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_config/ecore_config_ipc_main.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- ecore_config_ipc_main.c     2 Mar 2005 07:06:34 -0000       1.2
+++ ecore_config_ipc_main.c     7 Jun 2005 21:54:07 -0000       1.3
@@ -22,36 +22,24 @@
 #  define TRUE (!FALSE)
 #endif
 
-typedef struct _ecore_config_ipc
-{
-   void               *lib;
-   void               *data;
-   int                 (*ipc_init) (const char *pipe_name, void **data);
-   int                 (*ipc_exit) (void **data);
-   int                 (*ipc_poll) (void **data);
-   struct _ecore_config_ipc *next;
-} Ecore_Config_Ipc;
-
-static Ecore_Config_Ipc *ipc_modules = NULL;
+static Ecore_Config_Server *__ecore_config_servers;
 static unsigned long ipc_timer = 0L;
 
+extern int _ecore_config_ipc_ecore_init(const char *pipe_name, void **data);
+extern int _ecore_config_ipc_ecore_exit(void **data);
+extern int _ecore_config_ipc_ecore_poll(void **data);
+
 Ecore_Config_Server *
 _ecore_config_server_convert(void *srv)
 {
-   Ecore_Config_Ipc   *ipc_tmp;
    Ecore_Config_Server *srv_tmp;
 
-   ipc_tmp = ipc_modules;
-   while (ipc_tmp)
+   srv_tmp = __ecore_config_servers;
+   while (srv_tmp)
      {
-       srv_tmp = ipc_tmp->data;
-       while (srv_tmp)
-         {
-            if (srv_tmp->server == srv)
-               return srv_tmp;
-            srv_tmp = srv_tmp->next;
-         }
-       ipc_tmp = ipc_tmp->next;
+       if (srv_tmp->server == srv)
+         return srv_tmp;
+       srv_tmp = srv_tmp->next;
      }
 
    return __ecore_config_server_global;
@@ -231,19 +219,13 @@
 static int
 _ecore_config_ipc_poll(void *data)
 {
-   Ecore_Config_Ipc   *m;
    Ecore_Config_Server *s;
 
-   m = (Ecore_Config_Ipc *) data;
-   while (m)
+   s = __ecore_config_servers;
+   while (s)
      {
-       s = m->data;
-       while (s)
-         {
-            m->ipc_poll(&s->server);
-            s = s->next;
-         }
-       m = m->next;
+       _ecore_config_ipc_ecore_poll(&s->server);
+        s = s->next;
      }
 
    return TRUE;
@@ -252,160 +234,51 @@
 int
 _ecore_config_ipc_exit(void)
 {
-   Ecore_Config_Ipc   *m;
    Ecore_Config_Server *l;
 
    if (ipc_timer)
       timeout_remove(ipc_timer);
-   while (ipc_modules)
+   l = __ecore_config_servers;
+   while (l)
      {
-       m = ipc_modules;
-       ipc_modules = ipc_modules->next;
-       l = m->data;
-       while (l)
-         {
-            m->ipc_exit(&l->server);
-            l = l->next;
-         }
-       free(m);
+       _ecore_config_ipc_ecore_exit(&l->server);
+       l = l->next;
      }
-   return ECORE_CONFIG_ERR_IGNORED;
+
+   return ECORE_CONFIG_ERR_SUCC;
 }
 
 Ecore_Config_Server *
 _ecore_config_ipc_init(const char *pipe_name)
 {
-   char                buf[PATH_MAX];
-   glob_t              globbuf;
    int                 ret;
-   unsigned int        c;
-   Ecore_Config_Ipc   *nm;
    Ecore_Config_Server *list;
    Ecore_Config_Server *ret_srv;
 
-   nm = NULL;
    list = NULL;
    ret_srv = NULL;
-
-   if (nm)
-     {
-       list = (Ecore_Config_Server *) nm->data;
-       while (list)
-         {
-            if (!strcmp(list->name, pipe_name))
-               return NULL;
-
-            list = list->next;
-         }
-     }
-
    list = NULL;
 
-   if (ipc_modules)
+   list = malloc(sizeof(Ecore_Config_Server));
+   memset(list, 0, sizeof(Ecore_Config_Server));
+   if ((ret = _ecore_config_ipc_ecore_init(pipe_name, &list->server)) != 
ECORE_CONFIG_ERR_SUCC)
      {
-       nm = ipc_modules;
-       while (nm)
-         {
-            list = malloc(sizeof(Ecore_Config_Server));
-            memset(list, 0, sizeof(Ecore_Config_Server));
-            if ((ret =
-                 nm->ipc_init(pipe_name,
-                              &list->server)) != ECORE_CONFIG_ERR_SUCC)
-              {
-                 E(2,
-                   "_ecore_config_ipc_init: failed to register %s, code %d\n",
-                   pipe_name, ret);
-                 break;
-              }
-
-            E(2, "_ecore_config_ipc_init: registered \"%s\"...\n", pipe_name);
-
-            list->name = strdup(pipe_name);
-            list->next = nm->data;
-
-            nm->data = list;
-            if (!ret_srv)
-               ret_srv = list;
-            nm = nm->next;
-         }
-
-       return ret_srv;
+       E(2, "_ecore_config_ipc_init: failed to register %s, code %d\n",
+         pipe_name, ret);
      }
 
-   if (((ret =
-        snprintf(buf, PATH_MAX, PACKAGE_LIB_DIR "/ecore_config_ipc_*.so")) < 0)
-       || (ret >= PATH_MAX))
-      return NULL;
-
-   glob(buf, 0, NULL, &globbuf);
-   if (!globbuf.gl_pathc)
-      return NULL;
+   E(2, "_ecore_config_ipc_init: registered \"%s\"...\n", pipe_name);
 
-   for (c = 0; c < globbuf.gl_pathc; c++)
-     {
-       if (!(nm = malloc(sizeof(Ecore_Config_Ipc))))
-         {
-            ret = ECORE_CONFIG_ERR_OOM;
-            goto done;
-         }
-       memset(nm, 0, sizeof(Ecore_Config_Ipc));
+   list->name = strdup(pipe_name);
+   list->next = __ecore_config_servers;
 
-       E(1, "_ecore_config_ipc_init: checking \"%s\"...\n",
-         globbuf.gl_pathv[c]);
-       ret =
-          dlmulti("IPC-plugin", globbuf.gl_pathv[c], RTLD_NOW, &nm->lib,
-                  "!_ecore_config_mod_init !_ecore_config_mod_exit 
!_ecore_config_mod_poll",
-                  &nm->ipc_init, &nm->ipc_exit, &nm->ipc_poll);
-       if (ret == ECORE_CONFIG_ERR_NODATA)
-          E(0, "_ecore_config_ipc_init: could not load \"%s\": %s...\n",
-            globbuf.gl_pathv[c], dlerror());
-       else if (ret == ECORE_CONFIG_ERR_SUCC)
-         {
-            list = malloc(sizeof(Ecore_Config_Server));
-/*      memcpy(list, 0, sizeof(Ecore_Config_Server));*/
-            if ((ret =
-                 nm->ipc_init(pipe_name,
-                              &list->server)) != ECORE_CONFIG_ERR_SUCC)
-               E(0,
-                 "_ecore_config_ipc_init: could not initialize \"%s\": %d\n",
-                 globbuf.gl_pathv[c], ret);
-            else
-              {
-                 char               *p = globbuf.gl_pathv[c];
-
-                 if (DEBUG != 0)
-                   {
-                      char               *q = strrchr(p, DIR_DELIMITER);
-
-                      if (q)
-                         p = ++q;
-                   }
-                 E(0, "_ecore_config_ipc_init: adding \"%s\"...\n", p);
-                 E(2, "_ecore_config_ipc_init: registered \"%s\"...\n",
-                   pipe_name);
-
-                 list->name = strdup(pipe_name);
-                 list->next = nm->data;
-                 nm->data = list;
-                 if (!ret_srv)
-                    ret_srv = list;
-
-                 nm->next = ipc_modules;
-                 ipc_modules = nm;
-              }
-         }
-       if (ret != ECORE_CONFIG_ERR_SUCC)
-          free(nm);
-     }
-
- done:
-   globfree(&globbuf);
-
-   if (ipc_modules)
-     {
-       ipc_timer = timeout_add(100, _ecore_config_ipc_poll, ipc_modules);
-     }
+   __ecore_config_servers = list;
+   if (!ret_srv)
+     ret_srv = list;
+
+   if (!ipc_timer)
+     ipc_timer = timeout_add(100, _ecore_config_ipc_poll, NULL);
+   
    return ret_srv;
 }
-
 /*****************************************************************************/




-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.  How far can you shotput
a projector? How fast can you ride your desk chair down the office luge track?
If you want to score the big prize, get to know the little guy.  
Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to