Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 24 additions & 1 deletion decode.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@ import (
"encoding/binary"
"errors"
"io"
"os"
"reflect"
"time"
"unsafe"

"github.com/nu7hatch/gouuid"
uuid "github.com/nu7hatch/gouuid"
)

var typeSize = []int{
Expand Down Expand Up @@ -385,3 +386,25 @@ func readData(r *bufio.Reader, order binary.ByteOrder) (kobj *K, err error) {
}
return nil, ErrBadMsg
}

func ReadFromBuffer(data *bytes.Buffer) (*K, error) {
var order = binary.LittleEndian
reader := bufio.NewReader(data)
// Read 0xFF, 0x01 bytes magic number
reader.ReadByte()
reader.ReadByte()
return readData(reader, order)
}

func ReadFromFile(filename string) (*K, error) {
var order = binary.LittleEndian
f, err := os.Open(filename)
if err != nil {
return nil, err
}
reader := bufio.NewReader(f)
// Read 0xFF, 0x01 bytes magic number
reader.ReadByte()
reader.ReadByte()
return readData(reader, order)
}
32 changes: 32 additions & 0 deletions encode.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"encoding/binary"
"errors"
"io"
"os"
"reflect"
"strconv"
"time"
Expand Down Expand Up @@ -156,3 +157,34 @@ func Encode(w io.Writer, msgtype ReqType, data *K) error {
_, err := w.Write(Compress(b))
return err
}

func WriteToBuffer(data *K) (*bytes.Buffer, error) {
var order = binary.LittleEndian
buf := new(bytes.Buffer)

buf.Write([]byte{0xFF, 0x01})
if err := writeData(buf, order, data); err != nil {
return nil, err
}

return buf, nil
}

func WriteToFile(filename string, data *K) error {
var order = binary.LittleEndian
buf := new(bytes.Buffer)

buf.Write([]byte{0xFF, 0x01})
if err := writeData(buf, order, data); err != nil {
return err
}

f, err := os.Create(filename)
if err != nil {
return err
}
f.Write(buf.Bytes())
defer f.Close()

return nil
}
2 changes: 2 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
module github.com/sv/kdbgo

go 1.18

require github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d
2 changes: 2 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d h1:VhgPp6v9qf9Agr/56bj7Y/xa04UccTW04VP0Qed4vnQ=
github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d/go.mod h1:YUTz3bUH2ZwIWBy3CJBeOBEugqcmXREj14T+iG/4k4U=