Modules | Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
Ecore_IPC - Ecore inter-process communication functions.

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

Modules

 IPC Server Functions
 Functions the deal with IPC server objects.
 
 IPC Client Functions
 Functions that deal with IPC client objects.
 

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. More...
 
EAPI int ecore_ipc_shutdown (void)
 Shuts down the Ecore IPC library. More...
 

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,
 
)
Value:
{ \
strcpy((char *)ptr, p->v); \
ptr += l + 1; \
}

◆ ECORE_IPC_DEC_STRUCT_HEAD_EXACT

#define ECORE_IPC_DEC_STRUCT_HEAD_EXACT (   typ,
 
)
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,
 
)
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));

◆ 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;
Type for a generic double linked list.
Definition: eina_list.h:318
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(), 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_event_type_flush, ecore_ipc_server_del(), and EINA_LIST_FOREACH_SAFE.