MCPcopy Create free account
hub / github.com/boyter/hashit / processScanner

Function processScanner

processor/workers.go:142–395  ·  view source on GitHub ↗

TODO compare this to memory maps Random tests indicate that mmap is faster when not in power save mode

(filename string, fsize int, bar *uiprogress.Bar)

Source from the content-addressed store, hash-verified

140// TODO compare this to memory maps
141// Random tests indicate that mmap is faster when not in power save mode
142func processScanner(filename string, fsize int, bar *uiprogress.Bar) (Result, error) {
143 file, err := os.Open(filename)
144 if err != nil {
145 printError(fmt.Sprintf("opening file %s: %s", filename, err.Error()))
146 return Result{}, err
147 }
148 defer file.Close()
149
150 md4_d := md4.New()
151 md5_d := md5.New()
152 sha1_d := sha1.New()
153 sha256_d := sha256.New()
154 sha512_d := sha512.New()
155 blake2b_256_d := blake2b.New256()
156 blake2b_512_d := blake2b.New512()
157 blake3_d := blake3.New()
158 sha3_224_d := sha3.New224()
159 sha3_256_d := sha3.New256()
160 sha3_384_d := sha3.New384()
161 sha3_512_d := sha3.New512()
162
163 md4c := make(chan []byte, 10)
164 md5c := make(chan []byte, 10)
165 sha1c := make(chan []byte, 10)
166 sha256c := make(chan []byte, 10)
167 sha512c := make(chan []byte, 10)
168 blake2b_256_c := make(chan []byte, 10)
169 blake2b_512_c := make(chan []byte, 10)
170 blake3c := make(chan []byte, 10)
171 sha3_224_c := make(chan []byte, 10)
172 sha3_256_c := make(chan []byte, 10)
173 sha3_384_c := make(chan []byte, 10)
174 sha3_512_c := make(chan []byte, 10)
175
176 var wg sync.WaitGroup
177
178 if hasHash(HashNames.MD4) {
179 wg.Add(1)
180 go func() {
181 for b := range md4c {
182 md4_d.Write(b)
183 }
184 wg.Done()
185 }()
186 }
187
188 if hasHash(HashNames.MD5) {
189 wg.Add(1)
190 go func() {
191 for b := range md5c {
192 md5_d.Write(b)
193 }
194 wg.Done()
195 }()
196 }
197
198 if hasHash(HashNames.SHA1) {
199 wg.Add(1)

Callers 1

fileProcessorWorkerFunction · 0.85

Calls 2

printErrorFunction · 0.85
hasHashFunction · 0.85

Tested by

no test coverage detected