needle_write_version.go 619 B

1234567891011121314151617181920212223
  1. package needle
  2. import (
  3. "bytes"
  4. "fmt"
  5. . "github.com/seaweedfs/seaweedfs/weed/storage/types"
  6. )
  7. func writeNeedleByVersion(version Version, n *Needle, offset uint64, bytesBuffer *bytes.Buffer) (size Size, actualSize int64, err error) {
  8. // Switch logic moved from needle_write.go
  9. switch version {
  10. case Version1:
  11. size, actualSize, err = writeNeedleV1(n, offset, bytesBuffer)
  12. case Version2:
  13. size, actualSize, err = writeNeedleV2(n, offset, bytesBuffer)
  14. case Version3:
  15. size, actualSize, err = writeNeedleV3(n, offset, bytesBuffer)
  16. default:
  17. err = fmt.Errorf("unsupported version: %d", version)
  18. }
  19. return
  20. }