private protected override void OnChildClosed(IOpenKitObject childObject) { lock (LockObject) { ThisComposite.RemoveChildFromList(childObject); } }
private protected override void OnChildClosed(IOpenKitObject childObject) { lock (lockObject) { ThisComposite.RemoveChildFromList(childObject); if (childObject is ISessionInternals session) { sessionWatchdog.DequeueFromClosing(session); } } }
void IOpenKitComposite.OnChildClosed(IOpenKitObject childObject) { OnChildClosed(childObject); }
/// <summary> /// Abstract method to notify the composite about closing/ending a child object. /// /// <para> /// The implementing class is fully responsible to handle the implementation. /// In most cases removing the child from the container <see cref="IOpenKitComposite.RemoveChildFromList"/> /// is sufficient. /// </para> /// </summary> /// <param name="childObject"></param> private protected abstract void OnChildClosed(IOpenKitObject childObject);
bool IOpenKitComposite.RemoveChildFromList(IOpenKitObject childObject) { return(children.Remove(childObject)); }
void IOpenKitComposite.StoreChildInList(IOpenKitObject childObject) { children.Add(childObject); }