REACT-CPP C++ 事件循环库开源项目

我要开发同款
匿名用户2018年03月05日
37阅读
开发技术C/C++
所属分类程序开发、其他开发相关
授权协议Apache-2.0

作品详情

REACT-CPP是利用C++11的lambda表达式在文件描述符或定时器激活的时候进行通知的事件循环库。在它内部实质是对libev库的包装,因此也依赖于该库。

在一个典型的应用程序中,你创建了一个mainloop类的实例,然后注册你想要查看的filedescriptors,注册事件处理程序和计时器:

#include <reactcpp.h>#include <unistd.h>#include <iostream>/** *  Main application procedure *  @return int */int main(){    // create an event loop    React::MainLoop loop;    // set a timer to stop the application after five seconds    loop.onTimeout(5.0, []() {            // report that the timer expired        std::cout << "timer expired" << std::endl;            // stop the application        exit(0);    });        // we'd like to be notified when input is available on stdin    loop.onReadable(STDIN_FILENO, []() -> bool {            // read input        std::string buffer;        std::cin >> buffer;            // show what we read        std::cout << buffer << std::endl;                // return true, so that we also return future read events        return true;    });    // handler when control+c is pressed    loop.onSignal(SIGINT, []() -> bool {                // report that we got a signal        std::cout << "control+c detected" << std::endl;                // stop the application        exit(0);                // although this code is unreachable, we return false because        // we're no longer interested in future SIGINT signals        return false;    });    // run the event loop    loop.run();    // done    return 0;}
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论