Ecore_IPC - Ecore inter-process communication functions.

Topics

 IPC Server Functions
 
 
 IPC Client Functions
 
 

Data Structures

struct  _Ecore_Ipc_Event_Client_Add
 An IPC structure for client_add event. More...
 
struct  _Ecore_Ipc_Event_Client_Del
 An IPC structure for client_del event. More...
 
struct  _Ecore_Ipc_Event_Server_Add
 An IPC structure for server_add event. More...
 
struct  _Ecore_Ipc_Event_Server_Del
 An IPC structure for server_del event. More...
 
struct  _Ecore_Ipc_Event_Client_Data
 An IPC structure for client_data event. More...
 
struct  _Ecore_Ipc_Event_Server_Data
 An IPC structure for server_data event. More...
 

Macros

#define ECORE_IPC_SWAP2NET64(x)   (x)
 
#define ECORE_IPC_SWAP2CPU64(x)   (x)
 
#define ECORE_IPC_SWAP2NET32(x)   (x)
 
#define ECORE_IPC_SWAP2CPU32(x)   (x)
 
#define ECORE_IPC_SWAP2NET16(x)   (x)
 
#define ECORE_IPC_SWAP2CPU16(x)   (x)
 
#define ECORE_IPC_SWAP2NET8(x)   (x)
 
#define ECORE_IPC_SWAP2CPU8(x)   (x)
 
#define ECORE_IPC_GET64(v)
 
#define ECORE_IPC_GET32(v)
 
#define ECORE_IPC_GET16(v)
 
#define ECORE_IPC_GET8(v)
 
#define ECORE_IPC_PUT64(v)
 
#define ECORE_IPC_PUT32(v)
 
#define ECORE_IPC_PUT16(v)
 
#define ECORE_IPC_PUT8(v)
 
#define ECORE_IPC_PAD8()   ptr += 1
 
#define ECORE_IPC_PAD16()   ptr += 2
 
#define ECORE_IPC_PAD32()   ptr += 4
 
#define ECORE_IPC_PAD64()   ptr += 8
 
#define ECORE_IPC_CNT8()   len += 1
 
#define ECORE_IPC_CNT16()   len += 2
 
#define ECORE_IPC_CNT32()   len += 4
 
#define ECORE_IPC_CNT64()   len += 8
 
#define ECORE_IPC_CHEKS()   if (*((unsigned char *)d + s - 1) != 0) return 0;
 
#define ECORE_IPC_GETS(v)
 
#define ECORE_IPC_PUTS(v, l)
 
#define ECORE_IPC_SLEN(l, v)   ((l = strlen(p->v)) + 1)
 
#define ECORE_IPC_CNTS(v)   len += strlen(p->v) + 1
 
#define ECORE_IPC_DEC_STRUCT_PROTO(x)   static int x(void *d, int s, void *pp)
 
#define ECORE_IPC_ENC_STRUCT_PROTO(x)   static void *x(void *pp, int *s)
 
#define ECORE_IPC_DEC_EINA_LIST_PROTO(x)   static Eina_List *x(void *d, int s)
 
#define ECORE_IPC_ENC_EINA_LIST_PROTO(x)   static void *x(Eina_List *lp, int *s)
 
#define ECORE_IPC_DEC_STRUCT_HEAD_EXACT(typ, x)
 
#define ECORE_IPC_DEC_STRUCT_HEAD_MIN(typ, x)
 
#define ECORE_IPC_DEC_STRUCT_FOOT()   return 1
 
#define ECORE_IPC_ENC_STRUCT_HEAD(typ, sz)
 
#define ECORE_IPC_ENC_STRUCT_FOOT()   return d
 
#define ECORE_IPC_DEC_EINA_LIST_HEAD(typ)
 
#define ECORE_IPC_DEC_EINA_LIST_FOOT()
 
#define ECORE_IPC_ENC_EINA_LIST_HEAD_START(typ)
 
#define ECORE_IPC_ENC_EINA_LIST_HEAD_FINISH()
 
#define ECORE_IPC_ENC_EINA_LIST_FOOT()
 
#define EAPI
 
#define EAPI
 

Typedefs

typedef struct _Ecore_Ipc_Server Ecore_Ipc_Server
 An IPC connection handle.
 
typedef struct _Ecore_Ipc_Client Ecore_Ipc_Client
 An IPC connection handle.
 
typedef enum _Ecore_Ipc_Type Ecore_Ipc_Type
 Enum containing IPC types.
 
typedef struct _Ecore_Ipc_Event_Client_Add Ecore_Ipc_Event_Client_Add
 
typedef struct _Ecore_Ipc_Event_Client_Del Ecore_Ipc_Event_Client_Del
 
typedef struct _Ecore_Ipc_Event_Server_Add Ecore_Ipc_Event_Server_Add
 
typedef struct _Ecore_Ipc_Event_Server_Del Ecore_Ipc_Event_Server_Del
 
typedef struct _Ecore_Ipc_Event_Client_Data Ecore_Ipc_Event_Client_Data
 
typedef struct _Ecore_Ipc_Event_Server_Data Ecore_Ipc_Event_Server_Data
 

Enumerations

enum  _Ecore_Ipc_Type {
  ECORE_IPC_LOCAL_USER ,
  ECORE_IPC_LOCAL_SYSTEM ,
  ECORE_IPC_REMOTE_SYSTEM ,
  ECORE_IPC_USE_SSL = (1 << 4) ,
  ECORE_IPC_NO_PROXY = (1 << 5)
}
 

Functions

EAPI unsigned short _ecore_ipc_swap_16 (unsigned short v) EINA_DEPRECATED
 
EAPI unsigned int _ecore_ipc_swap_32 (unsigned int v) EINA_DEPRECATED
 
EAPI unsigned long long _ecore_ipc_swap_64 (unsigned long long v) EINA_DEPRECATED
 
EAPI int ecore_ipc_init (void)
 Initializes the Ecore IPC library.
 
EAPI int ecore_ipc_shutdown (void)
 Shuts down the Ecore IPC library.
 

Variables

EAPI int ECORE_IPC_EVENT_CLIENT_ADD
 
EAPI int ECORE_IPC_EVENT_CLIENT_DEL
 
EAPI int ECORE_IPC_EVENT_SERVER_ADD
 
EAPI int ECORE_IPC_EVENT_SERVER_DEL
 
EAPI int ECORE_IPC_EVENT_CLIENT_DATA
 
EAPI int ECORE_IPC_EVENT_SERVER_DATA
 

Detailed Description

Functions that set up and shut down the Ecore IPC Library.

Macro Definition Documentation

◆ ECORE_IPC_GET64

#define ECORE_IPC_GET64 ( v)
Value:
{ \
p->v = ECORE_IPC_SWAP2CPU64(*(long long *)(ptr)); \
ptr += 8; \
}

◆ ECORE_IPC_GET32

#define ECORE_IPC_GET32 ( v)
Value:
{ \
p->v = ECORE_IPC_SWAP2CPU32(*(int *)(ptr)); \
ptr += 4; \
}

◆ ECORE_IPC_GET16

#define ECORE_IPC_GET16 ( v)
Value:
{ \
p->v = ECORE_IPC_SWAP2CPU16(*(short *)(ptr)); \
ptr += 2; \
}

◆ ECORE_IPC_GET8

#define ECORE_IPC_GET8 ( v)
Value:
{ \
p->v = ECORE_IPC_SWAP2CPU8(*(char *)(ptr)); \
ptr += 1; \
}

◆ ECORE_IPC_PUT64

#define ECORE_IPC_PUT64 ( v)
Value:
{ \
*(long long *)(ptr) = ECORE_IPC_SWAP2NET64(p->v); \
ptr += 8; \
}

◆ ECORE_IPC_PUT32

#define ECORE_IPC_PUT32 ( v)
Value:
{ \
*(int *)(ptr) = ECORE_IPC_SWAP2NET32(p->v); \
ptr += 4; \
}

◆ ECORE_IPC_PUT16

#define ECORE_IPC_PUT16 ( v)
Value:
{ \
*(short *)(ptr) = ECORE_IPC_SWAP2NET16(p->v); \
ptr += 2; \
}

◆ ECORE_IPC_PUT8

#define ECORE_IPC_PUT8 ( v)
Value:
{ \
*(char *)(ptr) = ECORE_IPC_SWAP2NET8(p->v); \
ptr += 1; \
}

◆ ECORE_IPC_GETS

#define ECORE_IPC_GETS ( v)
Value:
{ \
if (ptr < ((unsigned char *)d + s)) \
{ \
p->v = (char *)ptr; \
ptr += strlen(p->v) + 1; \
} \
}

◆ ECORE_IPC_PUTS

#define ECORE_IPC_PUTS ( v,
l )
Value:
{ \
strcpy((char *)ptr, p->v); \
ptr += l + 1; \
}

◆ ECORE_IPC_DEC_STRUCT_HEAD_EXACT

#define ECORE_IPC_DEC_STRUCT_HEAD_EXACT ( typ,
x )
Value:
typ *p; \
unsigned char *ptr; \
p = (typ *)pp; \
if (!d) return 0; if (s != (x)) return 0; \
ptr = d;

◆ ECORE_IPC_DEC_STRUCT_HEAD_MIN

#define ECORE_IPC_DEC_STRUCT_HEAD_MIN ( typ,
x )
Value:
typ *p; \
unsigned char *ptr; \
p = (typ *)pp; \
if (!d) return 0; if (s < (x)) return 0; \
ptr = d;

◆ ECORE_IPC_ENC_STRUCT_HEAD

#define ECORE_IPC_ENC_STRUCT_HEAD ( typ,
sz )
Value:
typ *p; \
unsigned char *d, *ptr; \
int len; \
*s = 0; \
if(!pp) return NULL; \
p = (typ *)pp; \
len = sz; \
d = malloc(len); \
if (!d) return NULL; \
*s = len; \
ptr = d;

◆ ECORE_IPC_DEC_EINA_LIST_HEAD

#define ECORE_IPC_DEC_EINA_LIST_HEAD ( typ)
Value:
unsigned char *ptr; \
Eina_List *l; \
typ *p; \
l = NULL; \
ptr = d; \
while(ptr < (unsigned char *)(d + s)) \
{ \
p = malloc(sizeof(typ));
Type for a generic double linked list.
Definition eina_list.h:318

◆ ECORE_IPC_DEC_EINA_LIST_FOOT

#define ECORE_IPC_DEC_EINA_LIST_FOOT ( )
Value:
l = eina_list_append(l, p); \
} \
return l
EINA_API Eina_List * eina_list_append(Eina_List *list, const void *data)
Appends the given data to the given linked list.
Definition eina_list.c:584

◆ ECORE_IPC_ENC_EINA_LIST_HEAD_START

#define ECORE_IPC_ENC_EINA_LIST_HEAD_START ( typ)
Value:
Eina_List *l; \
typ *p; \
unsigned char *d, *ptr; \
int len; \
*s = 0; \
len = 0; \
for (l = lp; l; l = l->next) \
{ \
p = l->data;
Eina_List * next
Next member in the list.
Definition eina_list.h:320

◆ ECORE_IPC_ENC_EINA_LIST_HEAD_FINISH

#define ECORE_IPC_ENC_EINA_LIST_HEAD_FINISH ( )
Value:
} \
d = malloc(len); \
if(!d) return NULL; \
*s = len; \
ptr = d; \
for (l = lp; l; l = l->next) \
{ \
p = l->data;

◆ ECORE_IPC_ENC_EINA_LIST_FOOT

#define ECORE_IPC_ENC_EINA_LIST_FOOT ( )
Value:
} \
return d

Function Documentation

◆ ecore_ipc_init()

EAPI int ecore_ipc_init ( void )

Initializes the Ecore IPC library.

Returns
Number of times the library has been initialised without being shut down.

References ecore_con_init(), ecore_event_type_new(), eina_log_domain_register(), eina_log_domain_unregister(), and EINA_LOG_ERR.

◆ ecore_ipc_shutdown()

EAPI int ecore_ipc_shutdown ( void )

Shuts down the Ecore IPC library.

Returns
Number of times the library has been initialised without being shut down.

References ecore_con_shutdown(), ecore_event_type_flush, ecore_ipc_server_del(), EINA_LIST_FOREACH_SAFE, and eina_log_domain_unregister().