只是c++中的事件

Just events in C++

本文关键字:事件 c++ 只是      更新时间:2023-10-16

在规划项目时,我意识到使用事件编程会运行得更好。但事实证明,所有的事件库都集中在I/O的东西,不给基本事件像NodeJS的EventEmitter可以,当另一个对象从它继承。

我所寻找的是在我的c++代码中启用简单的事件。让我们以以下代码为例:

class Window : EventClass {
private:
    NativeWindow* _w;
public:
    Window() {
        // Initialize a window for the platform.
        _w = new NativeWindow();
        emit("init", _w);
    }
    void open() {
        // Open the window...
        emit("open", _w);
    }
    // ...
};
int main() {
    Window w();
    w.on("init", [](NativeWindow* w){
        cout << "Window initialized." << endl;
    });
    w.on("open", [](NativeWindow* w){
        w->setTitle("foo");
    });
}

是否有一个库可以实现这样的行为?我看到的所有这些都是如此专注于事件I/O,以至于他们忘记了提供原始事件本身…

你可以使用nodejs插件,它允许你在nodejs中使用c++库。参考这个链接。

>> node-gyp configure build

这将创建你的插件,这是一个c++代码片段,你可以使用require(pathtoaddon)

将它包含在你的node js文件中