Enlightenment CVS committal

Author  : codewarrior
Project : e17
Module  : libs/ecore

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


Modified Files:
        ecore_ipc.c ecore_ipc_private.h 


Log Message:
- maintain a list of connected clients and use that for clients_get

===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_ipc/ecore_ipc.c,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -3 -r1.34 -r1.35
--- ecore_ipc.c 30 Mar 2006 08:20:18 -0000      1.34
+++ ecore_ipc.c 30 Mar 2006 14:01:04 -0000      1.35
@@ -355,6 +355,8 @@
      }
    svr->max_buf_size = 32 * 1024;
    svr->data = (void *)data;
+   svr->client_list = ecore_list_new();
+   ecore_list_init(svr->client_list);
    servers = _ecore_list2_append(servers, svr);
    ECORE_MAGIC_SET(svr, ECORE_MAGIC_IPC_SERVER);
    return svr;
@@ -438,15 +440,14 @@
    if (svr->event_count > 0)
      svr->delete_me = 1;
    else
-     {
-       Ecore_List2 *l;
-       
+     { 
        ECORE_MAGIC_SET(svr, ECORE_MAGIC_NONE);
        while (svr->clients)
          ecore_ipc_client_del((Ecore_Ipc_Client *)svr->clients);
        ecore_con_server_del(svr->server);
        servers = _ecore_list2_remove(servers, svr);
        if (svr->buf) free(svr->buf);
+       ecore_list_destroy(svr->client_list);
        free(svr);
      }
    return data;
@@ -503,7 +504,7 @@
                         "ecore_ipc_server_clients_get");
        return NULL;
      }
-   return svr->clients;
+   return svr->client_list;
 }
 
 #define SVENC(_member) \
@@ -971,6 +972,7 @@
        cl->max_buf_size = 32 * 1024;
        ecore_con_client_data_set(cl->client, (void *)cl);
        svr->clients = _ecore_list2_append(svr->clients, cl);
+       ecore_list_append(svr->client_list, cl);
          {
             Ecore_Ipc_Event_Client_Add *e2;
             
@@ -1001,7 +1003,12 @@
        cl = ecore_con_client_data_get(e->client);
          {
             Ecore_Ipc_Event_Client_Del *e2;
-            
+            Ecore_Ipc_Server *svr;
+
+            svr = 
ecore_con_server_data_get(ecore_con_client_server_get(e->client));
+            ecore_list_goto(svr->client_list, cl);
+            ecore_list_remove(svr->client_list);
+            ecore_list_goto_first(svr->client_list);
             e2 = calloc(1, sizeof(Ecore_Ipc_Event_Client_Del));
             if (e2)
               {
===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_ipc/ecore_ipc_private.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- ecore_ipc_private.h 20 Mar 2006 05:53:12 -0000      1.9
+++ ecore_ipc_private.h 30 Mar 2006 14:01:04 -0000      1.10
@@ -59,6 +59,7 @@
    ECORE_MAGIC;
    Ecore_Con_Server *server;
    Ecore_Ipc_Client *clients;
+   Ecore_List       *client_list;
    void              *data;
    unsigned char     *buf;
    int                buf_size;




-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to