Class-based actors
A 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的函数,其实就是这个类的构造函数,定义了这个初始行为。

关于第一点呢,说明这个类可以使用很多基本的send,看了一点点源码发现event_based_actor间接继承了一个叫 localactor 的类,关于这个以类为基础构造的actor的用法可以去里面找,还是很方便的。

关于第二点,比较简单,就是要注意,以函数来构造的actor,会传入参数,但是这个main_behavior是不用参数的。

第二点带来的问题,就是函数构造的actor发送给自己消息只需要self来只待自己,如

  

self ->send(self,"hello");

现在不行了,自己就想到一种办法就是在类内声明一个scoped_actor,发送给this指针(在本地发送应该是用指针的)。

#include <string>
#include <iostream>
#include "caf/io/all.hpp"
#include "caf/all.hpp"
using namespace std;
using namespace caf; class SlaveNodeActor : public event_based_actor {
public:
behavior make_behavior() override {
scoped_actor a;
a
->send(this,"hello");
return {
[=](const string& str ) {
cout << str << endl;
quit();
},
caf::others >> [=]() {
cout << "unkown message" << endl;
}
};
}
}; int main(){
auto slave_actor = caf::spawn<SlaveNodeActor>();
caf::await_all_actors_done();
return ;
}

然后,最近写代码发现这样一种用法,就是类A存放这actor的信息如IP,端口号,以及这个actor本身的信息,作为一个人就需要姓名,而类B继承了event_based_actor,作为类A的友元类去调用A的信息,B的构造函数需要传入一个类A的指针即可,A负责对外提供接口控制actor的行为。

贴个图片

为了方便控制,类A(SlaveNode 最好好把actor作为自己的成员变量,不然使用的时候会不方便,用了就知道,你懂得。)

之后又试了一下,其实可以把上面生成scoped_actor 去掉,

直接用

这样也是可以的,功能都是一样的。(之前有些粗糙误导了)

最后弱弱的说一句,求互粉阿!

最新文章

  1. msql 实现sequence功能增强
  2. jquery实现css3动画
  3. asp.net core 使用 StaticFiles 中间件 (不完整翻译)
  4. js 在myeclipse中报错
  5. 使用sh-x调试shell脚本_转
  6. HDU(3790),最短路二级标准
  7. wordpress可视化编辑器的开启/关闭
  8. Oracle的函数返回表类型(转)
  9. Java出现No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing--转
  10. android JNI (二) 第一个 android工程
  11. 移动WEB开发常用技巧
  12. web前端之 CSS
  13. cocos2d-x 3.0 新特性样例
  14. I/O和管道
  15. shell的嵌入命令大全
  16. Linux学习笔记:安装python
  17. Maven Web Projest经Update Projest报错:Cannot nest &#39;myApp/src/main/resource&#39; inside &#39;myApp/src&#39;. To enable the nesting exclude &#39;main/&#39; from &#39;myApp/src&#39;
  18. CSS3 Transform的perspective属性
  19. Flask使用SQLAlchemy两种方式
  20. 讲一讲Servlet和JSP的关系

热门文章

  1. hdu 5428 The Factor 分解质因数
  2. Hanoi Tower问题分析
  3. HDU 1999 不可摸数
  4. 现在的SEO最须要会点啥
  5. zookeeper使用和原理探究(一)
  6. 粒子系统1:简介&amp;工具使用
  7. PAT 1018
  8. 阅读uboot
  9. 小白日记35:kali渗透测试之Web渗透-手动漏洞挖掘(一)-默认安装引发的漏洞
  10. 炼数成金hadoop视频干货02