Поделиться через


CachedMessageBlock Класс

Определение

CachedMessageBlock — это блок тесно упакованных структур, содержащих данные отслеживания кэшированных сообщений. Эти данные плотно упакованы для снижения давления мусора. Данные отслеживания используются кэшем очередей для обхода кэша, обслуживая упорядоченные сообщения очереди по потоку.

public class CachedMessageBlock : Orleans.Providers.Streams.Common.PooledResource<Orleans.Providers.Streams.Common.CachedMessageBlock>
type CachedMessageBlock = class
    inherit PooledResource<CachedMessageBlock>
Public Class CachedMessageBlock
Inherits PooledResource(Of CachedMessageBlock)
Наследование

Конструкторы

CachedMessageBlock(Int32)

Блок кэшированных сообщений.

Свойства

HasCapacity

Возвращает значение, указывающее, можно ли добавить в блок дополнительные сообщения.

IsEmpty

Возвращает значение, указывающее, является ли этот блок пустым.

Item[Int32]

Доступ к кэшированному сообщению по указанному индексу.

ItemCount

Возвращает количество сообщений в этом блоке.

NewestMessage

Возвращает последнее сообщение в этом блоке.

NewestMessageIndex

Возвращает индекс последнего сообщения, добавленного в блок.

Node

Узел связанного списка, поэтому этот блок сообщений можно хранить в связанном списке.

OldestMessage

Возвращает самое старое сообщение в блоке.

OldestMessageIndex

Возвращает индекс самого старого сообщения в этом блоке.

Pool

Возвращает пул, в который возвращается этот ресурс при удалении. Пул должен задать это свойство при выделении ресурсов.

(Унаследовано от PooledResource<T>)

Методы

Add(CachedMessage)

Добавьте сообщение из очереди в блок. Преобразует сообщение очереди в кэшированное и сохраняет его в конце блока.

Dispose()

Возвращает элемент в пул.

(Унаследовано от PooledResource<T>)
GetIndexOfFirstMessageLessThanOrEqualTo(StreamSequenceToken)

Возвращает индекс первого сообщения в этом блоке с маркером последовательности в указанном маркере или до него.

GetNewestSequenceToken(ICacheDataAdapter)

Возвращает токен последовательности для новейшего сообщения в этом блоке.

GetOldestSequenceToken(ICacheDataAdapter)

Возвращает токен последовательности самого старого сообщения в этом блоке.

GetSequenceToken(Int32, ICacheDataAdapter)

Возвращает токен последовательности кэшированного сообщения с указанным индексом.

OnResetState()

Сбрасывает состояние этого блока в состояние пустого блока.

Remove()

Удаляет сообщение из начала блока (самые старые данные).

SignalPurge()

Если этот объект будет использоваться в пуле объектов фиксированного размера, этот вызов должен быть переопределен реализацией очистки, которая возвращает объект в пул.

(Унаследовано от PooledResource<T>)
TryFindFirstMessage(IStreamIdentity, ICacheDataAdapter, Int32)

Пытается найти первое сообщение в блоке, который является частью предоставленного потока.

TryFindFirstMessage(StreamId, ICacheDataAdapter, Int32)

Пытается найти первое сообщение в блоке, который является частью предоставленного потока.

TryFindNextMessage(Int32, IStreamIdentity, ICacheDataAdapter, Int32)

Пытается получить следующее сообщение из предоставленного потока, начиная с начального индекса.

TryFindNextMessage(Int32, StreamId, ICacheDataAdapter, Int32)

Пытается получить следующее сообщение из предоставленного потока, начиная с начального индекса.

Применяется к