func()

in file.go [254:282]


func (f *File) reportOpen() {
	const numFileHeaders = 2

	meta := f.getMetaPage()
	fileEnd := uint(meta.dataEndMarker.Get())
	if m := uint(meta.metaEndMarker.Get()); m > fileEnd {
		fileEnd = m
	}

	metaArea := uint(meta.metaTotal.Get())
	metaInUse := metaArea - f.allocator.meta.freelist.Avail()
	dataInUse := fileEnd - numFileHeaders - metaArea - f.allocator.data.freelist.Avail()

	f.stats = FileStats{
		Version:       meta.version.Get(),
		Size:          uint64(f.size),
		MaxSize:       meta.maxSize.Get(),
		PageSize:      meta.pageSize.Get(),
		MetaArea:      metaArea,
		DataAllocated: dataInUse,
		MetaAllocated: metaInUse,
	}

	o := f.observer
	if o == nil {
		return
	}
	o.OnOpen(f.stats)
}