当前位置:  开发笔记 > 编程语言 > 正文

在C++ Actors Framework中在类型化actor之间转发消息的最佳实践?

如何解决《在C++ActorsFramework中在类型化actor之间转发消息的最佳实践?》经验,为你挑选了1个好方法。



1> neverlord..:

因此,我认为直接调用forward_current_message是可以的吗?

不,forward_current_message不是CAF中公共API的一部分(因此未在Doxygen中列出).这意味着成员函数可以被重命名,删除,或制成protected/ private随时.

将消息转发给类型化actor的最佳实践是delegate.这是一个新功能(0.14.1引入),遗憾的是手册中还没有提到.目前可用的最佳"文档"是它在类型化演员的单元测试中的使用.

简短版本是:delegate替代send它转发请求的责任.在类型化的actor中,您可以返回delegated而不是T从消息处理程序返回,以指示其他actor将使用a响应T原始发件人.

在您的情况下,类A将实现如下:

class A : public a_type::base
{
protected:
    behavior_type make_behavior() override {
        return {
            [this](int value) {
                aout(this) << "Number of tasks: " << value << endl;
                auto forwardDestination = spawn(bBehavior);
                this->quit();
                return delegate(forwardDestination, value);
            }
        };
    }
};

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有