You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
package storage
import ( "github.com/seaweedfs/seaweedfs/weed/pb/volume_server_pb" "github.com/seaweedfs/seaweedfs/weed/storage/needle" "github.com/seaweedfs/seaweedfs/weed/storage/super_block" )
type VolumeFileScanner4ReadAll struct { Stream volume_server_pb.VolumeServer_ReadAllNeedlesServer V *Volume }
func (scanner *VolumeFileScanner4ReadAll) VisitSuperBlock(superBlock super_block.SuperBlock) error { return nil
} func (scanner *VolumeFileScanner4ReadAll) ReadNeedleBody() bool { return true }
func (scanner *VolumeFileScanner4ReadAll) VisitNeedle(n *needle.Needle, offset int64, needleHeader, needleBody []byte) error {
nv, ok := scanner.V.nm.Get(n.Id) if !ok { return nil } if nv.Offset.ToActualOffset() != offset { return nil }
sendErr := scanner.Stream.Send(&volume_server_pb.ReadAllNeedlesResponse{ VolumeId: uint32(scanner.V.Id), NeedleId: uint64(n.Id), Cookie: uint32(n.Cookie), NeedleBlob: n.Data, }) if sendErr != nil { return sendErr } return nil }
|