func CreateXmlMapping(m mp.MappingIf) (xmlm *backend.XmlMapping) { xmlm = backend.XmlMappingNew(m.Graph().Filename(), m.Platform().Filename()) g := m.Graph().ItsType() for _, n := range g.InputNodes() { p, ok := m.Mapped(n.Name()) if ok { pname := fmt.Sprintf("%s/%s", p.Arch().Name(), p.Name()) xmlm.IOMappings = append(xmlm.IOMappings, *CreateXmlIOMap(n.Name(), pname)) } } for _, n := range g.OutputNodes() { p, ok := m.Mapped(n.Name()) if ok { pname := fmt.Sprintf("%s/%s", p.Arch().Name(), p.Name()) xmlm.IOMappings = append(xmlm.IOMappings, *CreateXmlIOMap(n.Name(), pname)) } } for _, n := range g.ProcessingNodes() { xmln := CreateXmlNodeMapList(m, n, n.Name()) for _, x := range xmln { xmlm.Mappings = append(xmlm.Mappings, x) } } return }
func (m *mapping) ReadFile(filepath string) error { xmlm := backend.XmlMappingNew("", "") err := xmlm.ReadFile(filepath) if err != nil { return fmt.Errorf("mapping.ReadFile: %v", err) } return m.createMappingFromXml(xmlm) }
func (m *mapping) Read(data []byte) (cnt int, err error) { xmlm := backend.XmlMappingNew(m.Graph().Filename(), m.Platform().Filename()) cnt, err = xmlm.Read(data) if err != nil { err = fmt.Errorf("mapping.Read: %v", err) return } err = m.createMappingFromXml(xmlm) return }