SbeWriteBuffer
StockSharp.Server.Sbe
帮助将 SBE 信件序列化为每会话的写出缓冲器,在外出时会增长,而不是丢弃信件并断开客户端.
方法
Grow
public static byte[] Grow(byte[] buffer, int minSize)
result = SbeWriteBuffer.Grow(buffer, minSize)
返回至少长于字节的缓冲。 如果已有缓冲已经足够大, 则返回时不变; 否则, 将分配一个新的缓冲, 将覆盖到 {MaxWriteBufferSize} 。
- buffer
- 当前缓冲( 可能是无效的) 。
- minSize
- 最小要求的大小为字节.
返回值: 缓冲器,其长度至少是 .
IsOverflow
private static bool IsOverflow(Exception ex, int currentSize, int requiredSize)
result = SbeWriteBuffer.IsOverflow(ex, currentSize, requiredSize)
识别 SBE 序列器所抛出的跨流例外,并计算出一个目标大小以增长。一个专用的 SbeBufferTooSmallException 提供了精确的大小;通用跨度会回落到一倍。
Serialize
public static int Serialize(ClientSbeSession session, Func<SbeRecordSerializer, byte[], int> serialize)
result = SbeWriteBuffer.Serialize(session, serialize)
将信件序列化为会话写入缓冲器, 增加缓冲器并在溢出时重试。 返回所写的字节数。 通过 WriteBuffer, 可以使用(可能重新定位的) 缓冲器 。
- session
- 目标会话, 使用其写缓冲器 。
- serialize
- 序列化代表:写入缓冲器,返回书面长度.
返回值: 写入会话缓冲的字节数 。
字段
InitialWriteBufferSize
public const int InitialWriteBufferSize
value = SbeWriteBuffer.InitialWriteBufferSize
会话写入缓冲器的默认初始大小 。
MaxWriteBufferSize
public const int MaxWriteBufferSize
value = SbeWriteBuffer.MaxWriteBufferSize
硬上方绑定单个 SBE 框架。 即使长大到这个大小, 也不适合这样的框架, 会被视作真正的错误和重推, 而不是在再分配上永远循环 。