當前位置: 首頁>>代碼示例>>Golang>>正文


Golang behaviour.PortTypeIf類代碼示例

本文整理匯總了Golang中github.com/axel-freesp/sge/interface/behaviour.PortTypeIf的典型用法代碼示例。如果您正苦於以下問題:Golang PortTypeIf類的具體用法?Golang PortTypeIf怎麽用?Golang PortTypeIf使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了PortTypeIf類的7個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: removeOutputNodeFromPortType

func (g *signalGraphType) removeOutputNodeFromPortType(p bh.PortTypeIf) {
	for _, n := range g.OutputNodes() {
		if n.Name() == fmt.Sprintf("out-%s", p.Name()) {
			g.RemoveNode(n)
			return
		}
	}
}
開發者ID:axel-freesp,項目名稱:sge,代碼行數:8,代碼來源:signalgraphtype.go

示例2: findOutputNodeFromPortType

func (g *signalGraphType) findOutputNodeFromPortType(p bh.PortTypeIf) bh.NodeIf {
	for _, n := range g.OutputNodes() {
		if n.Name() == fmt.Sprintf("out-%s", p.Name()) {
			return n
		}
	}
	return nil
}
開發者ID:axel-freesp,項目名稱:sge,代碼行數:8,代碼來源:signalgraphtype.go

示例3: removePort

func (n *node) removePort(pt bh.PortTypeIf) {
	var list *portList
	if pt.Direction() == gr.InPort {
		list = &n.inPort
	} else {
		list = &n.outPort
	}
	var i int
	for i = 0; i < len(list.Ports()); i++ {
		if list.Ports()[i].Name() == pt.Name() {
			break
		}
	}
	toRemove := list.Ports()[i]
	for _, c := range toRemove.Connections() {
		c.RemoveConnection(toRemove)
	}
	list.Remove(toRemove)
}
開發者ID:axel-freesp,項目名稱:sge,代碼行數:19,代碼來源:node.go

示例4: RemoveNamedPortType

func (t *nodeType) RemoveNamedPortType(p bh.PortTypeIf) {
	for _, impl := range t.implementation.Implementations() {
		if impl.ImplementationType() == bh.NodeTypeGraph {
			if p.Direction() == gr.InPort {
				impl.Graph().(*signalGraphType).removeInputNodeFromPortType(p)
			} else {
				impl.Graph().(*signalGraphType).removeOutputNodeFromPortType(p)
			}
		}
	}
	for _, n := range t.instances.Nodes() {
		n.(*node).removePort(p.(*portType))
	}
	var list *portTypeList
	if p.Direction() == gr.InPort {
		list = &t.inPorts
	} else {
		list = &t.outPorts
	}
	list.Remove(p)
}
開發者ID:axel-freesp,項目名稱:sge,代碼行數:21,代碼來源:nodetype.go

示例5: addOutputNodeFromPortType

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)
	}
}
開發者ID:axel-freesp,項目名稱:sge,代碼行數:22,代碼來源:signalgraphtype.go

示例6: AddNamedPortType

func (t *nodeType) AddNamedPortType(p bh.PortTypeIf) {
	if p.Direction() == gr.InPort {
		t.inPorts.Append(p)
	} else {
		t.outPorts.Append(p)
	}
	for _, n := range t.instances.Nodes() {
		if p.Direction() == gr.InPort {
			n.(*node).addInPort(p)
		} else {
			n.(*node).addOutPort(p)
		}
	}
	for _, impl := range t.implementation.Implementations() {
		if impl.ImplementationType() == bh.NodeTypeGraph {
			if p.Direction() == gr.InPort {
				impl.Graph().(*signalGraphType).addInputNodeFromPortType(p)
			} else {
				impl.Graph().(*signalGraphType).addOutputNodeFromPortType(p)
			}
		}
	}
}
開發者ID:axel-freesp,項目名稱:sge,代碼行數:23,代碼來源:nodetype.go

示例7: CreateXmlNamedOutPort

func CreateXmlNamedOutPort(p bh.PortTypeIf) (xmlp *backend.XmlOutPort) {
	xmlp = backend.XmlOutPortNew(p.Name(), p.SignalType().TypeName())
	//xmlp.Entry = freesp.CreateXmlModePosition(p).Entry
	return
}
開發者ID:axel-freesp,項目名稱:sge,代碼行數:5,代碼來源:backendconversions.go


注:本文中的github.com/axel-freesp/sge/interface/behaviour.PortTypeIf類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。