export PartialFile and OpenPartialFile

This commit is contained in:
Anton Evangelatov 2021-05-19 13:14:16 +02:00
parent 87ed228fd3
commit e275b54f55
2 changed files with 18 additions and 18 deletions

View File

@ -25,7 +25,7 @@ const veryLargeRle = 1 << 20
// unsealed sector files internally have this structure // unsealed sector files internally have this structure
// [unpadded (raw) data][rle+][4B LE length fo the rle+ field] // [unpadded (raw) data][rle+][4B LE length fo the rle+ field]
type partialFile struct { type PartialFile struct {
maxPiece abi.PaddedPieceSize maxPiece abi.PaddedPieceSize
path string path string
@ -57,7 +57,7 @@ func writeTrailer(maxPieceSize int64, w *os.File, r rlepluslazy.RunIterator) err
return w.Truncate(maxPieceSize + int64(rb) + 4) return w.Truncate(maxPieceSize + int64(rb) + 4)
} }
func createPartialFile(maxPieceSize abi.PaddedPieceSize, path string) (*partialFile, error) { func createPartialFile(maxPieceSize abi.PaddedPieceSize, path string) (*PartialFile, error) {
f, err := os.OpenFile(path, os.O_RDWR|os.O_CREATE, 0644) // nolint f, err := os.OpenFile(path, os.O_RDWR|os.O_CREATE, 0644) // nolint
if err != nil { if err != nil {
return nil, xerrors.Errorf("openning partial file '%s': %w", path, err) return nil, xerrors.Errorf("openning partial file '%s': %w", path, err)
@ -89,10 +89,10 @@ func createPartialFile(maxPieceSize abi.PaddedPieceSize, path string) (*partialF
return nil, xerrors.Errorf("close empty partial file: %w", err) return nil, xerrors.Errorf("close empty partial file: %w", err)
} }
return openPartialFile(maxPieceSize, path) return OpenPartialFile(maxPieceSize, path)
} }
func openPartialFile(maxPieceSize abi.PaddedPieceSize, path string) (*partialFile, error) { func OpenPartialFile(maxPieceSize abi.PaddedPieceSize, path string) (*PartialFile, error) {
f, err := os.OpenFile(path, os.O_RDWR, 0644) // nolint f, err := os.OpenFile(path, os.O_RDWR, 0644) // nolint
if err != nil { if err != nil {
return nil, xerrors.Errorf("openning partial file '%s': %w", path, err) return nil, xerrors.Errorf("openning partial file '%s': %w", path, err)
@ -165,7 +165,7 @@ func openPartialFile(maxPieceSize abi.PaddedPieceSize, path string) (*partialFil
return nil, err return nil, err
} }
return &partialFile{ return &PartialFile{
maxPiece: maxPieceSize, maxPiece: maxPieceSize,
path: path, path: path,
allocated: rle, allocated: rle,
@ -173,11 +173,11 @@ func openPartialFile(maxPieceSize abi.PaddedPieceSize, path string) (*partialFil
}, nil }, nil
} }
func (pf *partialFile) Close() error { func (pf *PartialFile) Close() error {
return pf.file.Close() return pf.file.Close()
} }
func (pf *partialFile) Writer(offset storiface.PaddedByteIndex, size abi.PaddedPieceSize) (io.Writer, error) { func (pf *PartialFile) Writer(offset storiface.PaddedByteIndex, size abi.PaddedPieceSize) (io.Writer, error) {
if _, err := pf.file.Seek(int64(offset), io.SeekStart); err != nil { if _, err := pf.file.Seek(int64(offset), io.SeekStart); err != nil {
return nil, xerrors.Errorf("seek piece start: %w", err) return nil, xerrors.Errorf("seek piece start: %w", err)
} }
@ -206,7 +206,7 @@ func (pf *partialFile) Writer(offset storiface.PaddedByteIndex, size abi.PaddedP
return pf.file, nil return pf.file, nil
} }
func (pf *partialFile) MarkAllocated(offset storiface.PaddedByteIndex, size abi.PaddedPieceSize) error { func (pf *PartialFile) MarkAllocated(offset storiface.PaddedByteIndex, size abi.PaddedPieceSize) error {
have, err := pf.allocated.RunIterator() have, err := pf.allocated.RunIterator()
if err != nil { if err != nil {
return err return err
@ -224,7 +224,7 @@ func (pf *partialFile) MarkAllocated(offset storiface.PaddedByteIndex, size abi.
return nil return nil
} }
func (pf *partialFile) Free(offset storiface.PaddedByteIndex, size abi.PaddedPieceSize) error { func (pf *PartialFile) Free(offset storiface.PaddedByteIndex, size abi.PaddedPieceSize) error {
have, err := pf.allocated.RunIterator() have, err := pf.allocated.RunIterator()
if err != nil { if err != nil {
return err return err
@ -246,7 +246,7 @@ func (pf *partialFile) Free(offset storiface.PaddedByteIndex, size abi.PaddedPie
return nil return nil
} }
func (pf *partialFile) Reader(offset storiface.PaddedByteIndex, size abi.PaddedPieceSize) (*os.File, error) { func (pf *PartialFile) Reader(offset storiface.PaddedByteIndex, size abi.PaddedPieceSize) (*os.File, error) {
if _, err := pf.file.Seek(int64(offset), io.SeekStart); err != nil { if _, err := pf.file.Seek(int64(offset), io.SeekStart); err != nil {
return nil, xerrors.Errorf("seek piece start: %w", err) return nil, xerrors.Errorf("seek piece start: %w", err)
} }
@ -275,11 +275,11 @@ func (pf *partialFile) Reader(offset storiface.PaddedByteIndex, size abi.PaddedP
return pf.file, nil return pf.file, nil
} }
func (pf *partialFile) Allocated() (rlepluslazy.RunIterator, error) { func (pf *PartialFile) Allocated() (rlepluslazy.RunIterator, error) {
return pf.allocated.RunIterator() return pf.allocated.RunIterator()
} }
func (pf *partialFile) HasAllocated(offset storiface.UnpaddedByteIndex, size abi.UnpaddedPieceSize) (bool, error) { func (pf *PartialFile) HasAllocated(offset storiface.UnpaddedByteIndex, size abi.UnpaddedPieceSize) (bool, error) {
have, err := pf.Allocated() have, err := pf.Allocated()
if err != nil { if err != nil {
return false, err return false, err

View File

@ -66,7 +66,7 @@ func (sb *Sealer) AddPiece(ctx context.Context, sector storage.SectorRef, existi
} }
var done func() var done func()
var stagedFile *partialFile var stagedFile *PartialFile
defer func() { defer func() {
if done != nil { if done != nil {
@ -97,7 +97,7 @@ func (sb *Sealer) AddPiece(ctx context.Context, sector storage.SectorRef, existi
return abi.PieceInfo{}, xerrors.Errorf("acquire unsealed sector: %w", err) return abi.PieceInfo{}, xerrors.Errorf("acquire unsealed sector: %w", err)
} }
stagedFile, err = openPartialFile(maxPieceSize, stagedPath.Unsealed) stagedFile, err = OpenPartialFile(maxPieceSize, stagedPath.Unsealed)
if err != nil { if err != nil {
return abi.PieceInfo{}, xerrors.Errorf("opening unsealed sector file: %w", err) return abi.PieceInfo{}, xerrors.Errorf("opening unsealed sector file: %w", err)
} }
@ -257,7 +257,7 @@ func (sb *Sealer) UnsealPiece(ctx context.Context, sector storage.SectorRef, off
// try finding existing // try finding existing
unsealedPath, done, err := sb.sectors.AcquireSector(ctx, sector, storiface.FTUnsealed, storiface.FTNone, storiface.PathStorage) unsealedPath, done, err := sb.sectors.AcquireSector(ctx, sector, storiface.FTUnsealed, storiface.FTNone, storiface.PathStorage)
var pf *partialFile var pf *PartialFile
switch { switch {
case xerrors.Is(err, storiface.ErrSectorNotFound): case xerrors.Is(err, storiface.ErrSectorNotFound):
@ -275,7 +275,7 @@ func (sb *Sealer) UnsealPiece(ctx context.Context, sector storage.SectorRef, off
case err == nil: case err == nil:
defer done() defer done()
pf, err = openPartialFile(maxPieceSize, unsealedPath.Unsealed) pf, err = OpenPartialFile(maxPieceSize, unsealedPath.Unsealed)
if err != nil { if err != nil {
return xerrors.Errorf("opening partial file: %w", err) return xerrors.Errorf("opening partial file: %w", err)
} }
@ -427,7 +427,7 @@ func (sb *Sealer) ReadPiece(ctx context.Context, writer io.Writer, sector storag
} }
maxPieceSize := abi.PaddedPieceSize(ssize) maxPieceSize := abi.PaddedPieceSize(ssize)
pf, err := openPartialFile(maxPieceSize, path.Unsealed) pf, err := OpenPartialFile(maxPieceSize, path.Unsealed)
if err != nil { if err != nil {
if xerrors.Is(err, os.ErrNotExist) { if xerrors.Is(err, os.ErrNotExist) {
return false, nil return false, nil
@ -611,7 +611,7 @@ func (sb *Sealer) FinalizeSector(ctx context.Context, sector storage.SectorRef,
} }
defer done() defer done()
pf, err := openPartialFile(maxPieceSize, paths.Unsealed) pf, err := OpenPartialFile(maxPieceSize, paths.Unsealed)
if err == nil { if err == nil {
var at uint64 var at uint64
for sr.HasNext() { for sr.HasNext() {