/// Establishes a link relation between this actor and `x` /// and returns whether the operation succeeded. inline bool establish_backlink(abstract_actor* x) { return link_impl(establish_backlink_op, x); }
/// Removes the link relation between this actor and `x` /// and returns whether the operation succeeded. inline bool remove_backlink(abstract_actor* x) { return link_impl(remove_backlink_op, x); }
void unlink_from(const ActorHandle& x) { auto ptr = actor_cast<abstract_actor*>(x); if (!ptr || ptr == this) return; link_impl(remove_link_op, ptr); }
/// Unlinks this actor from `x`. void unlink_from(const actor_addr& x) { auto ptr = actor_cast<strong_actor_ptr>(x); if (!ptr || ptr->get() == this) return; link_impl(remove_link_op, ptr->get()); }
void link_to(const ActorHandle& x) { auto ptr = actor_cast<abstract_actor*>(x); if (!ptr || ptr == this) return; link_impl(establish_link_op, ptr); }
/// Links this actor to `x`. void link_to(const actor_addr& x) { auto ptr = actor_cast<strong_actor_ptr>(x); if (!ptr || ptr->get() == this) return; link_impl(establish_link_op, ptr->get()); }