Documentation ¶
Index ¶
Constants ¶
const FilePerm = 0644
FilePerm is default permission of the newly created log file.
Variables ¶
var ErrInvalidFileSize = errors.New("file size can not be zero or negetive")
ErrInvalidFileSize represents invalid file size.
Functions ¶
This section is empty.
Types ¶
type FileIOSelector ¶
type FileIOSelector struct {
// contains filtered or unexported fields
}
FileIOSelector represents using standard file I/O.
func (*FileIOSelector) Close ¶
func (fio *FileIOSelector) Close() error
Read is a wrapper of os.File.Close.
func (*FileIOSelector) Delete ¶
func (fio *FileIOSelector) Delete() error
Delete removes file descriptor if we do not use it anymore.
func (*FileIOSelector) Read ¶
func (fio *FileIOSelector) Read(b []byte, offset int64) (int, error)
Read is a wrapper of os.File.ReadAt.
func (*FileIOSelector) Sync ¶
func (fio *FileIOSelector) Sync() error
Read is a wrapper of os.File.Sync.
type IOSelector ¶
type IOSelector interface { // Write writes a slice to log file at offset. // It returns the number of bytes written and an error, if any. Write(b []byte, offset int64) (int, error) // Read reads a slice from offset. // It returns the number of bytes read and any error encountered, Read(b []byte, offset int64) (int, error) // Sync commits the current contents of the file to stable storage. // Typically, this means flushing the file system's in-memory copy // of recently written data to disk. Sync() error // Close closes the file, rendering it unstable for I/O. // It will return an error if it has already been closed. Close() error // Delete deletes the file. // Must close it before delete, and will unmap if in MMapSelector. Delete() error }
IOSelector defines the related functions of I/O.
func NewFileIOSelector ¶
func NewFileIOSelector(fileName string, fileSize int64) (IOSelector, error)
NewFileIOSelector creates a new file io selector.
func NewMMapSelector ¶
func NewMMapSelector(fileName string, fileSize int64) (IOSelector, error)
NewMMappSelector creates a new mmap selector.
type MMapSelector ¶
type MMapSelector struct {
// contains filtered or unexported fields
}
MMapSelector represents using memory-mapped file I/O.
func (MMapSelector) Close ¶
func (ms MMapSelector) Close() error
Close synchronizes and unmaps mapped buffer abnd close fd.
func (MMapSelector) Delete ¶
func (ms MMapSelector) Delete() error
Delete deletes mapped buffer and removes file on disk.
func (MMapSelector) Read ¶
func (ms MMapSelector) Read(b []byte, offset int64) (int, error)
Read copys data from mapped region(buf) into slice b at offset.
func (MMapSelector) Sync ¶
func (ms MMapSelector) Sync() error
Sync synchronizes the mapped buffer to the file's contents on disk.