Timeout de un método en C++ con Glib
Primera aproximación
#include <glib.h> #include <iostream> using namespace std; class A { public: void tick() { cout << "tick" << endl; } }; gboolean adaptor(gpointer p) { (static_cast<A*>(p))->tick(); return TRUE; } int main() { A a; g_timeout_add(500, adaptor, &a); g_main_loop_run(g_main_loop_new(NULL, TRUE)); }
Si el fichero se llama method_timeout.cc
, se puede compilar con:
Utilizando un método de clase como adaptador
class A { public: void tick() { cout << "tick" << endl; } static gboolean tick_adaptor(gpointer p) { (static_cast<A*>(p))->tick(); return TRUE; } }; int main() { A a; g_timeout_add(500, A::tick_adaptor, &a); g_main_loop_run(g_main_loop_new(NULL, TRUE)); }
Referencias
[ show comments ]
blog comments powered by Disqus