Mercurial > gemma
diff pkg/mesh/meshserialize.go @ 5686:c33a5354328d sr-v2
Add stubs for de/serialize v2 meshes.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Mon, 12 Feb 2024 01:17:22 +0100 |
parents | a87900c0fd11 |
children | 8ff842858434 |
line wrap: on
line diff
--- a/pkg/mesh/meshserialize.go Mon Feb 12 01:02:53 2024 +0100 +++ b/pkg/mesh/meshserialize.go Mon Feb 12 01:17:22 2024 +0100 @@ -18,7 +18,6 @@ "bytes" "compress/gzip" "encoding/binary" - "errors" "fmt" "io" ) @@ -51,7 +50,6 @@ } version = coalesceVersion(version) - if err := s.serializeVn(w, version); err != nil { return nil, 0, err } @@ -64,27 +62,19 @@ } func (s *STRTree) serializeVn(w io.Writer, version int) error { - - if version > Version { - return fmt.Errorf( - "cannot serialize mesh version %d. Highest supported version %d", - version, Version) + switch version { + case 1: + return s.serializeV1(w) + case 2: + return s.serializeV2(w) + default: + return fmt.Errorf("cannot serialize mesh version %d", version) } - - return s.serializeV1(w) } // FromBytes restores a STRTree from a binary representation. func (s *STRTree) FromBytes(data []byte, version int) error { - version = coalesceVersion(version) - - if version > Version { - return fmt.Errorf( - "cannot deserialize mesh version %d. Highest supported version %d", - version, Version) - } - r, err := gzip.NewReader(bytes.NewReader(data)) if err != nil { return err @@ -102,7 +92,7 @@ if bytes.HasPrefix(header, []byte(magicHeader)) { realVersion := int(binary.LittleEndian.Uint32(header[4:])) if realVersion != version { - return fmt.Errorf("sounding result version mismatch: Have %d expect %d", + return fmt.Errorf("mesh version mismatch: Have %d expect %d", realVersion, version) } return s.deserializeVn(r, realVersion) @@ -112,9 +102,12 @@ } func (s *STRTree) deserializeVn(r *bufio.Reader, version int) error { - if version == 1 { + switch version { + case 1: return s.deserializeV1(r) + case 2: + return s.deserializeV2(r) + default: + return fmt.Errorf("cannot deserialize mesh version %d", version) } - // TODO: Implement me! - return errors.New("not implemented, yet") }