Пример #1
0
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
}
Пример #2
0
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)
}
Пример #3
0
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
}