随风逐叶 随风逐叶
首页
  • Quick Reference (opens new window)
  • EgretEngine开发者文档 (opens new window)
  • TinaX框架
  • SSH教程
  • VSCode插件开发
关于
  • 分类
  • 标签
  • 归档

rontian

从事游戏开发10多年的老菜鸟一枚!
首页
  • Quick Reference (opens new window)
  • EgretEngine开发者文档 (opens new window)
  • TinaX框架
  • SSH教程
  • VSCode插件开发
关于
  • 分类
  • 标签
  • 归档
  • 框架简介
  • TinaX.Core
  • 基于TinaX创建一个扩展库
  • TinaX.VFS
  • TinaX.UIKit
  • TinaX.I18N
  • TinaX.Lua
  • XLua

  • Google.Protobuf
  • Lua-Protobuf
  • 一些优秀的第三方库

    • CatLib

      • 简介
      • 风格指南
      • 常见问题
      • 已知BUG
      • 更新日志
      • 服务提供者
      • 应用程序
      • 服务容器
      • 服务门面
      • 事件系统
      • 数组
      • 字符串
      • 守卫
      • 有序集
      • 环形缓冲流
        • 构造环型缓冲区
          • 函数原型
        • Capacity
          • 函数原型
        • WriteableCount
          • 函数原型
        • ReadableCount
          • 函数原型
        • GetBuffer
          • 函数原型
        • Read
          • 函数原型
        • Peek
          • 函数原型
        • Write
          • 函数原型
        • Clear
          • 函数原型
      • 包装流
      • 组合流
      • 分片流
    • UniRx

    • UniTask

目录

环形缓冲流

# 环型缓冲区

环型缓冲区是一种用于表示一个固定尺寸、头尾相连的缓冲区的数据结构,适合缓存数据流。

# 构造环型缓冲区

var ringBuffer = new RingBufferStream();
1

# 函数原型
RingBufferStream(int capacity = 8192, bool exposable = true);
1
参数 描述
capacity 环状缓冲区的最大容量,为2的次方。如:传入12,则实际生效为16
exposable 是否可以访问内部数组

# Capacity

缓冲区的实际最大容量。

var capacity = ringBuffer.Capacity;
1

# 函数原型
int Capacity { get; }
1

# WriteableCount

可以被写入的容量。

var writeableCount = ringBuffer.WriteableCount;
1

# 函数原型
int WriteableCount { get; }
1

# ReadableCount

可以被读取的容量。

var readableCount = ringBuffer.ReadableCount;
1

# 函数原型
int ReadableCount { get; }
1

# GetBuffer

获取原始缓冲区,如果exposable为false则会引发一个UnauthorizedAccessException异常。

ringBuffer.GetBuffer();
1

# 函数原型
byte[] GetBuffer();
1

# Read

读取环状缓冲区的数据。

var read = ringBuffer.Read(buffer, offset, count);
1

# 函数原型
int Read(byte[] buffer, int offset, int count);
1
参数 描述
buffer 读取到的缓冲区
offset buffer缓冲区的起始偏移量
count 希望读取的长度

# Peek

读取环状缓冲区的数据,但是不前移读取位置。

var read = ringBuffer.Peek(buffer, offset, count);
1

# 函数原型
int Peek(byte[] buffer, int offset, int count);
1
参数 描述
buffer 读取到的缓冲区
offset buffer缓冲区的起始偏移量
count 希望读取的长度

# Write

将数据写入到环型缓冲区,返回值为实际写入的长度。

var write = ringBuffer.Write(buffer, 0, buffer.Length);
1

# 函数原型
int Write(byte[] buffer, int offset, int count);
1
参数 描述
buffer 希望写入到环型缓冲区的数据
offset buffer缓冲区的起始偏移量
count 写入的长度

# Clear

清空环型缓冲区。

ringBuffer.Clear();
1

# 函数原型
void Clear();
1
上次更新: 2023/10/17, 17:20:06 访问次数: 0
有序集
包装流

← 有序集 包装流→

最近更新
01
一些Shell常用的功能写法整理
10-20
02
删除git仓库submodule的步骤
10-20
03
django基本命令
10-16
更多文章>
Copyright © 2017-2025 随风逐叶
沪ICP备18008791号-1 | 沪公网安备31011502401077号

网站访问总次数: 0次
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式