chiark / gitweb /
Switch to GPL v3
[disorder] / lib / eventdist.h
1 /*
2  * This file is part of DisOrder
3  * Copyright (C) 2008 Richard Kettlewell
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
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, see <http://www.gnu.org/licenses/>.
17  */
18
19 #ifndef EVENTDIST_H
20 #define EVENTDIST_H
21
22 /** @brief Signature for event handlers
23  * @param event Event type
24  * @param eventdata Event-specific data
25  * @param callbackdata Handler-specific data (as passed to event_register())
26  */
27 typedef void event_handler(const char *event,
28                            void *eventdata,
29                            void *callbackdata);
30
31 /** @brief Handle identifying an event monitor */
32 typedef struct event_data *event_handle;
33
34 event_handle event_register(const char *event,
35                             event_handler *callback,
36                             void *callbackdata);
37 void event_cancel(event_handle handle);
38 void event_raise(const char *event,
39                  void *eventdata);
40
41 #endif /* EVENTDIST_H */
42
43 /*
44 Local Variables:
45 c-basic-offset:2
46 comment-column:40
47 fill-column:79
48 indent-tabs-mode:nil
49 End:
50 */