public override IChildrenContainer Remove(IActorRef child) { var set = _toDie.Remove(child); if (set.IsEmpty) { if (_reason is SuspendReason.Termination) { return(TerminatedChildrenContainer.Instance); } return(NormalChildrenContainer.Create(InternalChildren.Remove(child.Path.Name))); } return(new TerminatingChildrenContainer(InternalChildren.Remove(child.Path.Name), set, _reason)); }
public virtual ChildrenContainer Reserve(string name) { return(NormalChildrenContainer.Create(_emptyStats.Add(name, ChildNameReserved.Instance))); }
public virtual ChildrenContainer Add(string name, ChildRestartStats stats) { var newMap = _emptyStats.Add(name, stats); return(NormalChildrenContainer.Create(newMap)); }