私はカフェで遊び始め、グラフを表現するために使い始めました。
このグラフは単方向であるため、必要なアクターを作成してそれに応じてリンクすることができますが、今はそのアクターの名前で特定された特定のアクターを探したいと思います。カフェで俳優を見つける方法
class node_actor : public event_based_actor{
std::string m_name;
...
};
int main(){
auto entry_actor = spawn<node_actor>();
// node_actor will spawn other actors with names
// like this: node_actor will spawn node1
// node1 will spwan node2
// node2 will spwan node3 and so on
// now I want to send a message to node2
scoped_actor self;
self->send(n2, 42});
...
}
n2
を見つける最良の方法はありますか?
これはグループによって処理され、メッセージをブロードキャストできますか?たとえば、次のようになります。
{
auto g = group::get("local", "Node events");
auto entry_actor = spawn_in_group<node_actor>(g);
// change all nodes to call spawn_in_group
scoped_actor self;
self->send(g, name, 42})
}
メッセージが一致するとすべてのノードをチェックする必要があるため、それほどオーバーヘッドはありませんか?
また、私がまだドキュメントで見つけられなかった他の方法がありますか?
ありがとう、私はそれを試してみましょう。私はドキュメントでそれを見つけられなかったので、もう一つのこと。第2のグループパラメータを使用してグループを分割することはできますか?例えば、group :: get( "local"、 "EvenNodes") 'と' group :: get( "local"、 "OddNodes") 'は2つのノードスペースを作る? – mkaes
はい、2番目のパラメータは任意のユーザ定義の識別子(文字列)です。必要な数のグループを作成できます。 – neverlord
'name'メンバを持つ' ConfigServ'と状態ベースのアクタについてはどうですか? – mavam