当前位置: 首页 > news >正文

设计网站建设选题报告免费网络推广工具

设计网站建设选题报告,免费网络推广工具,在线可以做翻译的网站,老年门户网站建设的意义// 实现原理 // 每个signal映射到bitset位,全集 // 每个slot做为signal的bitset子集 // signal全集触发,标志位有效 // flip将触发事件队列前置 // slot检测智能指针全集触发的标志位,主动运行子集绑定的函数 // 下一帧对bitset全集进行触发清…

// 实现原理
// 每个signal映射到bitset位,全集
// 每个slot做为signal的bitset子集
// signal全集触发,标志位有效
// flip将触发事件队列前置
// slot检测智能指针全集触发的标志位,主动运行子集绑定的函数
// 下一帧对bitset全集进行触发清空,防止slot一直检测到signal触发

#include <any>
#include <iostream>#include "blinker.h"void testMatch() {blinker::SignalTrie<1024> trie;trie.Put("ab.cd.ef", 1);trie.Put("ab.cd.kk", 2);trie.Put("ab.xy.zz", 3);trie.Put("tt.xx", 4);trie.Put("ab.cd", 5);auto m1 = trie.Match("ab.cd.ef");//REQUIRE(m1.count() == 1);//REQUIRE(m1[1]);auto m2 = trie.Match("ab.cd.kk");//REQUIRE(m2.count() == 1);//REQUIRE(m2[2]);auto m3 = trie.Match("ab.xy.zz");//REQUIRE(m3.count() == 1);//REQUIRE(m3[3]);auto m4 = trie.Match("ab.not.found");//REQUIRE(m4.count() == 0);auto m5 = trie.Match("ab.*");//REQUIRE(m5.count() == 4);//REQUIRE(m5[1]);//REQUIRE(m5[2]);//REQUIRE(m5[3]);//REQUIRE(m5[5]);auto m6 = trie.Match("*");//REQUIRE(m6.count() == 5);//REQUIRE(m6[1]);//REQUIRE(m6[2]);//REQUIRE(m6[3]);//REQUIRE(m6[4]);//REQUIRE(m6[5]);auto m7 = trie.Match("ab.cd.*");//REQUIRE(m7.count() == 2);//REQUIRE(m7[1]);//REQUIRE(m7[2]);auto m8 = trie.Match("tt.xx.");//REQUIRE(m8.count() == 0);auto m9 = trie.Match("tt.xx.*");//REQUIRE(m9.count() == 0);auto m10 = trie.Match("ab.cd");//REQUIRE(m10.count() == 1);//REQUIRE(m10[5]);
}void testValue() {struct Data {int value = 1;Data(int value) : value(value) {}};blinker::Board board;auto signal1 = board.NewSignal("ab.cd");auto signal2 = board.NewSignal("ab.ef");auto signal3 = board.NewSignal("xy.zk");auto conn1 = board.Connect("ab.*");auto conn2 = board.Connect("ab.cd");auto conn3 = board.Connect("ab.ef");auto conn4 = board.Connect("xy.zk");auto conn5 = board.Connect("*");bool conn1CallbackCalled = false;bool conn2CallbackCalled = false;bool conn3CallbackCalled = false;bool conn4CallbackCalled = false;bool conn5CallbackCalled = false;auto tick = [&]() {signal1->Emit(std::make_shared<Data>(1));signal2->Emit(std::make_shared<Data>(2));signal3->Emit(std::make_shared<Data>(3));// signal1 and signal2conn1->Poll([&](const blinker::SignalId id, std::any data) {conn1CallbackCalled = true;auto p = std::any_cast<std::shared_ptr<Data>>(data);if (id == signal1->Id())std::cout << "value: " << p->value << std::endl;else if (id == signal2->Id())std::cout << "value: " << p->value << std::endl;elsestd::cout << "value error!" << std::endl;});// signal1conn2->Poll([&](const blinker::SignalId id, std::any data) {conn2CallbackCalled = true;auto p = std::any_cast<std::shared_ptr<Data>>(data);if (id == signal1->Id())std::cout << "value: " << p->value << std::endl;elsestd::cout << "value error!" << std::endl;});// signal2conn3->Poll([&](const blinker::SignalId id, std::any data) {conn3CallbackCalled = true;auto p = std::any_cast<std::shared_ptr<Data>>(data);if (id == signal2->Id())std::cout << "value: " << p->value << std::endl;elsestd::cout << "value error!" << std::endl;});// signal3conn4->Poll([&](const blinker::SignalId id, std::any data) {conn4CallbackCalled = true;auto p = std::any_cast<std::shared_ptr<Data>>(data);if (id == signal3->Id())std::cout << "value: " << p->value << std::endl;else                std::cout << "value error!" << std::endl;});// all signalsconn5->Poll([&](const blinker::SignalId id, std::any data) {conn5CallbackCalled = true;auto p = std::any_cast<std::shared_ptr<Data>>(data);if (id == signal1->Id())std::cout << "value: " << p->value << std::endl;else if (id == signal2->Id())std::cout << "value: " << p->value << std::endl;else if (id == signal3->Id())std::cout << "value: " << p->value << std::endl;elsestd::cout << "value error!" << std::endl;});board.Flip();};tick();// still not called.tick();// called after flip
}int testLoops() {// Creates a board.blinker::Board board;// Creates signals.auto taskStarted = board.NewSignal("task.started");auto taskEnded = board.NewSignal("task.ended");auto actionStarted = board.NewSignal("action.started");// Creates connection to match some signals.auto connection = board.Connect("task.*");// Callback to be called on signal fire.auto callback = [&](const blinker::SignalId id, std::any data) {if (id == taskStarted->Id())std::cout << "signal taskStarted:";else if (id == taskEnded->Id())std::cout << "signal taskEnded:";else if (id == actionStarted->Id())std::cout << "signal actionStarted-:";std::cout << std::any_cast<int>(data) << std::endl;};// Assuming your main tick function here.for (int i = 0; i < 10; i++) {// Emit some signals (to backend).taskStarted->Emit(i);taskEnded->Emit(i);actionStarted->Emit(i);// Poll from frontend.connection->Poll(callback);// Flip double buffers.board.Flip();}return 0;
}void test() {testMatch();testValue();testLoops();
}

输出

value: 1
value: 2
value: 1
value: 2
value: 3
value: 1
value: 2
value: 3
signal taskStarted:0
signal taskEnded:0
signal taskStarted:1
signal taskEnded:1
signal taskStarted:2
signal taskEnded:2
signal taskStarted:3
signal taskEnded:3
signal taskStarted:4
signal taskEnded:4
signal taskStarted:5
signal taskEnded:5
signal taskStarted:6
signal taskEnded:6
signal taskStarted:7
signal taskEnded:7
signal taskStarted:8
signal taskEnded:8

参考

GitHub - hit9/blinker.h: A lightweight signal/event library for C++, similar to Python's blinker, but designed to work with ticking loops.


创作不易,小小的支持一下吧!

http://www.yayakq.cn/news/39654/

相关文章:

  • 重庆企业网站建站网站建设违约责任
  • 国外做蛋糕的网站百度指数的数据怎么导出
  • 山东金城建设网站做外贸营销网站销售咋样
  • 网站建设zrhskj实验室网站建设方案
  • php做网站浏览量项目管理软件哪个好
  • 公司网站应达到的功能东莞网站建设的收费
  • 创建空白网站北京有限公司公章图片
  • 网站500兆空间多少钱沈阳做网站优化
  • html5 js全屏滑动网站源码wordpress阅读权限
  • 公司网站宣传设计贵州微信网站建设
  • 我想注册网站我怎么做网站建设中如何使用字体
  • 法学院网站建设建议建设网站提供资料的函
  • 个人适合做什么网站网页设计实训报告总结万能模板
  • 国外网站赚钱网站建设微信开发
  • 乐清网站推广中国企业网官方网站下载
  • 网站2级域名 还是子目录seo关键词优化公司哪家好
  • 做网站设计需求宁夏省建筑信息平台
  • 百度云搜索引擎入口官网企业网站的优化方案
  • 免费的黄金网站有哪些网站主机英文
  • 做服务网站建设微信商城网站
  • zhihe网站建设 淘宝目前最火的推广平台
  • 如何查看网站seo网站改版要改哪些页面
  • 电子拜年贺卡在线制作网站互联网学校
  • 网站关键词优化方式网站建设+用ftp上传文件
  • 建设银行网站怎么下设计公司平面设计
  • 免费建网站哪个好搜索引擎优化的例子
  • 北京企业网站建设方网页建设与网站设计心德体会
  • 网站上广告动图是怎么做的电子商务网站的设计要求包括
  • 云南营销型网站建设墨客网站建设xcyxqc
  • 合肥建设网站查询免费微网站与公众号平台对接