preprocessing

package
v0.0.0-...-19b4adc Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 22, 2023 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	READ_LINE = 0
	READ_SIZE = 1
)
View Source
const RunLengthDir = "/tmp/run_lengths" // 存放游程的目录

Variables

This section is empty.

Functions

func PreprocessingProcedure

func PreprocessingProcedure(file string, memorySize,
	recordSize uint64, reader FReader,
	cvt Converter, readMethod int) (map[string]uint64, error)

生成游程文件

Types

type Converter

type Converter interface {
	Convert(memb string) (FileRecord, error)
}

将字符串转化为文件记录类型的数据

type FReader

type FReader interface {
	// 尝试从stream中读取nmem个msize大小的数据
	// 将读取到的数据转化后返回
	// 返回值:
	// 转化好的数据, 成功读取到的数据个数
	Fread(stream *os.File, msize uint64, nmem uint64, cvt Converter) ([]FileRecord, uint64)
	// 尝试从stream中读取lineNum行, 将每一行当作一条数据进行转化
	// 返回成功读取到的行数
	ReadLines(stream *os.File, lineNum uint64, cvt Converter) ([]FileRecord, uint64)
}

从文件中读取指定类型的数据

type FRecordHeap

type FRecordHeap []FileRecord

文件记录的最小堆

func (FRecordHeap) Len

func (frh FRecordHeap) Len() int

func (FRecordHeap) Less

func (frh FRecordHeap) Less(i, j int) bool

func (*FRecordHeap) Pop

func (frh *FRecordHeap) Pop() interface{}

func (*FRecordHeap) Push

func (frh *FRecordHeap) Push(record interface{})

func (FRecordHeap) Swap

func (frh FRecordHeap) Swap(i, j int)

type FileRecord

type FileRecord interface {
	Lesser
	fmt.Stringer
}

func ReadOnce

func ReadOnce(file *os.File, reader FReader, cvt Converter, rs uint64, method int) (FileRecord, error)

读取文件一次

type Lesser

type Lesser interface {
	// 比较当前Lesser类型变量与传入的Lesser类型变量的大小
	// 返回当前类型变量是否比传入的变量小
	Less(lesser Lesser) bool
}

可比较类型

type LocalFileReader

type LocalFileReader struct {
	// contains filtered or unexported fields
}

普通本地文件读取器

func NewLocalFileReader

func NewLocalFileReader() *LocalFileReader

func (*LocalFileReader) Fread

func (lfr *LocalFileReader) Fread(stream *os.File, msize uint64, nmem uint64, cvt Converter) ([]FileRecord, uint64)

func (*LocalFileReader) GetReader

func (lfr *LocalFileReader) GetReader(stream *os.File) *bufio.Reader

func (*LocalFileReader) ReadLines

func (lfr *LocalFileReader) ReadLines(stream *os.File, lineNum uint64, cvt Converter) ([]FileRecord, uint64)

type ReplacementSelectionSorter

type ReplacementSelectionSorter struct {
	// contains filtered or unexported fields
}

func NewReplacementSelectionSorter

func NewReplacementSelectionSorter(N uint64, records []FileRecord) (*ReplacementSelectionSorter, chan string)

func (*ReplacementSelectionSorter) BuildInitialHeap

func (rss *ReplacementSelectionSorter) BuildInitialHeap(N uint64, records []FileRecord)

建立初始堆

func (*ReplacementSelectionSorter) Flush

func (rss *ReplacementSelectionSorter) Flush()

清空当前堆和新堆

func (*ReplacementSelectionSorter) Output

func (rss *ReplacementSelectionSorter) Output(newRecord FileRecord)

输出堆顶元素, 并且补充新的元素

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL