Ecore inter-process communication functions. More...
Data Structures | |
| struct | _Ecore_Ipc_Event_Client_Add |
| struct | _Ecore_Ipc_Event_Client_Del |
| struct | _Ecore_Ipc_Event_Server_Add |
| struct | _Ecore_Ipc_Event_Server_Del |
| struct | _Ecore_Ipc_Event_Client_Data |
| struct | _Ecore_Ipc_Event_Server_Data |
Macros | |
| #define | EAPI |
| #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() |
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 |
|
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 | |
| unsigned short | _ecore_ipc_swap_16 (unsigned short v) |
| unsigned int | _ecore_ipc_swap_32 (unsigned int v) |
| unsigned long long | _ecore_ipc_swap_64 (unsigned long long v) |
| int | ecore_ipc_init (void) |
| Initialises the Ecore IPC library. | |
| int | ecore_ipc_shutdown (void) |
| Shuts down the Ecore IPC library. | |
| Ecore_Ipc_Server * | ecore_ipc_server_add (Ecore_Ipc_Type type, const char *name, int port, const void *data) |
| Creates an IPC server that listens for connections. | |
| Ecore_Ipc_Server * | ecore_ipc_server_connect (Ecore_Ipc_Type type, char *name, int port, const void *data) |
| Creates an IPC server object to represent the IPC server listening on the given port. | |
| void * | ecore_ipc_server_del (Ecore_Ipc_Server *svr) |
| Closes the connection and frees the given IPC server. | |
| void * | ecore_ipc_server_data_get (Ecore_Ipc_Server *svr) |
| Retrieves the data associated with the given IPC server. | |
| Eina_Bool | ecore_ipc_server_connected_get (Ecore_Ipc_Server *svr) |
| Retrieves whether the given IPC server is currently connected. | |
| Eina_List * | ecore_ipc_server_clients_get (Ecore_Ipc_Server *svr) |
| Retrieves the list of clients for this server. | |
| int | ecore_ipc_server_send (Ecore_Ipc_Server *svr, int major, int minor, int ref, int ref_to, int response, const void *data, int size) |
| Sends a message to the given IPC server. | |
| void | ecore_ipc_server_client_limit_set (Ecore_Ipc_Server *svr, int client_limit, char reject_excess_clients) |
| Sets a limit on the number of clients that can be handled concurrently by the given server, and a policy on what to do if excess clients try to connect. | |
| void | ecore_ipc_server_data_size_max_set (Ecore_Ipc_Server *srv, int size) |
| Sets the max data payload size for an Ipc message in bytes. | |
| int | ecore_ipc_server_data_size_max_get (Ecore_Ipc_Server *srv) |
| Gets the max data payload size for an Ipc message in bytes. | |
| const char * | ecore_ipc_server_ip_get (Ecore_Ipc_Server *svr) |
| Gets the IP address of a server that has been connected to. | |
| void | ecore_ipc_server_flush (Ecore_Ipc_Server *svr) |
| Flushes all pending data to the given server. | |
| int | ecore_ipc_client_send (Ecore_Ipc_Client *cl, int major, int minor, int ref, int ref_to, int response, const void *data, int size) |
| Sends a message to the given IPC client. | |
| Ecore_Ipc_Server * | ecore_ipc_client_server_get (Ecore_Ipc_Client *cl) |
| Retrieves the IPC server that the given IPC client is connected to. | |
| void * | ecore_ipc_client_del (Ecore_Ipc_Client *cl) |
| Closes the connection and frees memory allocated to the given IPC client. | |
| void | ecore_ipc_client_data_set (Ecore_Ipc_Client *cl, const void *data) |
Sets the IPC data associated with the given IPC client to data. | |
| void * | ecore_ipc_client_data_get (Ecore_Ipc_Client *cl) |
| Retrieves the data that has been associated with the given IPC client. | |
| void | ecore_ipc_client_data_size_max_set (Ecore_Ipc_Client *cl, int size) |
| Sets the max data payload size for an Ipc message in bytes. | |
| int | ecore_ipc_client_data_size_max_get (Ecore_Ipc_Client *cl) |
| Gets the max data payload size for an Ipc message in bytes. | |
| const char * | ecore_ipc_client_ip_get (Ecore_Ipc_Client *cl) |
| Gets the IP address of a client that has been connected to. | |
| void | ecore_ipc_client_flush (Ecore_Ipc_Client *cl) |
| Flushes all pending data to the given client. | |
| int | ecore_ipc_ssl_available_get (void) |
| Returns if SSL support is available. | |
Variables | |
| int | ECORE_IPC_EVENT_CLIENT_ADD |
| int | ECORE_IPC_EVENT_CLIENT_DEL |
| int | ECORE_IPC_EVENT_SERVER_ADD |
| int | ECORE_IPC_EVENT_SERVER_DEL |
| int | ECORE_IPC_EVENT_CLIENT_DATA |
| int | ECORE_IPC_EVENT_SERVER_DATA |
Detailed Description
Ecore inter-process communication functions.
Macro Definition Documentation
| #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_GETS | ( | v | ) |
| #define ECORE_IPC_PUTS | ( | v, | |
| l | |||
| ) |
| #define ECORE_IPC_DEC_STRUCT_HEAD_EXACT | ( | typ, | |
| x | |||
| ) |
| #define ECORE_IPC_DEC_STRUCT_HEAD_MIN | ( | typ, | |
| x | |||
| ) |
| #define ECORE_IPC_ENC_STRUCT_HEAD | ( | typ, | |
| sz | |||
| ) |
| #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 | ( | ) |
Function Documentation
| void ecore_ipc_server_client_limit_set | ( | Ecore_Ipc_Server * | svr, |
| int | client_limit, | ||
| char | reject_excess_clients | ||
| ) |
Sets a limit on the number of clients that can be handled concurrently by the given server, and a policy on what to do if excess clients try to connect.
Beware that if you set this once ecore is already running, you may already have pending CLIENT_ADD events in your event queue. Those clients have already connected and will not be affected by this call. Only clients subsequently trying to connect will be affected.
- Parameters
-
svr The given server. client_limit The maximum number of clients to handle concurrently. -1 means unlimited (default). 0 effectively disables the server. reject_excess_clients Set to 1 to automatically disconnect excess clients as soon as they connect if you are already handling client_limit clients. Set to 0 (default) to just hold off on the "accept()" system call until the number of active clients drops. This causes the kernel to queue up to 4096 connections (or your kernel's limit, whichever is lower).
References ecore_con_server_client_limit_set().
| void ecore_ipc_server_data_size_max_set | ( | Ecore_Ipc_Server * | svr, |
| int | size | ||
| ) |
Sets the max data payload size for an Ipc message in bytes.
- Parameters
-
svr The given server. size The maximum data payload size in bytes.
| int ecore_ipc_server_data_size_max_get | ( | Ecore_Ipc_Server * | svr | ) |
Gets the max data payload size for an Ipc message in bytes.
- Parameters
-
svr The given server.
- Returns
- The maximum data payload in bytes.
| const char* ecore_ipc_server_ip_get | ( | Ecore_Ipc_Server * | svr | ) |
Gets the IP address of a server that has been connected to.
- Parameters
-
svr The given server.
- Returns
- A pointer to an internal string that contains the IP address of the connected server in the form "XXX.YYY.ZZZ.AAA" IP notation. This string should not be modified or trusted to stay valid after deletion for the
svrobject. If no IP is known NULL is returned.
References ecore_con_server_ip_get().
| void ecore_ipc_server_flush | ( | Ecore_Ipc_Server * | svr | ) |
Flushes all pending data to the given server.
Will return when done.
- Parameters
-
svr The given server.
References ecore_con_server_flush().
| void ecore_ipc_client_data_size_max_set | ( | Ecore_Ipc_Client * | cl, |
| int | size | ||
| ) |
Sets the max data payload size for an Ipc message in bytes.
- Parameters
-
cl The given client. size The maximum data payload size in bytes.
| int ecore_ipc_client_data_size_max_get | ( | Ecore_Ipc_Client * | cl | ) |
Gets the max data payload size for an Ipc message in bytes.
- Parameters
-
cl The given client.
- Returns
- The maximum data payload size in bytes on success,
-1on failure.
| const char* ecore_ipc_client_ip_get | ( | Ecore_Ipc_Client * | cl | ) |
Gets the IP address of a client that has been connected to.
- Parameters
-
cl The given client.
- Returns
- A pointer to an internal string that contains the IP address of the connected server in the form "XXX.YYY.ZZZ.AAA" IP notation. This string should not be modified or trusted to stay valid after deletion for the
clobject. If no IP is knownNULLis returned.
References ecore_con_client_ip_get().
| void ecore_ipc_client_flush | ( | Ecore_Ipc_Client * | cl | ) |
Flushes all pending data to the given client.
Will return when done.
- Parameters
-
cl The given client.
References ecore_con_client_flush().
