void OnInputPinDisconnected(viInternalLink link) { viPin sourcepin = this.graph.FindPin(link.Otherpin); viOutputPin op = (viOutputPin)sourcepin; viNode sink = this.hostnodes[link.Host]; viInputPin ip = null; foreach (viInputPin i in sink.InputPins) { if (i.ComInstance == link.Instance) { ip = i; } } op.ChildrenPins.Remove(ip); ip.ParentPin = null; Debug.WriteLine("Disconnect Source: " + sourcepin.ParentNode.HdeNode.GetID().ToString() + " Sink: " + sink.HdeNode.GetID()); }
private bool ProcessLink(viInternalLink link) { viPin sourcepin = this.graph.FindPin(link.Otherpin); viOutputPin op = (viOutputPin)sourcepin; if (sourcepin != null && this.hostnodes.ContainsKey(link.Host)) { viNode sink = this.hostnodes[link.Host]; viInputPin ip = null; foreach (viInputPin i in sink.InputPins) { if (i.ComInstance == link.Instance) { ip = i; } } op.ChildrenPins.Add(ip); ip.ParentPin = op; Debug.WriteLine("Connect Source: " + sourcepin.ParentNode.HdeNode.GetID().ToString() + " Sink: " + sink.HdeNode.GetID()); return true; } else { return false; } }
private void OnInputPinConnected(viInternalLink link) { //Try to process the link, if it fails //(due to info not available yet, place in queue) if (!this.ProcessLink(link)) { this.pendinglinks.Add(link); } }