Shows progress and also added a loop flag so that it can go around and around

This commit is contained in:
2025-10-10 23:22:55 +01:00
parent 5f44960260
commit 9d3e9942d7
5 changed files with 122 additions and 39 deletions
+55
View File
@@ -0,0 +1,55 @@
package mockserver
import (
"bytes"
"encoding/binary"
"encoding/gob"
"io"
sdk "github.com/ESilva15/gobngsdk"
)
type GobReader struct {
TotalRead int
File io.ReadSeeker
Dec *gob.Decoder
}
func NewGobReader(r io.ReadSeeker) *GobReader {
return &GobReader{
TotalRead: 0,
File: r,
Dec: gob.NewDecoder(r),
}
}
func (g *GobReader) Reset() error {
_, err := g.File.Seek(0, io.SeekStart)
if err != nil {
return err
}
g.Dec = gob.NewDecoder(g.File)
g.TotalRead = 0
return nil
}
func (g *GobReader) Next() ([]byte, error) {
var og sdk.Outgauge
err := g.Dec.Decode(&og)
if err != nil {
return nil, err
}
buf := new(bytes.Buffer)
err = binary.Write(buf, binary.LittleEndian, &og)
if err != nil {
return nil, err
}
g.TotalRead += len(buf.Bytes())
return buf.Bytes(), nil
}