2024-05-17 18:30:33 +08:00
|
|
|
// Copyright 2022 GoEdge goedge.cdn@gmail.com. All rights reserved.
|
2022-01-12 21:09:00 +08:00
|
|
|
|
|
|
|
|
package caches
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"io"
|
|
|
|
|
"os"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type OpenFile struct {
|
|
|
|
|
fp *os.File
|
|
|
|
|
meta []byte
|
2022-01-13 15:18:49 +08:00
|
|
|
header []byte
|
2022-01-12 21:09:00 +08:00
|
|
|
version int64
|
2023-10-11 21:51:05 +08:00
|
|
|
size int64
|
2022-01-12 21:09:00 +08:00
|
|
|
}
|
|
|
|
|
|
2023-10-11 21:51:05 +08:00
|
|
|
func NewOpenFile(fp *os.File, meta []byte, header []byte, version int64, size int64) *OpenFile {
|
2022-01-12 21:09:00 +08:00
|
|
|
return &OpenFile{
|
2022-03-31 11:47:31 +08:00
|
|
|
fp: fp,
|
|
|
|
|
meta: meta,
|
|
|
|
|
header: header,
|
|
|
|
|
version: version,
|
2023-10-11 21:51:05 +08:00
|
|
|
size: size,
|
2022-01-12 21:09:00 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (this *OpenFile) SeekStart() error {
|
|
|
|
|
_, err := this.fp.Seek(0, io.SeekStart)
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (this *OpenFile) Close() error {
|
|
|
|
|
this.meta = nil
|
|
|
|
|
return this.fp.Close()
|
|
|
|
|
}
|