ed8e7c9c75499af297fb106c3e653ac68780c97a
[citadel.git] / citadel / include / ctdl_module.h
1 /* $Id:$ */
2
3 #ifndef CTDL_MODULE_H
4 #define CTDL_MODULE_H
5
6
7 #include "server.h"
8 #include "sysdep_decls.h"
9 /*
10  * define macros for module init stuff
11  */
12  
13  
14 #define CTDL_MODULE_INIT(module_name) char *ctdl_module_##module_name##_init (void)
15
16 #define CTDL_INIT_CALL(module_name) ctdl_module_##module_name##_init ()
17
18 void CtdlRegisterSessionHook(void (*fcn_ptr)(void), int EventType);
19 void CtdlUnregisterSessionHook(void (*fcn_ptr)(void), int EventType);
20
21 void CtdlRegisterUserHook(void (*fcn_ptr)(struct ctdluser *), int EventType);
22 void CtdlUnregisterUserHook(void (*fcn_ptr)(struct ctdluser *), int EventType);
23
24 void CtdlRegisterXmsgHook(int (*fcn_ptr)(char *, char *, char *), int order);
25 void CtdlUnregisterXmsgHook(int (*fcn_ptr)(char *, char *, char *), int order);
26
27 void CtdlRegisterMessageHook(int (*handler)(struct CtdlMessage *),
28                                                         int EventType);
29 void CtdlUnregisterMessageHook(int (*handler)(struct CtdlMessage *),
30                                                         int EventType);
31
32 void CtdlRegisterNetprocHook(int (*handler)(struct CtdlMessage *, char *) );
33 void CtdlUnregisterNetprocHook(int (*handler)(struct CtdlMessage *, char *) );
34
35 void CtdlRegisterRoomHook(int (*fcn_ptr)(struct ctdlroom *) );
36 void CtdlUnregisterRoomHook(int (*fnc_ptr)(struct ctdlroom *) );
37
38 void CtdlRegisterDeleteHook(void (*handler)(char *, long) );
39 void CtdlUnregisterDeleteHook(void (*handler)(char *, long) );
40
41 void CtdlRegisterCleanupHook(void (*fcn_ptr)(void));
42 void CtdlUnregisterCleanupHook(void (*fcn_ptr)(void));
43
44 void CtdlRegisterProtoHook(void (*handler)(char *), char *cmd, char *desc);
45 void CtdlUnregisterProtoHook(void (*handler)(char *), char *cmd);
46
47 void CtdlRegisterServiceHook(int tcp_port,
48                         char *sockpath,
49                         void (*h_greeting_function) (void),
50                         void (*h_command_function) (void),
51                         void (*h_async_function) (void)
52 );
53 void CtdlUnregisterServiceHook(int tcp_port,
54                         char *sockpath,
55                         void (*h_greeting_function) (void),
56                         void (*h_command_function) (void),
57                         void (*h_async_function) (void)
58 );
59
60 void CtdlRegisterFixedOutputHook(char *content_type,
61                         void (*output_function) (char *supplied_data, int len)
62 );
63 void CtdlUnRegisterFixedOutputHook(char *content_type);
64
65 #endif /* CTDL_MODULE_H */