Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/ecore

Dir     : e17/libs/ecore/src/bin


Modified Files:
      Tag: SPLIT
        Makefile.am ecore_test.c 


Log Message:


ecore_ipc module added - parses ipc "chunks" and just give you entire ipc
decoded chunks. currenly all ipc messages are of the format:
DWORD major_opcode
DWORD minor_opcode
DWORD payload_data_byte_size
[payload data]
... next chunk
etc.
this gives 64 bits of address space for ipc calls (32 + 32) and you can have
up to 2Gbytes of payload "data" attached (or 0 bytes - depending what you
want) and ecore_ipc does the endianess translations of the major & minor
opcodes and size amount for you. the data payload is opaque and its up to the
app to do any bit swizzling there.

but it seems to work... all hail IPC! :)

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/bin/Attic/Makefile.am,v
retrieving revision 1.1.2.12
retrieving revision 1.1.2.13
diff -u -3 -r1.1.2.12 -r1.1.2.13
--- Makefile.am 12 Mar 2003 23:53:32 -0000      1.1.2.12
+++ Makefile.am 26 Mar 2003 07:54:47 -0000      1.1.2.13
@@ -30,6 +30,12 @@
 ECORE_CON_LIB =
 endif
 
+if BUILD_ECORE_IPC
+ECORE_IPC_LIB = $(top_builddir)/src/lib/ecore_ipc/libecore_ipc.la
+else
+ECORE_IPC_LIB =
+endif
+
 INCLUDES = \
 -I$(top_srcdir)/src/lib/ecore \
 -I$(top_srcdir)/src/lib/ecore_evas \
@@ -37,6 +43,7 @@
 -I$(top_srcdir)/src/lib/ecore_fb \
 -I$(top_srcdir)/src/lib/ecore_job \
 -I$(top_srcdir)/src/lib/ecore_con \
+-I$(top_srcdir)/src/lib/ecore_ipc \
 @evas_cflags@ \
 @x_cflags@
 
@@ -54,6 +61,7 @@
 $(ECORE_X_LIB) \
 $(ECORE_EVAS_LIB) \
 $(ECORE_CON_LIB) \
+$(ECORE_IPC_LIB) \
 -lm
 
 ecore_test_LDFLAGS =
@@ -68,7 +76,8 @@
 $(ECORE_FB_LIB) \
 $(ECORE_X_LIB) \
 $(ECORE_EVAS_LIB) \
-$(ECORE_CON_LIB)
+$(ECORE_CON_LIB) \
+$(ECORE_IPC_LIB)
 
 ecore_evas_test_SOURCES = \
 ecore_evas_test.c \
@@ -84,6 +93,7 @@
 $(ECORE_X_LIB) \
 $(ECORE_EVAS_LIB) \
 $(ECORE_CON_LIB) \
+$(ECORE_IPC_LIB) \
 -lm
 
 ecore_evas_test_LDFLAGS =
@@ -98,4 +108,5 @@
 $(ECORE_FB_LIB) \
 $(ECORE_X_LIB) \
 $(ECORE_EVAS_LIB) \
-$(ECORE_CON_LIB)
+$(ECORE_CON_LIB) \
+$(ECORE_IPC_LIB)
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/bin/Attic/ecore_test.c,v
retrieving revision 1.1.2.34
retrieving revision 1.1.2.35
diff -u -3 -r1.1.2.34 -r1.1.2.35
--- ecore_test.c        17 Mar 2003 13:06:07 -0000      1.1.2.34
+++ ecore_test.c        26 Mar 2003 07:54:47 -0000      1.1.2.35
@@ -15,6 +15,9 @@
 #ifdef BUILD_ECORE_CON
 #include "Ecore_Con.h"
 #endif
+#ifdef BUILD_ECORE_IPC
+#include "Ecore_Ipc.h"
+#endif
 
 #include <math.h>
 
@@ -34,7 +37,89 @@
    return 1;
 }
 
-/**** ECORE TEST CODE */
+
+
+
+
+
+int
+handler_ipc_client_add(int type, void *event, void *data)
+{
+   Ecore_Ipc_Event_Client_Add *e;
+   
+   e = event;
+   printf("!!! client %p connected to server!\n", e->client);
+   return 1;
+}
+
+int
+handler_ipc_client_del(int type, void *event, void *data)
+{
+   Ecore_Ipc_Event_Client_Del *e;
+   
+   e = event;
+   printf("!!! client %p disconnected from server!\n", e->client);
+   return 1;
+}
+
+
+int
+handler_ipc_client_data(int type, void *event, void *data)
+{
+   Ecore_Ipc_Event_Client_Data *e;
+   
+   e = event;
+   printf("!!! client sent: [%i] [%i] (%i) \"%s\"\n", e->major, e->minor, e->size, 
e->data);
+   ecore_ipc_client_send(e->client, 1, 2, "ABC", 4);
+   /* we can disconnect a client like this: */
+   /* ecore_ipc_client_del(e->client); */
+   /* or we can end a server by: */
+   /* ecore_ipc_server_del(ecore_ipc_client_server_get(e->client)); */
+   return 1;
+}
+
+
+int
+handler_ipc_server_add(int type, void *event, void *data)
+{
+   Ecore_Ipc_Event_Server_Add *e;
+   
+   e = event;
+   printf("!!! client made successful connect to server %p!\n", e->server);
+   return 1;
+}
+
+int
+handler_ipc_server_del(int type, void *event, void *data)
+{
+   Ecore_Ipc_Event_Server_Del *e;
+   
+   e = event;
+   printf("!!! server went away!\n");
+   /* clean up our server connection since it went away */
+   ecore_ipc_server_del(e->server);
+   return 1;
+}
+
+int
+handler_ipc_server_data(int type, void *event, void *data)
+{
+   Ecore_Ipc_Event_Server_Data *e;
+   static int count = 0;
+   
+   e = event;
+   printf("!!! server sent: [%i] [%i] (%i) \"%s\"\n", e->major, e->minor, e->size, 
e->data);
+   ecore_ipc_server_send(e->server, 3, 4, "EFG", 4);
+   count++;
+   if (count > 4)
+     {
+       printf("!!! go & disconnect from server!\n");
+       ecore_ipc_server_del(e->server);
+     }
+   return 1;
+}
+
+/**** ECORE_CON TEST CODE */
 int
 handler_client_add(int type, void *event, void *data)
 {
@@ -154,7 +239,7 @@
 {
    ecore_idle_enterer_add(idle_enterer, NULL);
 /*   ecore_idler_add(idler, NULL); */
-   ecore_timer_add(1.0, timer, NULL);
+   ecore_timer_add(2.0, timer, NULL);
 }
 
 #ifdef BUILD_ECORE_X
@@ -546,6 +631,7 @@
 #endif
 
 #ifdef BUILD_ECORE_CON 
+#if 0   
    /* init ecore_con */
    ecore_con_init();
      {
@@ -576,6 +662,41 @@
             ecore_con_server_send(server, data, 160 * 1024);
          }
      }
+#endif   
+#endif
+
+#ifdef BUILD_ECORE_IPC
+#if 1   
+   /* init ecore_ipc */
+   ecore_ipc_init();
+     {
+       Ecore_Ipc_Server *server;
+       
+       server = ecore_ipc_server_add(ECORE_IPC_LOCAL_SYSTEM, "ecore_ipc_test", 0, 
NULL);
+/*     server = ecore_ipc_server_add(ECORE_IPC_REMOTE_SYSTEM, "localhost", 4567, 
NULL); */
+       ecore_event_handler_add(ECORE_IPC_EVENT_CLIENT_ADD, handler_ipc_client_add, 
NULL);
+       ecore_event_handler_add(ECORE_IPC_EVENT_CLIENT_DEL, handler_ipc_client_del, 
NULL);
+       ecore_event_handler_add(ECORE_IPC_EVENT_CLIENT_DATA, handler_ipc_client_data, 
NULL);
+       printf("create ipc server %p\n", server);
+     }
+     {
+       Ecore_Ipc_Server *server;
+       
+       server = ecore_ipc_server_connect(ECORE_IPC_LOCAL_SYSTEM, "ecore_ipc_test", 0, 
NULL);
+/*     server = ecore_ipc_server_connect(ECORE_IPC_REMOTE_SYSTEM, "localhost", 4567, 
NULL); */
+       ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_ADD, handler_ipc_server_add, 
NULL);
+       ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_DEL, handler_ipc_server_del, 
NULL);
+       ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_DATA, handler_ipc_server_data, 
NULL);
+       printf("connect to ipc server: %p\n", server);
+       if (server)
+         {
+            char data[160 * 1024];
+            
+            strcpy(data, "BLAHPANTS!");
+            ecore_ipc_server_send(server, 5, 6, data, 160 * 1024);
+         }
+     }
+#endif   
 #endif
    
 #ifdef BUILD_ECORE_EVAS   
@@ -604,6 +725,10 @@
    /* shut down ecore_evas */
    ecore_evas_shutdown();
 #endif   
+#ifdef BUILD_ECORE_IPC
+   /* shut down ecore_ipc */
+   ecore_ipc_shutdown();
+#endif
 #ifdef BUILD_ECORE_CON 
    /* shut down ecore_con */
    ecore_con_shutdown();




-------------------------------------------------------
This SF.net email is sponsored by:
The Definitive IT and Networking Event. Be There!
NetWorld+Interop Las Vegas 2003 -- Register today!
http://ads.sourceforge.net/cgi-bin/redirect.pl?keyn0001en
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to