func (g *signalGraphType) addOutputNodeFromPortType(p bh.PortTypeIf) { st := p.SignalType() ntName := createOutputNodeTypeName(st.TypeName()) nt, ok := freesp.GetNodeTypeByName(ntName) if !ok { nt = NodeTypeNew(ntName, "") nt.(*nodeType).addInPort("", st) freesp.RegisterNodeType(nt) } if len(nt.(*nodeType).inPorts.PortTypes()) == 0 { log.Fatal("signalGraphType.addOutputNodeFromNamedPortType: invalid output node type") } n, err := NodeNew(fmt.Sprintf("out-%s", p.Name()), nt, g) if err != nil { log.Fatal("signalGraphType.addOutputNodeFromPortType: TODO: error handling") } n.portlink = p err = g.addNode(n) if err != nil { log.Fatal("signalGraphType.addOutputNodeFromNamedPortType: AddNode failed:", err) } }
func CreateXmlNamedOutPort(p bh.PortTypeIf) (xmlp *backend.XmlOutPort) { xmlp = backend.XmlOutPortNew(p.Name(), p.SignalType().TypeName()) //xmlp.Entry = freesp.CreateXmlModePosition(p).Entry return }