* patch your libevent (for example, using this <a
* href="http://monkeymail.org/archives/libevent-users/2006-April/000141.html">patch</a>
* written by Mark D. Anderson, and who knows why it's not still applied). If
- * you do so, you can compile your programs with @c -DEVENT_BASE_FREE_FIX so
- * @c event_base_free() gets called in the eventxx::dispatcher @link
+ * you do so, you can compile your programs with @c -DEVENTXX_EVENT_BASE_FREE_FIX
+ * so @c event_base_free() gets called in the eventxx::dispatcher @link
* eventxx::dispatcher::~dispatcher() destructor @endlink.
*
* That said, I think it's still pretty usable anyways. If something is broken
*
* @author Leandro Lucarella <llucax+eventxx@gmail.com>
*
- * @version 0.2
+ * @version 0.4
*
* @par License
* This program is under the BOLA license (see
PERSIST = EV_PERSIST ///< Not really an event, is an event modifier.
};
+inline
type operator| (const type& t1, const type& t2)
{
- int r = t1 | t2;
+ int r = static_cast< int >(t1) | static_cast< int >(t2);
return *reinterpret_cast< type* >(&r);
}
internal::event_base_priority_init(_event_base, npriorities);
}
-#ifdef EVENT_BASE_FREE_FIX
+#ifdef EVENTXX_BASE_FREE_FIX
/// Free dispatcher resources, see @ref Status section for details.
~dispatcher() throw() { event_base_free(_event_base); }
#else
+#ifndef EVENTXX_NO_WARNING
#warning "The dispatcher class *will* leak memory because of a libevent bug, " \
"see http://www.mail-archive.com/libevent-users@monkey.org/msg00110.html " \
"for more info an a patch. If you already have this patch, please " \
- "-DEVENT_BASE_FREE_FIX to your compiler to make this message disappear " \
+ "-DEVENTXX_EVENT_BASE_FREE_FIX to your compiler to make this message disappear " \
"and really free the dispatcher memory using event_base_free()."
+#endif
#endif
/**
protected:
internal::event_base* _event_base;
template < typename F >
- static void wrapper(int fd, type ev, void* h)
+ static void wrapper(int fd, short ev, void* h)
{
F& handler = *reinterpret_cast< F* >(h);
handler(fd, *reinterpret_cast< type* >(&ev));