… | |
… | |
93 | |
93 | |
94 | /* using a template here would require quite a bit more lines, |
94 | /* using a template here would require quite a bit more lines, |
95 | * so a macro solution was chosen */ |
95 | * so a macro solution was chosen */ |
96 | #define EV_BEGIN_WATCHER(cppstem,cstem) \ |
96 | #define EV_BEGIN_WATCHER(cppstem,cstem) \ |
97 | \ |
97 | \ |
98 | static void cb_ ## cppstem (struct ev_ ## cstem *w, int revents); \ |
98 | static void cb_ ## cppstem (EV_P_ struct ev_ ## cstem *w, int revents); \ |
99 | \ |
99 | \ |
100 | struct cppstem : ev_ ## cstem, callback<cppstem> \ |
100 | struct cppstem : ev_ ## cstem, callback<cppstem> \ |
101 | { \ |
101 | { \ |
102 | EV_CONSTRUCT (cppstem) \ |
102 | EV_CONSTRUCT (cppstem) \ |
103 | { \ |
103 | { \ |
… | |
… | |
144 | public: |
144 | public: |
145 | |
145 | |
146 | #define EV_END_WATCHER(cppstem,cstem) \ |
146 | #define EV_END_WATCHER(cppstem,cstem) \ |
147 | }; \ |
147 | }; \ |
148 | \ |
148 | \ |
149 | static void cb_ ## cppstem (struct ev_ ## cstem *w, int revents) \ |
149 | static void cb_ ## cppstem (EV_P_ struct ev_ ## cstem *w, int revents) \ |
150 | { \ |
150 | { \ |
151 | (*static_cast<cppstem *>(w))(revents); \ |
151 | (*static_cast<cppstem *>(w))(revents); \ |
152 | } |
152 | } |
153 | |
153 | |
154 | EV_BEGIN_WATCHER (io, io) |
154 | EV_BEGIN_WATCHER (io, io) |