• [^] # Re: Intérêt

    Posté par (site web personnel) . En réponse à la dépêche Haiku est vivant. Évalué à 2.

    On peut rapprocher ça du système de signaux et slots en Qt, mais l'implémentation est uniquement en C++, là ou Qt a besoin du préprocesseur moc.

    Pas vraiment. J'ai regardé vite fait la documentation de BMessage et ça ressemble plutôt au système d'événement de Qt.

    Dans Qt, chaque QObject est associé à un thread. et on peux poster des messages a un object:

    QEvent *event = new MyMessageEvent("hello");
    QApplication::postEvent(myObject, event);

    Cela va poster un message qui va être reçu par un autre object: (QObject::event est appelé dans le thread associé à cet object)

    bool MyObject::event(QEvent *e) /* override */
    {
     if (e->type() == MyMessageEvent::Type) {
     return actOnMessage(static_cast<MyMessage*>(e)->message());
     }
     return BaseClass::event(e);
    }

    Et ça ressemble fort à ce que j'ai pu voir dans la documentation de Haiku.

    Les signaux est slots c'est du « sucre syntaxique » pour des callbacks. Moins de boilerplate, et plus facile à utiliser. C'est censé produire du code plus lisible et moins spaghetti que de la programmation événementielle.
    (Ça utilise des événement en interne)