Files
gobngsdk/reader_binary.go
T

44 lines
653 B
Go

package bngsdk
import (
"io"
"unsafe"
)
type GobReader struct {
TotalRead int64
File io.ReadSeeker
Buf []byte
}
func OgBinReader(r io.ReadSeeker) *GobReader {
return &GobReader{
TotalRead: 0,
File: r,
Buf: make([]byte, unsafe.Sizeof(Outgauge{})),
}
}
func (g *GobReader) Reset() error {
_, err := g.File.Seek(0, io.SeekStart)
if err != nil {
return err
}
g.TotalRead = 0
return nil
}
func (g *GobReader) Next(buffer []byte) (int, error) {
nBytes, err := io.ReadFull(g.File, buffer)
if err != nil {
return 0, err
}
pos, _ := g.File.Seek(0, io.SeekCurrent)
g.TotalRead = pos
return nBytes, nil
}