MCPcopy Create free account
hub / github.com/akalin/gopar / LoadFileData

Method LoadFileData

par2/encoder.go:85–111  ·  view source on GitHub ↗

LoadFileData loads the file data into memory.

()

Source from the content-addressed store, hash-verified

83
84// LoadFileData loads the file data into memory.
85func (e *Encoder) LoadFileData() error {
86 var recoverySet []fileID
87 recoverySetInfos := make(map[fileID]encoderInputFileInfo)
88
89 for i, relPath := range e.relFilePaths {
90 path := filepath.Join(e.basePath, relPath)
91 data, err := e.fileIO.ReadFile(path)
92 e.delegate.OnDataFileLoad(i+1, len(e.relFilePaths), path, len(data), err)
93 if err != nil {
94 return err
95 }
96
97 fileID, fileDescriptionPacket, ifscPacket, dataShards := computeDataFileInfo(e.sliceByteCount, relPath, data)
98 recoverySet = append(recoverySet, fileID)
99 recoverySetInfos[fileID] = encoderInputFileInfo{
100 fileDescriptionPacket, ifscPacket, dataShards,
101 }
102 }
103
104 sort.Slice(recoverySet, func(i, j int) bool {
105 return fileIDLess(recoverySet[i], recoverySet[j])
106 })
107
108 e.recoverySet = recoverySet
109 e.recoverySetInfos = recoverySetInfos
110 return nil
111}
112
113// ComputeParityData computes the parity data for the files.
114func (e *Encoder) ComputeParityData() error {

Callers

nothing calls this directly

Calls 4

computeDataFileInfoFunction · 0.85
fileIDLessFunction · 0.85
ReadFileMethod · 0.65
OnDataFileLoadMethod · 0.65

Tested by

no test coverage detected