Ecore_IPC - Ecore inter-process communication functions.
Ecore

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

## Topics

| 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)
#define | ECORE_IPC_SWAP2CPU64(x)
#define | ECORE_IPC_SWAP2NET32(x)
#define | ECORE_IPC_SWAP2CPU32(x)
#define | ECORE_IPC_SWAP2NET16(x)
#define | ECORE_IPC_SWAP2CPU16(x)
#define | ECORE_IPC_SWAP2NET8(x)
#define | ECORE_IPC_SWAP2CPU8(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()
#define | ECORE_IPC_PAD16()
#define | ECORE_IPC_PAD32()
#define | ECORE_IPC_PAD64()
#define | ECORE_IPC_CNT8()
#define | ECORE_IPC_CNT16()
#define | ECORE_IPC_CNT32()
#define | ECORE_IPC_CNT64()
#define | ECORE_IPC_CHEKS()
#define | ECORE_IPC_GETS(v)
#define | ECORE_IPC_PUTS(v, l)
#define | ECORE_IPC_SLEN(l, v)
#define | ECORE_IPC_CNTS(v)
#define | ECORE_IPC_DEC_STRUCT_PROTO(x)
#define | ECORE_IPC_ENC_STRUCT_PROTO(x)
#define | ECORE_IPC_DEC_EINA_LIST_PROTO(x)
#define | ECORE_IPC_ENC_EINA_LIST_PROTO(x)
#define | ECORE_IPC_DEC_STRUCT_HEAD_EXACT(typ, x)
#define | ECORE_IPC_DEC_STRUCT_HEAD_MIN(typ, x)
#define | ECORE_IPC_DEC_STRUCT_FOOT()
#define | ECORE_IPC_ENC_STRUCT_HEAD(typ, sz)
#define | ECORE_IPC_ENC_STRUCT_FOOT()
#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_SWAP2NET64

#define ECORE_IPC_SWAP2NET64 | ( |  | x | ) |

Value:
(x)

## ECORE_IPC_SWAP2CPU64

#define ECORE_IPC_SWAP2CPU64 | ( |  | x | ) |

Value:
(x)

## ECORE_IPC_SWAP2NET32

#define ECORE_IPC_SWAP2NET32 | ( |  | x | ) |

Value:
(x)

## ECORE_IPC_SWAP2CPU32

#define ECORE_IPC_SWAP2CPU32 | ( |  | x | ) |

Value:
(x)

## ECORE_IPC_SWAP2NET16

#define ECORE_IPC_SWAP2NET16 | ( |  | x | ) |

Value:
(x)

## ECORE_IPC_SWAP2CPU16

#define ECORE_IPC_SWAP2CPU16 | ( |  | x | ) |

Value:
(x)

## ECORE_IPC_SWAP2NET8

#define ECORE_IPC_SWAP2NET8 | ( |  | x | ) |

Value:
(x)

## ECORE_IPC_SWAP2CPU8

#define ECORE_IPC_SWAP2CPU8 | ( |  | x | ) |

Value:
(x)

## 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_PAD8

#define ECORE_IPC_PAD8 | ( |  | ) |

Value:
ptr += 1

## ECORE_IPC_PAD16

#define ECORE_IPC_PAD16 | ( |  | ) |

Value:
ptr += 2

## ECORE_IPC_PAD32

#define ECORE_IPC_PAD32 | ( |  | ) |

Value:
ptr += 4

## ECORE_IPC_PAD64

#define ECORE_IPC_PAD64 | ( |  | ) |

Value:
ptr += 8

## ECORE_IPC_CNT8

#define ECORE_IPC_CNT8 | ( |  | ) |

Value:
len += 1

## ECORE_IPC_CNT16

#define ECORE_IPC_CNT16 | ( |  | ) |

Value:
len += 2

## ECORE_IPC_CNT32

#define ECORE_IPC_CNT32 | ( |  | ) |

Value:
len += 4

## ECORE_IPC_CNT64

#define ECORE_IPC_CNT64 | ( |  | ) |

Value:
len += 8

## ECORE_IPC_CHEKS

#define ECORE_IPC_CHEKS | ( |  | ) |

Value:
if (*((unsigned char *)d + s - 1) != 0) return 0;

## 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_SLEN

#define ECORE_IPC_SLEN | ( |  | l,
|  |  | v )

Value:
((l = strlen(p->v)) + 1)

## ECORE_IPC_CNTS

#define ECORE_IPC_CNTS | ( |  | v | ) |

Value:
len += strlen(p->v) + 1

## ECORE_IPC_DEC_STRUCT_PROTO

#define ECORE_IPC_DEC_STRUCT_PROTO | ( |  | x | ) |

Value:
static int x(void *d, int s, void *pp)

## ECORE_IPC_ENC_STRUCT_PROTO

#define ECORE_IPC_ENC_STRUCT_PROTO | ( |  | x | ) |

Value:
static void *x(void *pp, int *s)

## ECORE_IPC_DEC_EINA_LIST_PROTO

#define ECORE_IPC_DEC_EINA_LIST_PROTO | ( |  | x | ) |

Value:
static Eina_List *x(void *d, int s)
Eina_List
struct _Eina_List Eina_List
Type for a generic double linked list.
Definition eina_list.h:304

## ECORE_IPC_ENC_EINA_LIST_PROTO

#define ECORE_IPC_ENC_EINA_LIST_PROTO | ( |  | x | ) |

Value:
static void *x(Eina_List *lp, int *s)

## 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_DEC_STRUCT_FOOT

#define ECORE_IPC_DEC_STRUCT_FOOT | ( |  | ) |

Value:
return 1

## 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_ENC_STRUCT_FOOT

#define ECORE_IPC_ENC_STRUCT_FOOT | ( |  | ) |

Value:
return 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_list_append
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
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().