Usermode/AxWin3 - Cleaning up and separating code
[tpg/acess2.git] / Usermode / Applications / axwin3_src / WM / include / ipc_int.h
1 /*
2  * Acess2 GUI (AxWin) Version 3
3  * - By John Hodge (thePowersGang)
4  * 
5  * ipc.h
6  * - Interprocess communication
7  */
8 #ifndef _IPC_INT_H_
9 #define _IPC_INT_H_
10
11 #include <stddef.h>
12 #include <ipcmessages.h>
13 #include <wm.h>
14
15 typedef struct sIPC_Type        tIPC_Type;
16
17 struct sIPC_Type
18 {
19          int    (*GetIdentSize)(const void *Ident);
20          int    (*CompareIdent)(const void *Ident1, const void *Ident2);
21         void    (*SendMessage)(const void *Ident, size_t Length, const void *Data);
22 };
23
24 struct sIPC_Client
25 {
26         const tIPC_Type *IPCType;
27         const void      *Ident; // Stored after structure
28
29          int    nWindows;
30         tWindow **Windows;
31 };
32
33 extern int      giIPC_ClientCount;
34 extern tIPC_Client      **gIPC_Clients;
35
36 extern tIPC_Client      *IPC_int_GetClient(const tIPC_Type *IPCType, const void *Ident);
37 extern void     IPC_int_DropClient(tIPC_Client *Client);
38 extern void     IPC_Handle(tIPC_Client *Client, size_t MsgLen, tAxWin_IPCMessage *Msg);
39
40 #endif

UCC git Repository :: git.ucc.asn.au