Cleanup: use typedef for structs; make those structs private which aren't used in...
[citadel.git] / citadel / serv_extensions.h
index b2d556377828e0b1ea0b8631dc398e20386a6c46..47a6070bfa5b1fb563bd55e9c5a41fad0fb0da67 100644 (file)
 /*
  */
 
-/*
- * Structure defentitions for hook tables
- */
-
-struct LogFunctionHook {
-       struct LogFunctionHook *next;
-       int loglevel;
-       void (*h_function_pointer) (char *);
-};
-extern struct LogFunctionHook *LogHookTable;
-
-struct CleanupFunctionHook {
-       struct CleanupFunctionHook *next;
-       void (*h_function_pointer) (void);
-};
-extern struct CleanupFunctionHook *CleanupHookTable;
-
-struct FixedOutputHook {
-       struct FixedOutputHook *next;
-       char content_type[64];
-       void (*h_function_pointer) (char *, int);
-};
-extern struct FixedOutputHook *FixedOutputTable;
-
-
-
-/*
- * SessionFunctionHook extensions are used for any type of hook for which
- * the context in which it's being called (which is determined by the event
- * type) will make it obvious for the hook function to know where to look for
- * pertinent data.
- */
-struct SessionFunctionHook {
-       struct SessionFunctionHook *next;
-       void (*h_function_pointer) (void);
-       int eventtype;
-};
-extern struct SessionFunctionHook *SessionHookTable;
-
-
-/*
- * UserFunctionHook extensions are used for any type of hook which implements
- * an operation on a user or username (potentially) other than the one
- * operating the current session.
- */
-struct UserFunctionHook {
-       struct UserFunctionHook *next;
-       void (*h_function_pointer) (struct ctdluser *usbuf);
-       int eventtype;
-};
-extern struct UserFunctionHook *UserHookTable;
-
-/*
- * MessageFunctionHook extensions are used for hooks which implement handlers
- * for various types of message operations (save, read, etc.)
- */
-struct MessageFunctionHook {
-       struct MessageFunctionHook *next;
-       int (*h_function_pointer) (struct CtdlMessage *msg);
-       int eventtype;
-};
-extern struct MessageFunctionHook *MessageHookTable;
-
-
-/*
- * NetprocFunctionHook extensions are used for hooks which implement handlers
- * for incoming network messages.
- */
-struct NetprocFunctionHook {
-       struct NetprocFunctionHook *next;
-       int (*h_function_pointer) (struct CtdlMessage *msg, char *target_room);
-};
-extern struct NetprocFunctionHook *NetprocHookTable;
-
-
-/*
- * DeleteFunctionHook extensions are used for hooks which get called when a
- * message is about to be deleted.
- */
-struct DeleteFunctionHook {
-       struct DeleteFunctionHook *next;
-       void (*h_function_pointer) (char *target_room, long msgnum);
-};
-extern struct DeleteFunctionHook *DeleteHookTable;
-
-
-/*
- * ExpressMessageFunctionHook extensions are used for hooks which implement
- * the sending of an instant message through various channels.  Any function
- * registered should return the number of recipients to whom the message was
- * successfully transmitted.
- */
-struct XmsgFunctionHook {
-       struct XmsgFunctionHook *next;
-       int (*h_function_pointer) (char *, char *, char *, char *);
-       int order;
-};
-extern struct XmsgFunctionHook *XmsgHookTable;
-
-
 
 
 /*
  * ServiceFunctionHook extensions are used for hooks which implement various
  * protocols (either on TCP or on unix domain sockets) directly in the Citadel server.
  */
+typedef struct ServiceFunctionHook ServiceFunctionHook;
 struct ServiceFunctionHook {
-       struct ServiceFunctionHook *next;
+       ServiceFunctionHook *next;
        int tcp_port;
        char *sockpath;
        void (*h_greeting_function) (void) ;
@@ -134,30 +32,16 @@ struct ServiceFunctionHook {
        int msock;
        const char* ServiceName; /* this is just for debugging and logging purposes. */
 };
-extern struct ServiceFunctionHook *ServiceHookTable;
-
+extern ServiceFunctionHook *ServiceHookTable;
 
-/*
- * RoomFunctionHook extensions are used for hooks which impliment room
- * processing functions when new messages are added EG. SIEVE.
- */
-struct RoomFunctionHook {
-       struct RoomFunctionHook *next;
-       int (*fcn_ptr) (struct ctdlroom *);
+typedef struct CleanupFunctionHook CleanupFunctionHook;
+struct CleanupFunctionHook {
+       CleanupFunctionHook *next;
+       void (*h_function_pointer) (void);
 };
-extern struct RoomFunctionHook *RoomHookTable;
-
-
+extern CleanupFunctionHook *CleanupHookTable;
 
-struct SearchFunctionHook {
-       struct SearchFunctionHook *next;
-       void (*fcn_ptr) (int *, long **, const char *);
-       char *name;
-};
-extern struct SearchFunctionHook *SearchFunctionHookTable;
 
 void initialize_server_extensions(void);
 int DLoader_Exec_Cmd(char *cmdbuf);
 char *Dynamic_Module_Init(void);
@@ -198,6 +82,4 @@ void CtdlDestroySearchHooks(void);
 
 void CtdlDestroyFixedOutputHooks(void);
 int PerformFixedOutputHooks(char *, char *, int);
-
-
 #endif /* SERV_EXTENSIONS_H */