CachedMessageBlock<TCachedMessage> Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
CachedMessageBlock — это блок тесно упакованных структур, содержащих данные отслеживания кэшированных сообщений. Эти данные плотно упакованы для снижения давления мусора. Данные отслеживания используются кэшем очередей для обхода кэша, обслуживая упорядоченные сообщения очереди по потоку.
public class CachedMessageBlock<TCachedMessage> : Orleans.Providers.Streams.Common.PooledResource<Orleans.Providers.Streams.Common.CachedMessageBlock<TCachedMessage>> where TCachedMessage : struct
type CachedMessageBlock<'CachedMessage (requires 'CachedMessage : struct)> = class
inherit PooledResource<CachedMessageBlock<'CachedMessage>>
Public Class CachedMessageBlock(Of TCachedMessage)
Inherits PooledResource(Of CachedMessageBlock(Of TCachedMessage))
Параметры типа
- TCachedMessage
Плотно упакованная структура. Struct должна содержать только типы значений.
- Наследование
Конструкторы
CachedMessageBlock<TCachedMessage>(Int32) |
Блок кэшированных сообщений |
Свойства
HasCapacity |
В блоки можно добавить дополнительные сообщения |
IsEmpty |
Блок пуст |
Item[Int32] |
Доступ к кэшированному сообщению по указанному индексу. |
ItemCount |
Число сообщений в этом блоке |
NewestMessage |
Последнее сообщение в этом блоке |
NewestMessageIndex |
Индекс последнего сообщения, добавленного в блок |
Node |
Узел связанного списка, поэтому этот блок сообщений можно хранить в связанном списке |
OldestMessage |
Самое старое сообщение в блоке |
OldestMessageIndex |
Индекс самого старого сообщения в этом блоке |
Pool |
Возвращает пул, в который возвращается этот ресурс при удалении. Пул должен задать это свойство при выделении ресурсов. (Унаследовано от PooledResource<T>) |
Методы
Add<TQueueMessage>(TQueueMessage, DateTime, ICacheDataAdapter<TQueueMessage,TCachedMessage>) |
Добавьте сообщение из очереди в блок. Преобразует сообщение очереди в кэшированное и сохраняет его в конце блока. |
Dispose() |
Возвращает элемент в пул. (Унаследовано от PooledResource<T>) |
GetIndexOfFirstMessageLessThanOrEqualTo(StreamSequenceToken, ICacheDataComparer<TCachedMessage>) |
Возвращает индекс первого сообщения в этом блоке с маркером последовательности в указанном маркере или до него. |
GetNewestSequenceToken<TQueueMessage>(ICacheDataAdapter<TQueueMessage,TCachedMessage>) |
Возвращает токен последовательности для новейшего сообщения в этом блоке. |
GetOldestSequenceToken<TQueueMessage>(ICacheDataAdapter<TQueueMessage,TCachedMessage>) |
Возвращает токен последовательности самого старого сообщения в этом блоке. |
GetSequenceToken<TQueueMessage>(Int32, ICacheDataAdapter<TQueueMessage,TCachedMessage>) |
Возвращает токен последовательности кэшированного сообщения с указанным индексом. |
OnResetState() |
Сбрасывает состояние этого блока в состояние пустого блока. |
Remove() |
Удаляет сообщение из начала блока (самые старые данные). Возвращает значение true, если по-прежнему доступно больше элементов. |
SignalPurge() |
Если этот объект будет использоваться в пуле объектов фиксированного размера, этот вызов должен быть переопределен реализацией очистки, которая возвращает объект в пул. (Унаследовано от PooledResource<T>) |
TryFindFirstMessage(IStreamIdentity, ICacheDataComparer<TCachedMessage>, Int32) |
Пытается найти первое сообщение в блоке, который является частью предоставленного потока. |
TryFindNextMessage(Int32, IStreamIdentity, ICacheDataComparer<TCachedMessage>, Int32) |
Пытается получить следующее сообщение из предоставленного потока, начиная с начального индекса. |