private void CreateAndBindPath(Tn source, long depTime, Tn dest, long arrTime) { long delay = arrTime - depTime; Tp pipe = _a.AddPipe(source, dest, delay); _a.BindPipe(pipe, depTime, source, depTime); }
public void Bind(long depTime) { long curTime = depTime; Tn emitter = _a.Source[Segments[0].Inst]; for (int i = 0; i < Segments.Length; i++) { Tp pipe = Segments[i].Realize(_a); Tn tmpEmitter; long tmpDepTime; if (_a.IsPipeBound(pipe, curTime, out tmpEmitter, out tmpDepTime)) { Debug.Assert(object.Equals(emitter, tmpEmitter)); Debug.Assert(depTime == tmpDepTime); } else { _a.BindPipe(pipe, curTime, emitter, depTime); } curTime += _a.Delay[pipe]; } }