MCPcopy Create free account
hub / github.com/GoEdgeLab/EdgeNode / FileHeaderUnsafe

Method FileHeaderUnsafe

internal/utils/bfs/file_header_lazy.go:28–67  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

26}
27
28func (this *LazyFileHeader) FileHeaderUnsafe() (*FileHeader, error) {
29 if this.fileHeader != nil {
30 return this.fileHeader, nil
31 }
32
33 var jsonPrefix = []byte("json:")
34
35 var header = &FileHeader{}
36
37 // json
38 if bytes.HasPrefix(this.rawData, jsonPrefix) {
39 err := json.Unmarshal(this.rawData[len(jsonPrefix):], header)
40 if err != nil {
41 return nil, err
42 }
43 return header, nil
44 }
45
46 decompressor, err := SharedDecompressPool.Get(bytes.NewBuffer(this.rawData))
47 if err != nil {
48 return nil, err
49 }
50
51 defer func() {
52 _ = decompressor.Close()
53 SharedDecompressPool.Put(decompressor)
54 }()
55
56 err = json.NewDecoder(decompressor).Decode(header)
57 if err != nil {
58 return nil, err
59 }
60
61 header.IsWriting = false
62
63 this.fileHeader = header
64 this.rawData = nil
65
66 return header, nil
67}

Callers

nothing calls this directly

Calls 4

CloseMethod · 0.65
DecodeMethod · 0.65
GetMethod · 0.45
PutMethod · 0.45

Tested by

no test coverage detected