needle_write_v3.go 632 B

12345678910111213141516
  1. package needle
  2. import (
  3. "bytes"
  4. . "github.com/seaweedfs/seaweedfs/weed/storage/types"
  5. "github.com/seaweedfs/seaweedfs/weed/util"
  6. )
  7. func writeNeedleV3(n *Needle, offset uint64, bytesBuffer *bytes.Buffer) (size Size, actualSize int64, err error) {
  8. return writeNeedleCommon(n, offset, bytesBuffer, Version3, func(n *Needle, header []byte, bytesBuffer *bytes.Buffer, padding int) {
  9. util.Uint32toBytes(header[0:NeedleChecksumSize], uint32(n.Checksum))
  10. util.Uint64toBytes(header[NeedleChecksumSize:NeedleChecksumSize+TimestampSize], n.AppendAtNs)
  11. bytesBuffer.Write(header[0 : NeedleChecksumSize+TimestampSize+padding])
  12. })
  13. }