public void Remove(ref AInputDequeuer dequeuer) { Debug.Assert(Dequeuers.Contains(dequeuer)); Debug.Assert(dequeuer.Enqueuers.Contains(this)); if (!Dequeuers.Contains(dequeuer)) { return; } UnregisterDequeuer(ref dequeuer); dequeuer.Enqueuers.Remove(this); Dequeuers.Remove(dequeuer); Debug.Assert(dequeuer.Enqueuers.Count >= 0); }
public void Add(ref AInputDequeuer dequeuer) { Debug.Assert(!Dequeuers.Contains(dequeuer)); Debug.Assert(!dequeuer.Enqueuers.Contains(this)); if (Dequeuers.Contains(dequeuer)) { return; } RegisterDequeuer(ref dequeuer); dequeuer.Enqueuers.Add(this); Dequeuers.Add(dequeuer); Debug.Assert(dequeuer.Enqueuers.Count <= 2); }