release</a> from the
<a href="http://www.llucax.com.ar/~luca/eventxx/releases/">release
directory</a> or grab the
-<a href="http://www.llucax.com.ar/~luca/repos/eventxx/">most up to date
-sources</a> from the <a href="http://www.darcs.net/">darcs</a> repository.
+<a href="http://git.llucax.com.ar/?p=software/eventxx.git;a=snapshot">most up
+to date sources</a> from the <a href="http://git.or.cz/">git</a> repository.
You can also take a look the the <a
-href="http://auriga.wearlab.de/~alb/darcsweb/">darcsweb</a> interface to see
-the <a href="http://www.llucax.com.ar/~luca/repos/darcsweb/?r=eventxx">latest
-changes online</a> or subscribe to its
-<a href="http://www.llucax.com.ar/~luca/repos/darcsweb/?r=eventxx;a=rss">RSS
+href="http://git.llucax.com.ar/?p=software/eventxx.git;a=summary">eventxx
+gitweb</a> interface to see the latest changes online or subscribe to its
+<a href="http://git.llucax.com.ar/?p=software/eventxx.git;a=atom">RSS
feed</a> to follow the development.
handler(eventxx::dispatcher& d): d(d), i(0) {}
void operator() (int signum, eventxx::type event)
{
+ std::cout << ++i << " interrupts, ";
if (i < 5) std::cout << "keep going...\n";
else
{
}
};
-void sighandler(int signum, short event, void* data)
+void timer_handler(int, short, void*)
{
- int& i = *static_cast< int* >(data);
- std::cout << ++i << " interrupts, ";
+ std::cout << "Press Ctrl-C 5 times to quit.\n";
}
int main()
{
eventxx::dispatcher d;
handler h(d);
- eventxx::csignal sigev(SIGINT, sighandler, &h.i);
+ eventxx::ctimer t(timer_handler);
eventxx::signal< handler > e(SIGINT, h);
- d.add(sigev);
+ d.add(t, eventxx::time(1)); // 1 second
d.add(e);
d.dispatch();
return 0;
@section Status
-This library has not been widely used yet, but it's used in some serious
-projects, so I think it's moderately stable now. The library has no support
+I think the library is moderately stable now. The library has no support
for buffered events yet, but patches are welcome. It doesn't support the
HTTP stuff, and probably never will because that has nothing to do with
event handling.
the memory the program @c abort() because a failed assertion). Because of
that, there is a way to disable the @link eventxx::dispatcher::~dispatcher()
dispatcher destructor @endlink (which calls the inexistent/broken
-@c event_base_free() function). So if you use a @libevent version previous
-to 1.3b, you have to compile your programs defining the
-@c EVENTXX_NO_EVENT_BASE_FREE macro.
+@c event_base_free() function in the broken versions). So if you use a
+@libevent version previous to 1.3b, you have to compile your programs
+defining the @c EVENTXX_NO_EVENT_BASE_FREE macro.
If something is broken it would be really easy to fix because @eventxx is
just a simple wrapper around @libevent. So, please try it out, and if you
@author Leandro Lucarella <llucax+eventxx@gmail.com>
-@version 0.6
+@version 0.7
@par License
This program is under the BOLA license (see
http://auriga.wearlab.de/~alb/bola/ for more details or read the
-<a href="http://www.llucax.com.ar/~luca/repos/eventxx/LICENSE">LICENSE</a>
+<a href="http://git.llucax.com.ar/?p=software/eventxx.git;a=blob_plain;f=LICENSE">LICENSE</a>
file itself, it's very short and it basically says it's Public Domain).
*/