Initial import (again)
[srvx.git] / src / global.h
1 /* global.h - Global notice service
2  * Copyright 2000-2004 srvx Development Team
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.  Important limitations are
8  * listed in the COPYING file that accompanies this software.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, email srvx-maintainers@srvx.net.
17  */
18
19 #ifndef _global_h
20 #define _global_h
21
22 #define MESSAGE_RECIPIENT_LUSERS                0x001
23 #define MESSAGE_RECIPIENT_HELPERS               0x002
24 #define MESSAGE_RECIPIENT_OPERS                 0x004
25 #define MESSAGE_RECIPIENT_CHANNELS              0x008
26 #define MESSAGE_RECIPIENT_ANNOUNCE              0x040
27
28 #define MESSAGE_OPTION_SOURCELESS               0x010
29 #define MESSAGE_OPTION_IMMEDIATE                0x020
30
31 #define MESSAGE_RECIPIENT_STAFF                 (MESSAGE_RECIPIENT_HELPERS | MESSAGE_RECIPIENT_OPERS)
32 #define MESSAGE_RECIPIENT_ALL                   (MESSAGE_RECIPIENT_LUSERS | MESSAGE_RECIPIENT_CHANNELS)
33
34 struct globalMessage
35 {
36     unsigned long                       id;
37     long                                flags;
38
39     time_t                              posted;
40     unsigned long                       duration;
41
42     char                                *from;
43     char                                *message;
44
45     struct globalMessage                *prev;
46     struct globalMessage                *next;
47 };
48
49 void init_global(const char *nick);
50
51 void global_message(long targets, char *text);
52
53 #endif