看usermanual(使用随笔一里面有)看到差不多一半的时候,这个keep_behavior与unbeacome的结合引起了我的注意.(这是为什么呢?) 因为它的示例代码写的太简单了!我真的没看太懂,我就自己把他的改了改放上来. 先讲一下,基本概念,就是一个actor可以有多个行为(behavior)那么become就可以让一个actor变成一种行为. 如果使用了keep_behavior呢就会把当前的行为压入“行为栈”(behavior stack),  调用unbecome就可以变成行为栈…
最近干活在写毕设,用到了CAF,看了文档,发现了一些小坑,自己摸索写点随笔.(CAF的github网站 https://github.com/actor-framework/actor-framework)里面的example文件夹例子不错. 但是感觉其实实际使用还是会有很多没讲到. 概念的东西可以看http://www.wfuyu.com/mvc/21278.html 我学习就看着http://www.actor-framework.org/manual/看下去看着不太会的就写例子,第一个坑就…
Class-based actorsA class-based actor is a subtype of event_based_actor and must implement the pure virtual member function make_behavior returning the initial behavior. 原话告诉我们两点:1.必须继承“ event_based_actor”. 2.重载make_behavior的函数,其实就是这个类的构造函数,定义了这个初始行为…
e). 消息延迟发送(和前面没太大区别直接上代码) #include <iostream> #include "caf/all.hpp" #include "caf/io/all.hpp" #include <string> #include <chrono> using namespace std; using namespace caf; behavior fun(event_based_actor* self){ retur…
c). 同步发送, 等待响应, 超时后收到1个系统消息. 贴上代码 #include <iostream> #include "caf/all.hpp" #include "caf/io/all.hpp" #include <string> #include <thread> #include <chrono> #include <unistd.h> using namespace std; using n…
a). 发完就忘, 就像上面anon_send 以及send #include <iostream> #include "caf/all.hpp" #include "caf/io/all.hpp" #include <string> using namespace std; using namespace caf; behavior fun(event_based_actor* self){ return { [self](const st…
User-Defined Data Types in Messages(用户自定义类型)All user-defined types must be explicitly “announced” so that CAF can (de)serialize them correctly. 之前干活,一开始不知道CAF自带序列化,都用boost库来做序列化,就是变string 类型发送,发现很多STL有些搞搞比较麻烦,发现诶?CAF居然比boost库好使! 那么就来搞一下看看. 先看一个例子(也是u…
昨天讲了Struct,还是不够满意,毕竟C++里面类用的比较多嘛,那就先上个类, 这段代码是我稍微改编了一下的结果.都是最基本的用法. #include <utility> #include <iostream> #include <vector> #include "caf/all.hpp" using std::cout; using std::endl; using std::make_pair; using std::vector; usin…
这里应该是序列化的最后一篇.感觉自己写的不是很好,也一点点在学习.这次就不贴上代码了.代码在github上的announce5.cpp.代码简单,但是分析下去会有细思恐极的感觉! 先看一下几个函数是干什么的吧.(anounce5.cpp:175 176) 第一个参数类型为type_info,(我也是第一次看到,去查了资料简单的说就是存了类的信息(Stores information about a type.原话) An object of this class is returned by t…
刘德华 有一首歌叫<马桶>,其中有一句歌词是:每一个马桶都是英雄. EFCore也有一个英雄,在幕后默默地任劳任怨.它就叫 "支持字段" (Backing Fields): 中文版:https://docs.microsoft.com/zh-cn/ef/core/modeling/backing-field 支持字段允许 EF 读取和/或写入字段而不是一个属性. 在类中的封装用于限制的使用和/或增强围绕访问数据的语义由应用程序代码,但值应进行读取和/或写入到数据库而无需使用…