Master User hack is now defined in site config instead of
[citadel.git] / citadel / include / ctdl_module.h
1 /* $Id$ */
2
3 #ifndef CTDL_MODULE_H
4 #define CTDL_MODULE_H
5
6 #include "server.h"
7 #include "sysdep_decls.h"
8
9 /*
10  * define macros for module init stuff
11  */
12  
13 #define CTDL_MODULE_INIT(module_name) char *ctdl_module_##module_name##_init (void)
14
15 #define CTDL_INIT_CALL(module_name) ctdl_module_##module_name##_init ()
16
17 void CtdlRegisterSessionHook(void (*fcn_ptr)(void), int EventType);
18 void CtdlUnregisterSessionHook(void (*fcn_ptr)(void), int EventType);
19
20 void CtdlRegisterUserHook(void (*fcn_ptr)(struct ctdluser *), int EventType);
21 void CtdlUnregisterUserHook(void (*fcn_ptr)(struct ctdluser *), int EventType);
22
23 void CtdlRegisterXmsgHook(int (*fcn_ptr)(char *, char *, char *), int order);
24 void CtdlUnregisterXmsgHook(int (*fcn_ptr)(char *, char *, char *), int order);
25
26 void CtdlRegisterMessageHook(int (*handler)(struct CtdlMessage *),
27                                                         int EventType);
28 void CtdlUnregisterMessageHook(int (*handler)(struct CtdlMessage *),
29                                                         int EventType);
30
31 void CtdlRegisterNetprocHook(int (*handler)(struct CtdlMessage *, char *) );
32 void CtdlUnregisterNetprocHook(int (*handler)(struct CtdlMessage *, char *) );
33
34 void CtdlRegisterRoomHook(int (*fcn_ptr)(struct ctdlroom *) );
35 void CtdlUnregisterRoomHook(int (*fnc_ptr)(struct ctdlroom *) );
36
37 void CtdlRegisterDeleteHook(void (*handler)(char *, long) );
38 void CtdlUnregisterDeleteHook(void (*handler)(char *, long) );
39
40 void CtdlRegisterCleanupHook(void (*fcn_ptr)(void));
41 void CtdlUnregisterCleanupHook(void (*fcn_ptr)(void));
42
43 void CtdlRegisterProtoHook(void (*handler)(char *), char *cmd, char *desc);
44 void CtdlUnregisterProtoHook(void (*handler)(char *), char *cmd);
45
46 void CtdlRegisterServiceHook(int tcp_port,
47                              char *sockpath,
48                              void (*h_greeting_function) (void),
49                              void (*h_command_function) (void),
50                              void (*h_async_function) (void),
51                              const char *ServiceName
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 void CtdlRegisterMaintenanceThread(char *name, void *(*thread_proc) (void *arg));
66
67 void CtdlRegisterSearchFuncHook(void (*fcn_ptr)(int *, long **, char *), char *name);
68
69 /* TODODRW: This needs to be changed into a hook type interface
70  * for now we have this horrible hack
71  */
72 void CtdlModuleStartCryptoMsgs(char *ok_response, char *nosup_response, char *error_response);
73
74 #endif /* CTDL_MODULE_H */