SbeWriteBuffer
Ajudadores para serializar uma mensagem SBE em um buffer de gravação por sessão que cresce em excesso em vez de soltar a mensagem e desconectar o cliente.
Métodos
public static byte[] Grow(byte[] buffer, int minSize)
result = SbeWriteBuffer.Grow(buffer, minSize)
Devolve um buffer pelo menos bytes longos. Se o buffer existente já for suficientemente grande, ele é devolvido inalterado; caso contrário, um novo buffer é alocado duplicando a capacidade até que ele cubra , com o título MaxWriteBufferSize.
- buffer
- Buffer atual (pode ser nulo).
- minSize
- Tamanho mínimo exigido em bytes.
Retorna: Um tampão cujo comprimento seja, pelo menos .
private static bool IsOverflow(Exception ex, int currentSize, int requiredSize)
result = SbeWriteBuffer.IsOverflow(ex, currentSize, requiredSize)
Reconhece as exceções de span-overflow lançadas pelo serializador SBE e calcula um tamanho de destino para crescer. Um dedicado SbeBufferTooSmallException fornece um tamanho exato; os excessos de spam genéricos voltam a duplicar.
public static int Serialize(ClientSbeSession session, Func<SbeRecordSerializer, byte[], int> serialize)
result = SbeWriteBuffer.Serialize(session, serialize)
Serializa uma mensagem para o buffer de gravação da sessão, aumentando o buffer e tentando novamente no overflow. Devolve o número de bytes escritos. O buffer (possivelmente realocado) está disponível via WriteBuffer.
- session
- Sessão de destino cujo buffer de gravação é usado.
- serialize
- Serialize delegada: escreve no buffer, retorna o comprimento escrito.
Retorna: Número de bytes escritos no buffer de sessão.
Campos
public const int InitialWriteBufferSize
value = SbeWriteBuffer.InitialWriteBufferSize
Tamanho inicial padrão de um buffer de gravação de sessão.
public const int MaxWriteBufferSize
value = SbeWriteBuffer.MaxWriteBufferSize
Difícil limite superior para um único quadro SBE. Um quadro que não se encaixa mesmo depois de crescer para este tamanho é tratado como um erro genuíno e re-lançado, em vez de looping para sempre em realocação.