1 /*
2  * who.h -- header info for the WHO, ISON, and USERHOST queues.
3  * Copyright 1996 EPIC Software Labs
4  */
5 
6 #ifndef __who_h__
7 #define __who_h__
8 
9 void clean_server_queues (int);
10 
11 /* WHO queue */
12 
13 typedef struct WhoEntryT
14 {
15 	int  dirty;
16 	int  piggyback;
17         int  who_mask;
18 	char *who_target;
19         char *who_name;
20         char *who_host;
21         char *who_server;
22         char *who_nick;
23         char *who_real;
24 	char *who_stuff;
25 	char *who_end;
26 	char *who_buff;
27 	char *who_args;
28         struct WhoEntryT *next;
29 	void (*line) (struct WhoEntryT *, char *, char **);
30 	void (*end) (struct WhoEntryT *, char *, char **);
31 
32 } WhoEntry;
33 
34 BUILT_IN_COMMAND(whocmd);
35 void BX_whobase (char *, void (*)(WhoEntry *, char *, char **), void (*)(WhoEntry *, char *, char **), char *, ...);
36 void whoreply (char *, char **);
37 void who_end (char *, char **);
38 
39 
40 
41 /* ISON queue */
42 
43 typedef struct IsonEntryT
44 {
45 	char *ison_asked;
46 	char *ison_got;
47 	struct IsonEntryT *next;
48 	void (*line) (char *, char *);
49 } IsonEntry;
50 
51 BUILT_IN_COMMAND(isoncmd);
52 void BX_isonbase (char *args, void (*line) (char *, char *));
53 void ison_returned (char *, char **);
54 
55 
56 
57 /* USERHOST queue */
58 
59 typedef struct UserhostItemT
60 {
61 	char *	nick;
62 	int   	oper;
63 	int	connected;
64 	int   	away;
65 	char *	user;
66 	char *	host;
67 } UserhostItem;
68 
69 typedef struct UserhostEntryT
70 {
71 	char *userhost_asked;
72 	char *text;
73 	struct UserhostEntryT *next;
74 	void (*func) (UserhostItem *, char *, char *);
75 } UserhostEntry;
76 
77 BUILT_IN_COMMAND(userhostcmd);
78 BUILT_IN_COMMAND(useripcmd);
79 BUILT_IN_COMMAND(usripcmd);
80 void BX_userhostbase (char *arg, void (*line) (UserhostItem *, char *, char *), int, char *, ...);
81 void userhost_returned (char *, char **);
82 void userhost_cmd_returned (UserhostItem *, char *, char *);
83 
84 #endif
85