1 #ifndef _ECORE_IPC_PRIVATE_H
2 #define _ECORE_IPC_PRIVATE_H
3 
4 #ifdef ECORE_IPC_DEFAULT_LOG_COLOR
5 # undef ECORE_IPC_DEFAULT_LOG_COLOR
6 #endif
7 #define ECORE_IPC_DEFAULT_LOG_COLOR EINA_COLOR_BLUE
8 
9 #ifdef ERR
10 # undef ERR
11 #endif
12 #define ERR(...) EINA_LOG_DOM_ERR(_ecore_ipc_log_dom, __VA_ARGS__)
13 
14 #ifdef DBG
15 # undef DBG
16 #endif
17 #define DBG(...) EINA_LOG_DOM_DBG(_ecore_ipc_log_dom, __VA_ARGS__)
18 
19 #ifdef INF
20 # undef INF
21 #endif
22 #define INF(...) EINA_LOG_DOM_INFO(_ecore_ipc_log_dom, __VA_ARGS__)
23 
24 #ifdef WRN
25 # undef WRN
26 #endif
27 #define WRN(...) EINA_LOG_DOM_WARN(_ecore_ipc_log_dom, __VA_ARGS__)
28 
29 #ifdef CRI
30 # undef CRI
31 #endif
32 #define CRI(...) EINA_LOG_DOM_CRIT(_ecore_ipc_log_dom, __VA_ARGS__)
33 
34 #define ECORE_MAGIC_IPC_SERVER             0x87786556
35 #define ECORE_MAGIC_IPC_CLIENT             0x78875665
36 
37 typedef struct _Ecore_Ipc_Msg_Head Ecore_Ipc_Msg_Head;
38 #define ECORE_IPC_TYPE 0x0f
39 #define ECORE_IPC_SSL  0xf0
40 
41 #if (defined (__SUNPRO_C) && __SUNPRO_C < 0x5100)
42 # pragma pack(1)
43 # define ECORE_IPC_STRUCT_PACKED
44 #elif defined (__GNUC__) || (defined (__SUNPRO_C) && __SUNPRO_C >= 0x5100)
45 # define ECORE_IPC_STRUCT_PACKED __attribute__((packed))
46 #else
47 # define ECORE_IPC_STRUCT_PACKED
48 #endif
49 
50 #ifdef __sgi
51 #pragma pack 4
52 #endif
53 struct _Ecore_Ipc_Msg_Head
54 {
55       int major;
56       int minor;
57       int ref;
58       int ref_to;
59       int response;
60       int size;
61 } ECORE_IPC_STRUCT_PACKED;
62 #ifdef __sgi
63 #pragma pack 0
64 #endif
65 
66 struct _Ecore_Ipc_Client
67 {
68    ECORE_MAGIC;
69 
70    struct {
71       Eo *input;
72       Eo *socket;
73       Eo *recv_copier;
74       Eo *send_copier;
75    } socket;
76 
77    Ecore_Ipc_Server  *svr;
78    void              *data;
79    unsigned char     *buf;
80    int                buf_size;
81    int                max_buf_size;
82 
83    struct {
84       Ecore_Ipc_Msg_Head i, o;
85    } prev;
86 
87    int               event_count;
88    Eina_Bool         delete_me : 1;
89 };
90 
91 struct _Ecore_Ipc_Server
92 {
93    ECORE_MAGIC;
94 
95    /* when used as dialer: ecore_ipc_server_connect() */
96    struct {
97       Eo *input;
98       Eo *dialer;
99       Eo *recv_copier;
100       Eo *send_copier;
101    } dialer;
102 
103    Eo *server;
104 
105    Eina_List        *clients;
106    Eina_List        *dead_clients;
107    void              *data;
108    unsigned char     *buf;
109    int                buf_size;
110    int                max_buf_size;
111 
112    struct {
113       Ecore_Ipc_Msg_Head i, o;
114    } prev;
115 
116    int               event_count;
117    Eina_Bool         delete_me : 1;
118 };
119 
120 #endif
121