Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore
Dir : e17/libs/ecore/src/lib/ecore_con Modified Files: Tag: SPLIT Ecore_Con.h ecore_con.c ecore_con_private.h 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/lib/ecore_con/Attic/Ecore_Con.h,v retrieving revision 1.1.2.4 retrieving revision 1.1.2.5 diff -u -3 -r1.1.2.4 -r1.1.2.5 --- Ecore_Con.h 17 Mar 2003 13:19:07 -0000 1.1.2.4 +++ Ecore_Con.h 26 Mar 2003 07:54:47 -0000 1.1.2.5 @@ -6,15 +6,16 @@ #endif #ifndef _ECORE_CON_PRIVATE_H -typedef void Ecore_Con_Server; /**< A connection handle */ -typedef void Ecore_Con_Client; /**< A connection handle */ - -typedef enum _Ecore_Con_Type -{ - ECORE_CON_LOCAL_USER, - ECORE_CON_LOCAL_SYSTEM, - ECORE_CON_REMOTE_SYSTEM, -} Ecore_Con_Type; + typedef void Ecore_Con_Server; /**< A connection handle */ + typedef void Ecore_Con_Client; /**< A connection handle */ + + typedef enum _Ecore_Con_Type + { + ECORE_CON_LOCAL_USER, + ECORE_CON_LOCAL_SYSTEM, + ECORE_CON_REMOTE_SYSTEM, + } Ecore_Con_Type; + #endif typedef struct _Ecore_Con_Event_Client_Add Ecore_Con_Event_Client_Add; @@ -78,7 +79,9 @@ int ecore_con_client_send(Ecore_Con_Client *cl, void *data, int size); Ecore_Con_Server *ecore_con_client_server_get(Ecore_Con_Client *cl); - void ecore_con_client_del(Ecore_Con_Client *cl); + void *ecore_con_client_del(Ecore_Con_Client *cl); + void ecore_con_client_data_set(Ecore_Con_Client *cl, const void *data); + void *ecore_con_client_data_get(Ecore_Con_Client *cl); #ifdef __cplusplus } =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_con/Attic/ecore_con.c,v retrieving revision 1.1.2.7 retrieving revision 1.1.2.8 diff -u -3 -r1.1.2.7 -r1.1.2.8 --- ecore_con.c 17 Mar 2003 13:19:08 -0000 1.1.2.7 +++ ecore_con.c 26 Mar 2003 07:54:47 -0000 1.1.2.8 @@ -59,7 +59,7 @@ ECORE_CON_EVENT_CLIENT_DATA = ecore_event_type_new(); ECORE_CON_EVENT_SERVER_DATA = ecore_event_type_new(); } - return 1; + return init_count; } /** @@ -473,16 +473,56 @@ * FIXME: To be fixed. * <hr><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> */ -void +void * ecore_con_client_del(Ecore_Con_Client *cl) { + void *data; + if (!ECORE_MAGIC_CHECK(cl, ECORE_MAGIC_CON_CLIENT)) { ECORE_MAGIC_FAIL(cl, ECORE_MAGIC_CON_CLIENT, "ecore_con_client_del"); - return; + return NULL; } + data = cl->data; _ecore_con_client_free(cl); + return cl->data; +} + +/** + * To be documented. + * + * FIXME: To be fixed. + * <hr><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> + */ +void +ecore_con_client_data_set(Ecore_Con_Client *cl, const void *data) +{ + if (!ECORE_MAGIC_CHECK(cl, ECORE_MAGIC_CON_CLIENT)) + { + ECORE_MAGIC_FAIL(cl, ECORE_MAGIC_CON_CLIENT, + "ecore_con_client_data_set"); + return; + } + cl->data = (void *)data; +} + +/** + * To be documented. + * + * FIXME: To be fixed. + * <hr><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> + */ +void * +ecore_con_client_data_get(Ecore_Con_Client *cl) +{ + if (!ECORE_MAGIC_CHECK(cl, ECORE_MAGIC_CON_CLIENT)) + { + ECORE_MAGIC_FAIL(cl, ECORE_MAGIC_CON_CLIENT, + "ecore_con_client_data_get"); + return NULL; + } + return cl->data; } static void =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_con/Attic/ecore_con_private.h,v retrieving revision 1.1.2.4 retrieving revision 1.1.2.5 diff -u -3 -r1.1.2.4 -r1.1.2.5 --- ecore_con_private.h 17 Mar 2003 13:19:08 -0000 1.1.2.4 +++ ecore_con_private.h 26 Mar 2003 07:54:47 -0000 1.1.2.5 @@ -4,22 +4,23 @@ #define ECORE_MAGIC_CON_SERVER 0x77665544 #define ECORE_MAGIC_CON_CLIENT 0x77556677 +typedef struct _Ecore_Con_Client Ecore_Con_Client; +typedef struct _Ecore_Con_Server Ecore_Con_Server; + typedef enum _Ecore_Con_Type { ECORE_CON_LOCAL_USER, ECORE_CON_LOCAL_SYSTEM, - ECORE_CON_REMOTE_SYSTEM + ECORE_CON_REMOTE_SYSTEM, } Ecore_Con_Type; -typedef struct _Ecore_Con_Client Ecore_Con_Client; -typedef struct _Ecore_Con_Server Ecore_Con_Server; - struct _Ecore_Con_Client { Ecore_List __list_data; ECORE_MAGIC; int fd; Ecore_Con_Server *server; + void *data; Ecore_Fd_Handler *fd_handler; int buf_size; int buf_offset; ------------------------------------------------------- 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