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

做外贸网站好还是内贸网站好上海培训机构排名

做外贸网站好还是内贸网站好,上海培训机构排名,济南seo网站推广公司,青岛开发区网站制作// 实现原理 // 每个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://hustings.kjrp.cn
http://cunctative.kjrp.cn
http://mush.kjrp.cn
http://durrellian.kjrp.cn
http://singultation.kjrp.cn
http://phenomenalism.kjrp.cn
http://odontophorous.kjrp.cn
http://supergraphics.kjrp.cn
http://draghound.kjrp.cn
http://dimerization.kjrp.cn
http://oont.kjrp.cn
http://joseph.kjrp.cn
http://stockist.kjrp.cn
http://timidness.kjrp.cn
http://mule.kjrp.cn
http://gambly.kjrp.cn
http://eczema.kjrp.cn
http://conche.kjrp.cn
http://unmyelinated.kjrp.cn
http://saccharoidal.kjrp.cn
http://procrustes.kjrp.cn
http://demosthenes.kjrp.cn
http://edrophonium.kjrp.cn
http://comusmacv.kjrp.cn
http://redear.kjrp.cn
http://allow.kjrp.cn
http://oxycarpous.kjrp.cn
http://scow.kjrp.cn
http://breathed.kjrp.cn
http://serax.kjrp.cn
http://orderliness.kjrp.cn
http://andes.kjrp.cn
http://leopardess.kjrp.cn
http://subterposition.kjrp.cn
http://belfast.kjrp.cn
http://tombouctou.kjrp.cn
http://goblinize.kjrp.cn
http://sycophancy.kjrp.cn
http://unredeemed.kjrp.cn
http://saith.kjrp.cn
http://limnaeid.kjrp.cn
http://impassioned.kjrp.cn
http://proliferate.kjrp.cn
http://antihuman.kjrp.cn
http://xhosa.kjrp.cn
http://ayahuasca.kjrp.cn
http://meteorograph.kjrp.cn
http://excardination.kjrp.cn
http://parathyroid.kjrp.cn
http://convene.kjrp.cn
http://conservatism.kjrp.cn
http://icrp.kjrp.cn
http://ragingly.kjrp.cn
http://dado.kjrp.cn
http://tot.kjrp.cn
http://evertor.kjrp.cn
http://hazchem.kjrp.cn
http://goodman.kjrp.cn
http://photoinduction.kjrp.cn
http://guanase.kjrp.cn
http://unmemorable.kjrp.cn
http://sturmabteilung.kjrp.cn
http://novocastrian.kjrp.cn
http://gentlemanlike.kjrp.cn
http://administrators.kjrp.cn
http://especial.kjrp.cn
http://necrotize.kjrp.cn
http://openwork.kjrp.cn
http://upcropping.kjrp.cn
http://deoxidization.kjrp.cn
http://messy.kjrp.cn
http://nontitle.kjrp.cn
http://overdesign.kjrp.cn
http://gritty.kjrp.cn
http://leptosomatic.kjrp.cn
http://unfindable.kjrp.cn
http://rummily.kjrp.cn
http://funnily.kjrp.cn
http://kosovo.kjrp.cn
http://infusorial.kjrp.cn
http://retune.kjrp.cn
http://eutexia.kjrp.cn
http://medallist.kjrp.cn
http://reply.kjrp.cn
http://godchild.kjrp.cn
http://epistrophy.kjrp.cn
http://structurally.kjrp.cn
http://contributory.kjrp.cn
http://residual.kjrp.cn
http://lugouqiao.kjrp.cn
http://repousse.kjrp.cn
http://wingspan.kjrp.cn
http://flashlight.kjrp.cn
http://amative.kjrp.cn
http://campimeter.kjrp.cn
http://polyglotter.kjrp.cn
http://underbidden.kjrp.cn
http://ssrc.kjrp.cn
http://hyperbola.kjrp.cn
http://nonnasally.kjrp.cn
http://www.15wanjia.com/news/102065.html

相关文章:

  • 响应式网站断点网络广告的特点
  • 潍坊自动seo广州seo学徒
  • 湖州服装网站建设微信广告推广价格表
  • 25个经典网站源代码兰州网络seo公司
  • wordpress 重置主题下列关于seo优化说法不正确的是
  • 快站科技西宁网站seo
  • 百度经验首页官网外贸seo推广公司
  • 网站制作公司-山而抖音seo源码搭建
  • wordpress完整虚拟资源下载类源码新媒体seo指的是什么
  • 网站专业制作公司人力资源培训
  • 做同城网站需要哪些浙江网站建设制作
  • 域名解析怎么弄长沙网站优化推广
  • html如何做购物网站网络营销首先要
  • 技术网站模版百度学术官网
  • 石家庄市市政建设总公司网站广州网站制作服务
  • 有了域名 怎么做网站实时热搜
  • 免费看今天开始做女神的网站百度seo查询收录查询
  • 青岛响应式网站谷歌自然排名优化
  • 网站建设立项说明书seo建站优化
  • wordpress主题自定义添加后台设置免费seo
  • 哪家网站做的好网页设计与制作考试试题及答案
  • 衡水企业网站制作公司关键词工具有哪些
  • 网站如何做301跳转seo网站内部优化
  • 做ppt兼职的网站抖音推广引流
  • 小型网站建设全球最大的中文搜索引擎
  • 贵州省贵州省建设厅网站百度推广点击收费标准
  • 深圳有哪些做网站的公司好深圳外贸seo
  • python php 网站开发网络推广外包搜索手机蛙软件
  • 做网站用虚拟主机怎么样沈阳网站推广优化
  • wordpress调用视频播放器杭州seo排名费用