CircularBuffer 类
自增式缓存类,继承自 Stream 和 IDisposable 接口。 环形缓存具有自动扩充的特性,但不会收缩,适用于操作不过大的 IO 流。
继承成员
命名空间: Fantasy.DataStructure.Collection
程序集: Fantasy.Net.dll
语法
public sealed class CircularBuffer : Stream, IAsyncDisposable, IDisposable
字段
| 编辑本文 查看源代码ChunkSize
环形缓存块的默认大小
声明
public const int ChunkSize = 8192
字段值
类型 | 描述 |
---|---|
int |
属性
| 编辑本文 查看源代码CanRead
获取一个值,指示流是否支持读取操作。
声明
public override bool CanRead { get; }
属性值
类型 | 描述 |
---|---|
bool |
重写
| 编辑本文 查看源代码CanSeek
获取一个值,指示流是否支持寻找操作。
声明
public override bool CanSeek { get; }
属性值
类型 | 描述 |
---|---|
bool |
重写
| 编辑本文 查看源代码CanWrite
获取一个值,指示流是否支持写入操作。
声明
public override bool CanWrite { get; }
属性值
类型 | 描述 |
---|---|
bool |
重写
| 编辑本文 查看源代码First
获取环形缓存的第一个块
声明
public byte[] First { get; }
属性值
类型 | 描述 |
---|---|
byte[] |
FirstIndex
获取或设置环形缓存的第一个索引位置
声明
public int FirstIndex { get; set; }
属性值
类型 | 描述 |
---|---|
int |
Last
获取环形缓存的最后一个块
声明
public byte[] Last { get; }
属性值
类型 | 描述 |
---|---|
byte[] |
LastIndex
获取或设置环形缓存的最后一个索引位置
声明
public int LastIndex { get; set; }
属性值
类型 | 描述 |
---|---|
int |
Length
获取环形缓存的总长度
声明
public override long Length { get; }
属性值
类型 | 描述 |
---|---|
long |
重写
| 编辑本文 查看源代码Position
获取或设置流中的位置。
声明
public override long Position { get; set; }
属性值
类型 | 描述 |
---|---|
long |
重写
方法
| 编辑本文 查看源代码AddLast()
向环形缓存中添加一个新的块
声明
public void AddLast()
Dispose()
释放 CustomStream 使用的所有资源。
声明
public void Dispose()
Flush()
刷新流(在此实现中引发未实现异常)。
声明
public override void Flush()
重写
| 编辑本文 查看源代码Read(byte[], int, int)
从自定义流中读取数据到指定的缓冲区。
声明
public override int Read(byte[] buffer, int offset, int count)
参数
类型 | 名称 | 描述 |
---|---|---|
byte[] | buffer | 目标缓冲区,用于存储读取的数据。 |
int | offset | 目标缓冲区中的起始偏移量。 |
int | count | 要读取的字节数。 |
返回
类型 | 描述 |
---|---|
int | 实际读取的字节数。 |
重写
| 编辑本文 查看源代码Read(Stream, int)
从流中读取指定数量的数据到缓存。
声明
public void Read(Stream stream, int count)
参数
类型 | 名称 | 描述 |
---|---|---|
Stream | stream | 源数据流。 |
int | count | 要读取的字节数。 |
Read(Memory<byte>, int)
从缓存中读取指定数量的数据到内存。
声明
public void Read(Memory<byte> memory, int count)
参数
类型 | 名称 | 描述 |
---|---|---|
Memory<byte> | memory | 目标内存。 |
int | count | 要读取的字节数。 |
RemoveFirst()
从环形缓存中移除第一个块
声明
public void RemoveFirst()
Seek(long, SeekOrigin)
在流中寻找特定位置(在此实现中引发未实现异常)。
声明
public override long Seek(long offset, SeekOrigin origin)
参数
类型 | 名称 | 描述 |
---|---|---|
long | offset | |
SeekOrigin | origin |
返回
类型 | 描述 |
---|---|
long |
重写
| 编辑本文 查看源代码SetLength(long)
设置流的长度(在此实现中引发未实现异常)。
声明
public override void SetLength(long value)
参数
类型 | 名称 | 描述 |
---|---|---|
long | value |
重写
| 编辑本文 查看源代码Write(byte[])
将数据从给定的字节数组写入流中。
声明
public void Write(byte[] buffer)
参数
类型 | 名称 | 描述 |
---|---|---|
byte[] | buffer | 包含要写入的数据的字节数组。 |
Write(byte[], int, int)
将数据从给定的字节数组写入流中。
声明
public override void Write(byte[] buffer, int offset, int count)
参数
类型 | 名称 | 描述 |
---|---|---|
byte[] | buffer | 包含要写入的数据的字节数组。 |
int | offset | 开始写入的缓冲区中的索引。 |
int | count | 要写入的字节数。 |
重写
| 编辑本文 查看源代码Write(Stream)
将数据从给定的流写入流中。
声明
public void Write(Stream stream)
参数
类型 | 名称 | 描述 |
---|---|---|
Stream | stream | 包含要写入的数据的流。 |