refactor
This commit is contained in:
@@ -177,7 +177,7 @@ func (n *Needle) readNeedleDataVersion2NonData(bytes []byte) (index int, err err
|
|||||||
|
|
||||||
func ReadNeedleHeader(r backend.BackendStorageFile, version Version, offset int64) (n *Needle, bytes []byte, bodyLength int64, err error) {
|
func ReadNeedleHeader(r backend.BackendStorageFile, version Version, offset int64) (n *Needle, bytes []byte, bodyLength int64, err error) {
|
||||||
n = new(Needle)
|
n = new(Needle)
|
||||||
if version == Version1 || version == Version2 || version == Version3 {
|
|
||||||
bytes = make([]byte, NeedleHeaderSize)
|
bytes = make([]byte, NeedleHeaderSize)
|
||||||
|
|
||||||
var count int
|
var count int
|
||||||
@@ -191,26 +191,10 @@ func ReadNeedleHeader(r backend.BackendStorageFile, version Version, offset int6
|
|||||||
|
|
||||||
n.ParseNeedleHeader(bytes)
|
n.ParseNeedleHeader(bytes)
|
||||||
bodyLength = NeedleBodyLength(n.Size, version)
|
bodyLength = NeedleBodyLength(n.Size, version)
|
||||||
}
|
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func PaddingLength(needleSize Size, version Version) Size {
|
|
||||||
if version == Version3 {
|
|
||||||
// this is same value as version2, but just listed here for clarity
|
|
||||||
return NeedlePaddingSize - ((NeedleHeaderSize + needleSize + NeedleChecksumSize + TimestampSize) % NeedlePaddingSize)
|
|
||||||
}
|
|
||||||
return NeedlePaddingSize - ((NeedleHeaderSize + needleSize + NeedleChecksumSize) % NeedlePaddingSize)
|
|
||||||
}
|
|
||||||
|
|
||||||
func NeedleBodyLength(needleSize Size, version Version) int64 {
|
|
||||||
if version == Version3 {
|
|
||||||
return int64(needleSize) + NeedleChecksumSize + TimestampSize + int64(PaddingLength(needleSize, version))
|
|
||||||
}
|
|
||||||
return int64(needleSize) + NeedleChecksumSize + int64(PaddingLength(needleSize, version))
|
|
||||||
}
|
|
||||||
|
|
||||||
// n should be a needle already read the header
|
// n should be a needle already read the header
|
||||||
// the input stream will read until next file entry
|
// the input stream will read until next file entry
|
||||||
func (n *Needle) ReadNeedleBody(r backend.BackendStorageFile, version Version, offset int64, bodyLength int64) (bytes []byte, err error) {
|
func (n *Needle) ReadNeedleBody(r backend.BackendStorageFile, version Version, offset int64, bodyLength int64) (bytes []byte, err error) {
|
||||||
|
|||||||
@@ -33,3 +33,18 @@ func (n *Needle) readNeedleTail(needleBody []byte, version Version) error {
|
|||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func PaddingLength(needleSize Size, version Version) Size {
|
||||||
|
if version == Version3 {
|
||||||
|
// this is same value as version2, but just listed here for clarity
|
||||||
|
return NeedlePaddingSize - ((NeedleHeaderSize + needleSize + NeedleChecksumSize + TimestampSize) % NeedlePaddingSize)
|
||||||
|
}
|
||||||
|
return NeedlePaddingSize - ((NeedleHeaderSize + needleSize + NeedleChecksumSize) % NeedlePaddingSize)
|
||||||
|
}
|
||||||
|
|
||||||
|
func NeedleBodyLength(needleSize Size, version Version) int64 {
|
||||||
|
if version == Version3 {
|
||||||
|
return int64(needleSize) + NeedleChecksumSize + TimestampSize + int64(PaddingLength(needleSize, version))
|
||||||
|
}
|
||||||
|
return int64(needleSize) + NeedleChecksumSize + int64(PaddingLength(needleSize, version))
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user