• [RECETARIO]
  • Listas
  • Jabber
  • IRC
  • Buscar

Acerca de david

Imagen de david

Inicio de sesión

  • Crear cuenta nueva
  • Solicitar nueva contraseña

Navegación

  • Bitacoras
  • encuestas

Contenidos

  • Recetas
  • Literatura
  • Documentación
  • Scripts
  • Juegos
  • Retos
  • Cocina
  • Fotos
  • Arte

Envíos recientes a blogs

  • Ayuda con molinux, acceso a programas
  • Ingenieros informáticos y otras criaturas fantásticas
  • DevkitPro 23b para Debian/Ubuntu/Molinux
  • Introducción a los hilos con la librería glib
  • Nueva versión de Molinux Adarga 4.0
  • Mermelada
  • Bridges de red para VirtualBox y QEMU
  • Para que dices que servía esto?
  • Soy nuevo en esta comunidad, saludos.
  • GNU Emacs: cambiar la configuración de colores
more

Comentarios recientes

  • Artículo online
    hace 10 horas 54 mins
  • I Agree
    hace 1 día 23 horas
  • Más aclaraciones sobre fábulas y mitología popular
    hace 2 días 8 horas
  • Ups, bug, bug
    hace 4 días 22 horas
  • Según...
    hace 1 semana 1 día
  • Limitar admisión de usuarios
    hace 1 semana 2 días
  • Script automatico
    hace 1 semana 2 días
  • No todas las frutas espesan,
    hace 1 semana 3 días
  • Muy bueno
    hace 1 semana 3 días
  • ofuscación p2p
    hace 1 semana 3 días
Principal › Blogs › blog de david

Timeout de un método en C++ con Glib

  • :: receta
  • C++
Mié, 2007-06-13 23:00 — david

Primera aproximación

#include 
#include 

using namespace std;

class A {
public: void tick() { cout << “tick” << endl; }
};

gboolean adaptor(gpointer p) { (static_cast(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:

$ make method_timeout CXXFLAGS=”$(pkg-config —cflags glib-2.0)” LDLIBS=”$(pkg-config —libs glib-2.0)”

Utilizando un método de clase como adaptador


class A {
public: void tick() { cout << “tick” << endl; }

static gboolean tick_adaptor(gpointer p) { (static_cast
(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

  • The function pointer tutorials
  • C++ FAQ LITE
  • blog de david
  • Añadir nuevo comentario
  • 1091 lecturas
Creative Commons License ARCO ORETO ESI
Powered by Drupal, an open source content management system
Free counter and web stats

Condiciones de copia y distribución | Aviso legal