2eb6f98a3ce1b5db8c9da56ab050cc9efb20a80d
[framework/uifw/ecore.git] / src / lib / ecore_ipc / ecore_ipc_private.h
1 #ifndef _ECORE_IPC_PRIVATE_H
2 #define _ECORE_IPC_PRIVATE_H
3
4 #include "Ecore_Data.h"
5
6 #if USE_OPENSSL
7 #include <openssl/ssl.h>
8 #endif
9
10 #define ECORE_MAGIC_IPC_SERVER             0x87786556
11 #define ECORE_MAGIC_IPC_CLIENT             0x78875665
12
13 typedef struct _Ecore_Ipc_Client Ecore_Ipc_Client;
14 typedef struct _Ecore_Ipc_Server Ecore_Ipc_Server;
15 typedef struct _Ecore_Ipc_Msg_Head Ecore_Ipc_Msg_Head;
16
17
18 #ifdef __sgi
19 #pragma pack 4
20 #endif
21 struct _Ecore_Ipc_Msg_Head
22 {
23       int major;
24       int minor;
25       int ref;
26       int ref_to;
27       int response;
28       int size;
29
30 #ifdef _GNU_C_
31 __attribute__ ((packed));
32 #endif
33 ;
34 #ifdef __sgi
35 #pragma pack 0
36 #endif
37
38 struct _Ecore_Ipc_Client
39 {
40    Ecore_List        __list_data;
41    ECORE_MAGIC;
42    Ecore_Con_Client  *client;
43    void              *data;
44    unsigned char     *buf;
45    int                buf_size;
46    int                max_buf_size;
47    
48    struct {
49       Ecore_Ipc_Msg_Head i, o;
50    } prev;
51    
52    int               event_count;
53    char              delete_me : 1;
54 };
55    
56 struct _Ecore_Ipc_Server
57 {
58    Ecore_List        __list_data;
59    ECORE_MAGIC;
60    Ecore_Con_Server *server;
61    Ecore_Ipc_Client *clients;
62    Ecore_List       *client_list;
63    void              *data;
64    unsigned char     *buf;
65    int                buf_size;
66    int                max_buf_size;
67
68    struct {
69       Ecore_Ipc_Msg_Head i, o;
70    } prev;
71    
72    int               event_count;
73    char              delete_me : 1;
74 };
75
76 #endif