2021-01-13 12:02:50 +08:00
|
|
|
package caches
|
|
|
|
|
|
2024-05-07 16:20:22 +08:00
|
|
|
import (
|
|
|
|
|
"github.com/TeaOSLab/EdgeNode/internal/utils/ranges"
|
|
|
|
|
"io"
|
|
|
|
|
)
|
2022-03-03 19:36:28 +08:00
|
|
|
|
2021-01-13 12:02:50 +08:00
|
|
|
type ReaderFunc func(n int) (goNext bool, err error)
|
|
|
|
|
|
|
|
|
|
type Reader interface {
|
2021-05-19 12:07:35 +08:00
|
|
|
// Init 初始化
|
2021-01-13 12:02:50 +08:00
|
|
|
Init() error
|
|
|
|
|
|
2021-05-24 09:23:51 +08:00
|
|
|
// TypeName 类型名称
|
|
|
|
|
TypeName() string
|
|
|
|
|
|
2021-11-14 16:15:07 +08:00
|
|
|
// ExpiresAt 过期时间
|
|
|
|
|
ExpiresAt() int64
|
|
|
|
|
|
2021-05-19 12:07:35 +08:00
|
|
|
// Status 状态码
|
2021-01-13 12:02:50 +08:00
|
|
|
Status() int
|
|
|
|
|
|
2021-06-14 11:46:39 +08:00
|
|
|
// LastModified 最后修改时间
|
|
|
|
|
LastModified() int64
|
|
|
|
|
|
2021-05-19 12:07:35 +08:00
|
|
|
// ReadHeader 读取Header
|
2021-01-13 12:02:50 +08:00
|
|
|
ReadHeader(buf []byte, callback ReaderFunc) error
|
|
|
|
|
|
2021-05-19 12:07:35 +08:00
|
|
|
// ReadBody 读取Body
|
2021-01-13 12:02:50 +08:00
|
|
|
ReadBody(buf []byte, callback ReaderFunc) error
|
|
|
|
|
|
2021-12-29 10:57:15 +08:00
|
|
|
// Read 实现io.Reader接口
|
|
|
|
|
Read(buf []byte) (int, error)
|
|
|
|
|
|
2021-05-19 12:07:35 +08:00
|
|
|
// ReadBodyRange 读取某个范围内的Body
|
2021-01-13 12:02:50 +08:00
|
|
|
ReadBodyRange(buf []byte, start int64, end int64, callback ReaderFunc) error
|
|
|
|
|
|
2021-05-19 12:07:35 +08:00
|
|
|
// HeaderSize Header Size
|
2021-01-13 12:02:50 +08:00
|
|
|
HeaderSize() int64
|
|
|
|
|
|
2021-05-19 12:07:35 +08:00
|
|
|
// BodySize Body Size
|
2021-01-13 12:02:50 +08:00
|
|
|
BodySize() int64
|
|
|
|
|
|
2022-03-03 19:36:28 +08:00
|
|
|
// ContainsRange 是否包含某个区间内容
|
2022-03-04 22:42:03 +08:00
|
|
|
ContainsRange(r rangeutils.Range) (r2 rangeutils.Range, ok bool)
|
2022-03-03 19:36:28 +08:00
|
|
|
|
2024-05-07 16:20:22 +08:00
|
|
|
// SetNextReader 设置下一个内容Reader
|
|
|
|
|
SetNextReader(nextReader io.ReadCloser)
|
|
|
|
|
|
2021-05-19 12:07:35 +08:00
|
|
|
// Close 关闭
|
2021-01-13 12:02:50 +08:00
|
|
|
Close() error
|
|
|
|
|
}
|