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) |
Initialises the Ecore IPC library. More... | |
EAPI int | ecore_ipc_shutdown (void) |
Shuts down the Ecore IPC library. More... | |
EAPI 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. More... | |
EAPI 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. More... | |
EAPI void * | ecore_ipc_server_del (Ecore_Ipc_Server *svr) |
Closes the connection and frees the given IPC server. More... | |
EAPI void * | ecore_ipc_server_data_get (Ecore_Ipc_Server *svr) |
Retrieves the data associated with the given IPC server. More... | |
EAPI Eina_Bool | ecore_ipc_server_connected_get (Ecore_Ipc_Server *svr) |
Retrieves whether the given IPC server is currently connected. More... | |
EAPI Eina_List * | ecore_ipc_server_clients_get (Ecore_Ipc_Server *svr) |
Retrieves the list of clients for this server. More... | |
EAPI 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. More... | |
EAPI 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. More... | |
EAPI 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. More... | |
EAPI int | ecore_ipc_server_data_size_max_get (Ecore_Ipc_Server *srv) |
Gets the max data payload size for an Ipc message in bytes. More... | |
EAPI const char * | ecore_ipc_server_ip_get (Ecore_Ipc_Server *svr) |
Gets the IP address of a server that has been connected to. More... | |
EAPI void | ecore_ipc_server_flush (Ecore_Ipc_Server *svr) |
Flushes all pending data to the given server. More... | |
EAPI 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. More... | |
EAPI Ecore_Ipc_Server * | ecore_ipc_client_server_get (Ecore_Ipc_Client *cl) |
Retrieves the IPC server that the given IPC client is connected to. More... | |
EAPI void * | ecore_ipc_client_del (Ecore_Ipc_Client *cl) |
Closes the connection and frees memory allocated to the given IPC client. More... | |
EAPI 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 . More... | |
EAPI void * | ecore_ipc_client_data_get (Ecore_Ipc_Client *cl) |
Retrieves the data that has been associated with the given IPC client. More... | |
EAPI 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. More... | |
EAPI int | ecore_ipc_client_data_size_max_get (Ecore_Ipc_Client *cl) |
Gets the max data payload size for an Ipc message in bytes. More... | |
EAPI const char * | ecore_ipc_client_ip_get (Ecore_Ipc_Client *cl) |
Gets the IP address of a client that has been connected to. More... | |
EAPI void | ecore_ipc_client_flush (Ecore_Ipc_Client *cl) |
Flushes all pending data to the given client. More... | |
EAPI int | ecore_ipc_ssl_available_get (void) |
Returns if SSL support is available. 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 |
#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 | ( | ) |
EAPI int ecore_ipc_init | ( | void | ) |
Initialises the Ecore IPC library.
References ECORE_CON_EVENT_CLIENT_ADD, ECORE_CON_EVENT_CLIENT_DATA, ECORE_CON_EVENT_CLIENT_DEL, ECORE_CON_EVENT_SERVER_ADD, ECORE_CON_EVENT_SERVER_DATA, ECORE_CON_EVENT_SERVER_DEL, ecore_con_init(), ecore_event_handler_add(), ecore_event_type_new(), eina_log_domain_register(), and EINA_LOG_ERR.
EAPI int ecore_ipc_shutdown | ( | void | ) |
Shuts down the Ecore IPC library.
References ecore_con_shutdown(), ecore_event_handler_del(), ecore_ipc_server_del(), EINA_LIST_FOREACH_SAFE, and eina_log_domain_unregister().
EAPI Ecore_Ipc_Server* ecore_ipc_server_add | ( | Ecore_Ipc_Type | compl_type, |
const char * | name, | ||
int | port, | ||
const void * | data | ||
) |
Creates an IPC server that listens for connections.
For more details about the compl_type
, name
and port
parameters, see the ecore_con_server_add documentation.
compl_type | The connection type. |
name | Name to associate with the socket used for connection. |
port | Number to identify with socket used for connection. |
data | Data to associate with the IPC server. |
NULL
is returned.EAPI Ecore_Ipc_Server* ecore_ipc_server_connect | ( | Ecore_Ipc_Type | compl_type, |
char * | name, | ||
int | port, | ||
const void * | data | ||
) |
Creates an IPC server object to represent the IPC server listening on the given port.
For more details about the compl_type
, name
and port
parameters, see the ecore_con_server_connect documentation.
compl_type | The IPC connection type. |
name | Name used to determine which socket to use for the IPC connection. |
port | Number used to identify the socket to use for the IPC connection. |
data | Data to associate with the server. |
NULL
is returned on error.EAPI void* ecore_ipc_server_del | ( | Ecore_Ipc_Server * | svr | ) |
Closes the connection and frees the given IPC server.
svr | The given IPC server. |
References ecore_con_server_del(), ecore_ipc_client_del(), EINA_LIST_FREE, and eina_list_remove().
Referenced by ecore_ipc_shutdown(), and ecore_ipc_ssl_available_get().
EAPI void* ecore_ipc_server_data_get | ( | Ecore_Ipc_Server * | svr | ) |
Retrieves the data associated with the given IPC server.
svr | The given IPC server. |
EAPI Eina_Bool ecore_ipc_server_connected_get | ( | Ecore_Ipc_Server * | svr | ) |
Retrieves whether the given IPC server is currently connected.
svr | The given IPC server. |
EINA_TRUE
if the server is connected, EINA_FALSE
otherwise. References ecore_con_server_connected_get(), and EINA_FALSE.
EAPI Eina_List* ecore_ipc_server_clients_get | ( | Ecore_Ipc_Server * | svr | ) |
Retrieves the list of clients for this server.
svr | The given IPC server. |
EAPI 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.
The content of the parameters, excluding the svr
parameter, is up to the client.
svr | The given IPC server. |
major | Major opcode of the message. |
minor | Minor opcode of the message. |
ref | Message reference number. |
ref_to | Reference number of the message this message refers to. |
response | Requires response. |
data | The data to send as part of the message. |
size | Length of the data, in bytes, to send. |
0
is returned if there is an error.References ecore_con_server_send().
EAPI 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.
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().
EAPI 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.
svr | The given server. |
size | The maximum data payload size in bytes. |
EAPI int ecore_ipc_server_data_size_max_get | ( | Ecore_Ipc_Server * | svr | ) |
Gets the max data payload size for an Ipc message in bytes.
svr | The given server. |
EAPI const char* ecore_ipc_server_ip_get | ( | Ecore_Ipc_Server * | svr | ) |
Gets the IP address of a server that has been connected to.
svr | The given server. |
svr
object. If no IP is known NULL is returned. References ecore_con_server_ip_get().
EAPI void ecore_ipc_server_flush | ( | Ecore_Ipc_Server * | svr | ) |
Flushes all pending data to the given server.
Will return when done.
svr | The given server. |
References ecore_con_server_flush().
EAPI 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.
cl | The given IPC client. |
major | Major opcode of the message. |
minor | Minor opcode of the message. |
ref | Reference number of the message. |
ref_to | Reference number of the message this message refers to. |
response | Requires response. |
data | The data to send as part of the message. |
size | Length of the data, in bytes, to send. |
0
will be returned if there is an error.EAPI Ecore_Ipc_Server* ecore_ipc_client_server_get | ( | Ecore_Ipc_Client * | cl | ) |
Retrieves the IPC server that the given IPC client is connected to.
cl | The given IPC client. |
EAPI void* ecore_ipc_client_del | ( | Ecore_Ipc_Client * | cl | ) |
Closes the connection and frees memory allocated to the given IPC client.
cl | The given client. |
References ecore_con_client_del(), and eina_list_remove().
Referenced by ecore_ipc_server_del(), and ecore_ipc_ssl_available_get().
EAPI 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
.
cl | The given IPC client. |
data | The data to associate with the IPC client. |
EAPI void* ecore_ipc_client_data_get | ( | Ecore_Ipc_Client * | cl | ) |
Retrieves the data that has been associated with the given IPC client.
cl | The given client. |
EAPI 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.
cl | The given client. |
size | The maximum data payload size in bytes. |
EAPI int ecore_ipc_client_data_size_max_get | ( | Ecore_Ipc_Client * | cl | ) |
Gets the max data payload size for an Ipc message in bytes.
cl | The given client. |
-1
on failure. EAPI const char* ecore_ipc_client_ip_get | ( | Ecore_Ipc_Client * | cl | ) |
Gets the IP address of a client that has been connected to.
cl | The given client. |
cl
object. If no IP is known NULL
is returned. References ecore_con_client_ip_get().
EAPI void ecore_ipc_client_flush | ( | Ecore_Ipc_Client * | cl | ) |
Flushes all pending data to the given client.
Will return when done.
cl | The given client. |
References ecore_con_client_flush().
EAPI int ecore_ipc_ssl_available_get | ( | void | ) |
Returns if SSL support is available.
References _Ecore_Ipc_Event_Client_Add::client, _Ecore_Ipc_Event_Client_Del::client, _Ecore_Ipc_Event_Client_Data::client, _Ecore_Con_Event_Client_Add::client, _Ecore_Con_Event_Client_Del::client, _Ecore_Con_Event_Client_Data::client, _Ecore_Ipc_Event_Client_Data::data, _Ecore_Ipc_Event_Server_Data::data, _Ecore_Con_Event_Client_Data::data, _Ecore_Con_Event_Server_Data::data, ECORE_CALLBACK_CANCEL, ECORE_CALLBACK_RENEW, ecore_con_client_data_get(), ecore_con_client_data_set(), ecore_con_server_data_get(), ecore_con_ssl_available_get(), ecore_event_add(), ecore_ipc_client_del(), ecore_ipc_server_del(), EINA_FALSE, eina_list_append(), eina_list_data_find(), EINA_TRUE, EINA_UNUSED, _Ecore_Ipc_Event_Client_Data::major, _Ecore_Ipc_Event_Server_Data::major, _Ecore_Ipc_Event_Client_Data::minor, _Ecore_Ipc_Event_Server_Data::minor, _Ecore_Ipc_Event_Client_Data::ref, _Ecore_Ipc_Event_Server_Data::ref, _Ecore_Ipc_Event_Client_Data::ref_to, _Ecore_Ipc_Event_Server_Data::ref_to, _Ecore_Ipc_Event_Client_Data::response, _Ecore_Ipc_Event_Server_Data::response, _Ecore_Ipc_Event_Server_Add::server, _Ecore_Ipc_Event_Server_Del::server, _Ecore_Ipc_Event_Server_Data::server, _Ecore_Con_Event_Server_Add::server, _Ecore_Con_Event_Server_Del::server, _Ecore_Con_Event_Server_Data::server, _Ecore_Ipc_Event_Client_Data::size, _Ecore_Ipc_Event_Server_Data::size, _Ecore_Con_Event_Client_Data::size, and _Ecore_Con_Event_Server_Data::size.