barbieri pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=9805f4ec36cf329159a974737d7f37c6204ee671

commit 9805f4ec36cf329159a974737d7f37c6204ee671
Author: Gustavo Sverzut Barbieri <barbi...@profusion.mobi>
Date:   Wed Nov 23 22:35:48 2016 -0200

    ecore_ipc: isolate legacy within ifdefs.
    
    Compile out the legacy code when running on platforms that support
    Efl.Net.Dialer.Unix and Efl.Net.Server.Unix.
---
 src/lib/ecore_ipc/ecore_ipc.c         | 78 ++++++++++++++++++++++++++++++-----
 src/lib/ecore_ipc/ecore_ipc_private.h |  7 ++++
 2 files changed, 75 insertions(+), 10 deletions(-)

diff --git a/src/lib/ecore_ipc/ecore_ipc.c b/src/lib/ecore_ipc/ecore_ipc.c
index 15f8edd..e227251 100644
--- a/src/lib/ecore_ipc/ecore_ipc.c
+++ b/src/lib/ecore_ipc/ecore_ipc.c
@@ -199,12 +199,16 @@ _ecore_ipc_ddlt_int(int in, int prev, int mode)
    return 0;
 }
 
+/* EFL_NET_SERVER_UNIX_CLASS and EFL_NET_DIALER_UNIX_CLASS should be defined 
at the same time, we're only checking for EFL_NET_SERVER_UNIX_CLASS in shared 
blocks */
+#ifndef EFL_NET_SERVER_UNIX_CLASS
 static Eina_Bool _ecore_ipc_event_client_add(void *data, int ev_type, void 
*ev);
 static Eina_Bool _ecore_ipc_event_client_del(void *data, int ev_type, void 
*ev);
 static Eina_Bool _ecore_ipc_event_server_add(void *data, int ev_type, void 
*ev);
 static Eina_Bool _ecore_ipc_event_server_del(void *data, int ev_type, void 
*ev);
 static Eina_Bool _ecore_ipc_event_client_data(void *data, int ev_type, void 
*ev);
 static Eina_Bool _ecore_ipc_event_server_data(void *data, int ev_type, void 
*ev);
+#endif
+
 static void _ecore_ipc_event_client_add_free(void *data, void *ev);
 static void _ecore_ipc_event_client_del_free(void *data, void *ev);
 static void _ecore_ipc_event_client_data_free(void *data, void *ev);
@@ -221,7 +225,10 @@ EAPI int ECORE_IPC_EVENT_SERVER_DATA = 0;
 
 static int                  _ecore_ipc_init_count = 0;
 static Eina_List           *servers = NULL;
+
+#ifndef EFL_NET_SERVER_UNIX_CLASS
 static Ecore_Event_Handler *handler[6];
+#endif
 
 static void
 ecore_ipc_post_event_server_add(Ecore_Ipc_Server *svr)
@@ -306,7 +313,9 @@ ecore_ipc_client_add(Ecore_Ipc_Server *svr)
 EAPI int
 ecore_ipc_init(void)
 {
+#ifndef EFL_NET_SERVER_UNIX_CLASS
    int i = 0;
+#endif
 
    if (++_ecore_ipc_init_count != 1)
      return _ecore_ipc_init_count;
@@ -327,6 +336,7 @@ ecore_ipc_init(void)
    ECORE_IPC_EVENT_CLIENT_DATA = ecore_event_type_new();
    ECORE_IPC_EVENT_SERVER_DATA = ecore_event_type_new();
 
+#ifndef EFL_NET_SERVER_UNIX_CLASS
    handler[i++] = ecore_event_handler_add(ECORE_CON_EVENT_CLIENT_ADD,
                                           _ecore_ipc_event_client_add, NULL);
    handler[i++] = ecore_event_handler_add(ECORE_CON_EVENT_CLIENT_DEL,
@@ -339,13 +349,16 @@ ecore_ipc_init(void)
                                           _ecore_ipc_event_client_data, NULL);
    handler[i] = ecore_event_handler_add(ECORE_CON_EVENT_SERVER_DATA,
                                           _ecore_ipc_event_server_data, NULL);
+#endif
    return _ecore_ipc_init_count;
 }
 
 EAPI int
 ecore_ipc_shutdown(void)
 {
+#ifndef EFL_NET_SERVER_UNIX_CLASS
    int i;
+#endif
 
    if (--_ecore_ipc_init_count != 0)
      return _ecore_ipc_init_count;
@@ -355,8 +368,10 @@ ecore_ipc_shutdown(void)
    EINA_LIST_FOREACH_SAFE(servers, l, l2, svr)
      ecore_ipc_server_del(svr);
 
+#ifndef EFL_NET_SERVER_UNIX_CLASS
    for (i = 0; i < 6; i++)
      ecore_event_handler_del(handler[i]);
+#endif
 
    ecore_con_shutdown();
    eina_log_domain_unregister(_ecore_ipc_log_dom);
@@ -384,7 +399,7 @@ EFL_CALLBACKS_ARRAY_DEFINE(_ecore_ipc_server_cbs,
 
 #ifndef EFL_NET_SERVER_UNIX_CLASS
 static Ecore_Ipc_Server *
-ecore_ipc_server_add_legacy(Ecore_Ipc_Type compl_type, char *name, int port, 
const void *data)
+ecore_ipc_server_add_legacy(Ecore_Ipc_Type compl_type, const char *name, int 
port, const void *data)
 {
    Ecore_Ipc_Server *svr;
    Ecore_Ipc_Type type;
@@ -915,7 +930,9 @@ ecore_ipc_server_del(Ecore_Ipc_Server *svr)
 
         if (svr->dialer.dialer) _ecore_ipc_dialer_del(svr);
         if (svr->server) _ecore_ipc_server_del(svr);
+#ifndef EFL_NET_SERVER_UNIX_CLASS
         if (svr->legacy_server) ecore_con_server_del(svr->legacy_server);
+#endif
         servers = eina_list_remove(servers, svr);
 
         if (svr->buf) free(svr->buf);
@@ -952,9 +969,13 @@ ecore_ipc_server_connected_get(Ecore_Ipc_Server *svr)
    if (svr->dialer.dialer)
      return efl_net_dialer_connected_get(svr->dialer.dialer);
    else if (svr->server) return EINA_TRUE;
+#ifndef EFL_NET_SERVER_UNIX_CLASS
    else if (!svr->legacy_server) return EINA_FALSE;
 
    return ecore_con_server_connected_get(svr->legacy_server);
+#else
+   return EINA_FALSE;
+#endif
 }
 
 EAPI Eina_List *
@@ -1006,7 +1027,6 @@ EAPI int
 ecore_ipc_server_send(Ecore_Ipc_Server *svr, int major, int minor, int ref, 
int ref_to, int response, const void *data, int size)
 {
    Ecore_Ipc_Msg_Head msg;
-   int ret;
    int *head, md = 0, d, s;
    unsigned char dat[sizeof(Ecore_Ipc_Msg_Head)];
 
@@ -1084,11 +1104,19 @@ ecore_ipc_server_send(Ecore_Ipc_Server *svr, int major, 
int minor, int ref, int
         ERR("Send data to clients, not the server handle");
         return 0;
      }
+#ifndef EFL_NET_SERVER_UNIX_CLASS
    else if (!svr->legacy_server) return 0;
 
-   ret = ecore_con_server_send(svr->legacy_server, dat, s);
-   if (size > 0) ret += ecore_con_server_send(svr->legacy_server, data, size);
-   return ret;
+   {
+      int ret;
+
+      ret = ecore_con_server_send(svr->legacy_server, dat, s);
+      if (size > 0) ret += ecore_con_server_send(svr->legacy_server, data, 
size);
+      return ret;
+   }
+#else
+   return 0;
+#endif
 }
 
 EAPI void
@@ -1105,8 +1133,10 @@ ecore_ipc_server_client_limit_set(Ecore_Ipc_Server *svr, 
int client_limit, char
         efl_net_server_clients_limit_set(svr->server, client_limit, 
reject_excess_clients);
         return;
      }
+#ifndef EFL_NET_SERVER_UNIX_CLASS
    else if (!svr->legacy_server) return;
    ecore_con_server_client_limit_set(svr->legacy_server, client_limit, 
reject_excess_clients);
+#endif
 }
 
 EAPI void
@@ -1159,9 +1189,13 @@ ecore_ipc_server_ip_get(Ecore_Ipc_Server *svr)
         /* original IPC just returned IP for remote connections */
         return NULL;
      }
+#ifndef EFL_NET_SERVER_UNIX_CLASS
    else if (!svr->legacy_server) return NULL;
 
    return ecore_con_server_ip_get(svr->legacy_server);
+#else
+   return NULL;
+#endif
 }
 
 EAPI void
@@ -1184,9 +1218,11 @@ ecore_ipc_server_flush(Ecore_Ipc_Server *svr)
         ERR("Flush clients, not the server handle");
         return;
      }
+#ifndef EFL_NET_SERVER_UNIX_CLASS
    else if (!svr->legacy_server) return;
 
    ecore_con_server_flush(svr->legacy_server);
+#endif
 }
 
 #define CLENC(_member) \
@@ -1226,7 +1262,6 @@ EAPI int
 ecore_ipc_client_send(Ecore_Ipc_Client *cl, int major, int minor, int ref, int 
ref_to, int response, const void *data, int size)
 {
    Ecore_Ipc_Msg_Head msg;
-   int ret;
    int *head, md = 0, d, s;
    unsigned char dat[sizeof(Ecore_Ipc_Msg_Head)];
 
@@ -1238,8 +1273,10 @@ ecore_ipc_client_send(Ecore_Ipc_Client *cl, int major, 
int minor, int ref, int r
      }
    if (cl->socket.socket)
      
EINA_SAFETY_ON_TRUE_RETURN_VAL(efl_io_closer_closed_get(cl->socket.socket), 0);
+#ifndef EFL_NET_SERVER_UNIX_CLASS
    else if (cl->client)
      
EINA_SAFETY_ON_TRUE_RETURN_VAL(!ecore_con_client_connected_get(cl->client), 0);
+#endif
    else
      {
         ERR("client %p is not connected", cl);
@@ -1309,11 +1346,19 @@ ecore_ipc_client_send(Ecore_Ipc_Client *cl, int major, 
int minor, int ref, int r
 
         return s + size;
      }
+#ifndef EFL_NET_SERVER_UNIX_CLASS
    else if (!cl->client) return 0;
 
-   ret = ecore_con_client_send(cl->client, dat, s);
-   if (size > 0) ret += ecore_con_client_send(cl->client, data, size);
-   return ret;
+   {
+      int ret;
+
+      ret = ecore_con_client_send(cl->client, dat, s);
+      if (size > 0) ret += ecore_con_client_send(cl->client, data, size);
+      return ret;
+   }
+#else
+   return 0;
+#endif
 }
 
 EAPI Ecore_Ipc_Server *
@@ -1482,7 +1527,9 @@ ecore_ipc_client_del(Ecore_Ipc_Client *cl)
      {
         svr = cl->svr;
         if (cl->socket.socket) _ecore_ipc_client_socket_del(cl);
+#ifndef EFL_NET_SERVER_UNIX_CLASS
         if (cl->client) ecore_con_client_del(cl->client);
+#endif
         if (ECORE_MAGIC_CHECK(svr, ECORE_MAGIC_IPC_SERVER))
           svr->clients = eina_list_remove(svr->clients, cl);
         if (cl->buf) free(cl->buf);
@@ -1559,9 +1606,13 @@ ecore_ipc_client_ip_get(Ecore_Ipc_Client *cl)
          */
         return "0.0.0.0";
      }
+#ifndef EFL_NET_SERVER_UNIX_CLASS
    else if (!cl->client) return NULL;
 
    return ecore_con_client_ip_get(cl->client);
+#else
+   return NULL;
+#endif
 }
 
 EAPI void
@@ -1579,9 +1630,11 @@ ecore_ipc_client_flush(Ecore_Ipc_Client *cl)
           efl_io_copier_flush(cl->socket.send_copier);
         return;
      }
+#ifndef EFL_NET_SERVER_UNIX_CLASS
    else if (!cl->client) return;
 
    ecore_con_client_flush(cl->client);
+#endif
 }
 
 EAPI int
@@ -1590,7 +1643,7 @@ ecore_ipc_ssl_available_get(void)
    return ecore_con_ssl_available_get();
 }
 
-
+#ifndef EFL_NET_SERVER_UNIX_CLASS
 static Eina_Bool
 _ecore_ipc_event_client_add(void *data EINA_UNUSED, int ev_type EINA_UNUSED, 
void *ev)
 {
@@ -1672,6 +1725,7 @@ _ecore_ipc_event_server_del(void *data EINA_UNUSED, int 
ev_type EINA_UNUSED, voi
      }
    return ECORE_CALLBACK_CANCEL;
 }
+#endif
 
 #define CLSZ(_n) \
    md = ((head >> (4 * _n)) & 0xf); \
@@ -1865,6 +1919,7 @@ ecore_ipc_client_data_process(Ecore_Ipc_Client *cl, void 
*data, int size, Eina_B
    return ECORE_CALLBACK_CANCEL;
 }
 
+#ifndef EFL_NET_SERVER_UNIX_CLASS
 static Eina_Bool
 _ecore_ipc_event_client_data(void *data EINA_UNUSED, int ev_type EINA_UNUSED, 
void *ev)
 {
@@ -1890,6 +1945,7 @@ _ecore_ipc_event_client_data(void *data EINA_UNUSED, int 
ev_type EINA_UNUSED, vo
      }
    return ECORE_CALLBACK_CANCEL;
 }
+#endif
 
 #define SVSZ(_n) \
    md = ((head >> (4 * _n)) & 0xf); \
@@ -2087,6 +2143,7 @@ ecore_ipc_server_data_process(Ecore_Ipc_Server *svr, void 
*data, int size, Eina_
    return ECORE_CALLBACK_CANCEL;
 }
 
+#ifndef EFL_NET_SERVER_UNIX_CLASS
 static Eina_Bool
 _ecore_ipc_event_server_data(void *data EINA_UNUSED, int ev_type EINA_UNUSED, 
void *ev)
 {
@@ -2111,6 +2168,7 @@ _ecore_ipc_event_server_data(void *data EINA_UNUSED, int 
ev_type EINA_UNUSED, vo
      }
    return ECORE_CALLBACK_CANCEL;
 }
+#endif
 
 static void
 _ecore_ipc_event_client_add_free(void *data EINA_UNUSED, void *ev)
diff --git a/src/lib/ecore_ipc/ecore_ipc_private.h 
b/src/lib/ecore_ipc/ecore_ipc_private.h
index baf71fd..8df0594 100644
--- a/src/lib/ecore_ipc/ecore_ipc_private.h
+++ b/src/lib/ecore_ipc/ecore_ipc_private.h
@@ -74,7 +74,11 @@ struct _Ecore_Ipc_Client
       Eo *send_copier;
    } socket;
 
+#ifndef EFL_NET_SERVER_UNIX_CLASS
+   /* legacy until Windows and others have their local socket */
    Ecore_Con_Client  *client;
+#endif
+
    Ecore_Ipc_Server  *svr;
    void              *data;
    unsigned char     *buf;
@@ -103,7 +107,10 @@ struct _Ecore_Ipc_Server
 
    Eo *server;
 
+#ifndef EFL_NET_SERVER_UNIX_CLASS
    Ecore_Con_Server *legacy_server;
+#endif
+
    Eina_List        *clients;
    void              *data;
    unsigned char     *buf;

-- 


Reply via email to