Please, visit the @eventxx website for the latest version of this
documentation.
-You can always get the <a
-href="http://www.llucax.com.ar/~luca/eventxx/releases/eventxx.tar.gz">current
-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://git.or.cz/">git</a> repository.
+You can always get the <a href="@home/releases/eventxx.tar.gz">current
+release</a> from the <a href="@home/releases/">release directory</a> or
+grab the <a href="@gitweb?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://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.
+You can also take a look the the <a href="@gitweb">eventxx gitweb</a>
+interface to see the latest changes online or subscribe to its
+<a href="@gitweb?a=atom">Atom feed</a> to follow the development.
+
+For more information, bug reports or support, please visit the
+<a href="@redmine">eventxx project</a>.
@section Usage
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
-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.
+I think the library is 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.
@libevent had a memory leak before version 1.3b (before 1.2 it didn't even
had a way free that memory, from version 1.2 to 1.3a, if you tried to free
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.7
+@version 1.0
@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>
-file itself, it's very short and it basically says it's Public Domain).
+This program is under the <a href="http://auriga.wearlab.de/~alb/bola/">BOLA
+License</a> (see the license website or the
+<a href="@gitweb?a=blob_plain;f=LICENSE">LICENSE</a>
+file itself for more details, it's very short and it basically says it's
+Public Domain).
*/