diff --git a/weed/storage/types/needle_id_type.go b/weed/storage/types/needle_id_type.go new file mode 100644 index 000000000..d9e7074b3 --- /dev/null +++ b/weed/storage/types/needle_id_type.go @@ -0,0 +1,42 @@ +package types + +import ( + "github.com/chrislusf/seaweedfs/weed/util" + "strconv" + "fmt" +) + +type NeedleId uint64 + +const ( + NeedleIdSize = 8 +) + +func NeedleIdToBytes(bytes []byte, needleId NeedleId) { + util.Uint64toBytes(bytes, uint64(needleId)) +} + +// NeedleIdToUint64 used to send max needle id to master +func NeedleIdToUint64(needleId NeedleId) uint64 { + return uint64(needleId) +} + +func Uint64ToNeedleId(needleId uint64) (NeedleId) { + return NeedleId(needleId) +} + +func BytesToNeedleId(bytes []byte) (NeedleId) { + return NeedleId(util.BytesToUint64(bytes)) +} + +func (k NeedleId) String() string { + return strconv.FormatUint(uint64(k), 10) +} + +func ParseNeedleId(idString string) (NeedleId, error) { + key, err := strconv.ParseUint(idString, 16, 64) + if err != nil { + return 0, fmt.Errorf("needle id %s format error: %v", idString, err) + } + return NeedleId(key), nil +} diff --git a/weed/storage/types/needle_types.go b/weed/storage/types/needle_types.go index 0c0b6a7a3..09ff727e6 100644 --- a/weed/storage/types/needle_types.go +++ b/weed/storage/types/needle_types.go @@ -7,12 +7,10 @@ import ( "fmt" ) -type NeedleId uint64 type Offset uint32 type Cookie uint32 const ( - NeedleIdSize = 8 OffsetSize = 4 SizeSize = 4 // uint32 size NeedleEntrySize = NeedleIdSize + OffsetSize + SizeSize @@ -22,23 +20,6 @@ const ( CookieSize = 4 ) -func NeedleIdToBytes(bytes []byte, needleId NeedleId) { - util.Uint64toBytes(bytes, uint64(needleId)) -} - -// NeedleIdToUint64 used to send max needle id to master -func NeedleIdToUint64(needleId NeedleId) uint64 { - return uint64(needleId) -} - -func Uint64ToNeedleId(needleId uint64) (NeedleId) { - return NeedleId(needleId) -} - -func BytesToNeedleId(bytes []byte) (NeedleId) { - return NeedleId(util.BytesToUint64(bytes)) -} - func CookieToBytes(bytes []byte, cookie Cookie) { util.Uint32toBytes(bytes, uint32(cookie)) } @@ -50,6 +31,14 @@ func BytesToCookie(bytes []byte) (Cookie) { return Cookie(util.BytesToUint32(bytes[0:4])) } +func ParseCookie(cookieString string) (Cookie, error) { + cookie, err := strconv.ParseUint(cookieString, 16, 32) + if err != nil { + return 0, fmt.Errorf("needle cookie %s format error: %v", cookieString, err) + } + return Cookie(cookie), nil +} + func OffsetToBytes(bytes []byte, offset Offset) { util.Uint32toBytes(bytes, uint32(offset)) } @@ -61,23 +50,3 @@ func Uint32ToOffset(offset uint32) (Offset) { func BytesToOffset(bytes []byte) (Offset) { return Offset(util.BytesToUint32(bytes[0:4])) } - -func (k NeedleId) String() string { - return strconv.FormatUint(uint64(k), 10) -} - -func ParseNeedleId(idString string) (NeedleId, error) { - key, err := strconv.ParseUint(idString, 16, 64) - if err != nil { - return 0, fmt.Errorf("needle id %s format error: %v", idString, err) - } - return NeedleId(key), nil -} - -func ParseCookie(cookieString string) (Cookie, error) { - cookie, err := strconv.ParseUint(cookieString, 16, 32) - if err != nil { - return 0, fmt.Errorf("needle cookie %s format error: %v", cookieString, err) - } - return Cookie(cookie), nil -}