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

Function OpenMetaFile

internal/utils/bfs/meta_file.go:28–49  ·  view source on GitHub ↗
(filename string, mu *sync.RWMutex)

Source from the content-addressed store, hash-verified

26}
27
28func OpenMetaFile(filename string, mu *sync.RWMutex) (*MetaFile, error) {
29 fp, err := os.OpenFile(filename, os.O_CREATE|os.O_RDWR, 0666)
30 if err != nil {
31 return nil, err
32 }
33
34 var mFile = &MetaFile{
35 filename: filename,
36 fp: fp,
37 headerMap: map[string]*LazyFileHeader{},
38 mu: mu,
39 modifiedHashMap: map[string]zero.Zero{},
40 }
41
42 // 从文件中加载已有的文件头信息
43 err = mFile.load()
44 if err != nil {
45 return nil, err
46 }
47
48 return mFile, nil
49}
50
51func (this *MetaFile) load() error {
52 AckReadThread()

Callers 10

TestNewMetaFileFunction · 0.92
TestNewMetaFile_LargeFunction · 0.92
TestNewMetaFile_MemoryFunction · 0.92
TestMetaFile_FileHeadersFunction · 0.92
TestMetaFile_WriteMetaFunction · 0.92
TestMetaFile_WriteFunction · 0.92
TestMetaFile_RemoveFileFunction · 0.92
TestMetaFile_CompactFunction · 0.92
TestMetaFile_RemoveAllFunction · 0.92
NewBlocksFileWithRawFileFunction · 0.85

Calls 1

loadMethod · 0.80

Tested by 9

TestNewMetaFileFunction · 0.74
TestNewMetaFile_LargeFunction · 0.74
TestNewMetaFile_MemoryFunction · 0.74
TestMetaFile_FileHeadersFunction · 0.74
TestMetaFile_WriteMetaFunction · 0.74
TestMetaFile_WriteFunction · 0.74
TestMetaFile_RemoveFileFunction · 0.74
TestMetaFile_CompactFunction · 0.74
TestMetaFile_RemoveAllFunction · 0.74