aboutsummaryrefslogtreecommitdiff
path: root/weed/storage/needle/needle_write_version.go
blob: 1a6c0bf7848445d86b02120383e39fd726de23e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package needle

import (
	"bytes"
	"fmt"

	. "github.com/seaweedfs/seaweedfs/weed/storage/types"
)

func writeNeedleByVersion(version Version, n *Needle, offset uint64, bytesBuffer *bytes.Buffer) (size Size, actualSize int64, err error) {
	// Switch logic moved from needle_write.go
	switch version {
	case Version1:
		size, actualSize, err = writeNeedleV1(n, offset, bytesBuffer)
	case Version2:
		size, actualSize, err = writeNeedleV2(n, offset, bytesBuffer)
	case Version3:
		size, actualSize, err = writeNeedleV3(n, offset, bytesBuffer)
	default:
		err = fmt.Errorf("unsupported version: %d", version)
	}
	return
}