SbeWriteBuffer

StockSharp.Server.Sbe

Ayudantes para serializar un mensaje SBE en un buffer de escritura por sesión que crece en el flujo en lugar de dejar caer el mensaje y desconectar al cliente.

Métodos

Grow
public static byte[] Grow(byte[] buffer, int minSize)
result = SbeWriteBuffer.Grow(buffer, minSize)

Devuelve un búfer al menos por bytes de largo. Si el búfer existente ya es suficientemente grande, se devuelve sin cambios; de lo contrario, se asigna un nuevo búfer por capacidad de duplicación hasta que cubre, capped a MaxWriteBufferSize.

buffer
Buffer actual (puede ser nulo).
minSize
Tamaño mínimo requerido en bytes.

Devuelve: Un búfer cuya longitud es al menos .

IsOverflow
private static bool IsOverflow(Exception ex, int currentSize, int requiredSize)
result = SbeWriteBuffer.IsOverflow(ex, currentSize, requiredSize)

Reconoce las excepciones de flujo de cobertura lanzadas por el serializador SBE y calcula un tamaño de destino para crecer. A dedicado SbeBufferTooSmallException proporciona un tamaño exacto; los flujos genéricos de los lazos caen de nuevo a duplicar.

Serialize
public static int Serialize(ClientSbeSession session, Func<SbeRecordSerializer, byte[], int> serialize)
result = SbeWriteBuffer.Serialize(session, serialize)

Serializa un mensaje en la sesión escribir buffer, creciendo el búfer y retrigiendo sobre el flujo. Devuelve el número de bytes escritos. El búfer (posiblemente reasignado) está disponible a través de WriteBuffer@.

session
Sesión de blanco cuyo búfer de escritura se utiliza.
serialize
Delegado de serie: escribe en el búfer, devuelve la longitud escrita.

Devuelve: Número de bytes escritos en el búfer de sesión.

Campos

InitialWriteBufferSize
public const int InitialWriteBufferSize
value = SbeWriteBuffer.InitialWriteBufferSize

Tamaño inicial predeterminado de una sesión de escribir buffer.

MaxWriteBufferSize
public const int MaxWriteBufferSize
value = SbeWriteBuffer.MaxWriteBufferSize

Un marco que no cabe incluso después de crecer a este tamaño se trata como un error genuino y un re-thrown, en lugar de bucle para siempre en la reasignación.