func CreateXmlArch(a pf.ArchIf) *backend.XmlArch { ret := backend.XmlArchNew(a.Name()) for _, t := range a.IOTypes() { ret.IOType = append(ret.IOType, *CreateXmlIOType(t)) } for _, p := range a.Processes() { ret.Processes = append(ret.Processes, *CreateXmlProcess(p)) } //ret.Entry = freesp.CreateXmlModePosition(a).Entry return ret }
func CreateXmlArchHint(a pf.ArchIf) (xmla *backend.XmlArchPosHint) { xmla = backend.XmlArchPosHintNew(a.Name()) xmla.Entry = freesp.CreateXmlModePosition(a).Entry for _, p := range a.ArchPorts() { xmla.ArchPorts = append(xmla.ArchPorts, *CreateXmlArchPortHint(p)) } for _, p := range a.Processes() { xmla.Processes = append(xmla.Processes, *CreateXmlProcessHint(p)) } return }
func (v *mappingView) focusArchFromUserObject(obj pf.ArchIf) (ret graph.ArchIf, ok bool) { var a graph.ArchIf for _, a = range v.arch { if obj.Name() == a.UserObj().Name() { ret = a ok = true } else { if a.Deselect() { v.repaintArch(a) } } } return }
func channelGetIOTypeFromArch(a pf.ArchIf, iotype string) (iot pf.IOTypeIf, err error) { var ok bool for _, iot = range a.IOTypes() { if iot.Name() == iotype { ok = true break } } if !ok { err = fmt.Errorf("createInChannelFromXml error: referenced ioType %s not found in arch %s.\n", iotype, a.Name()) } return }