CachedMessageBlock 类

定义

CachedMessageBlock 是一个紧密打包的结构块,其中包含缓存消息的跟踪数据。 此数据紧密打包,以减小 GC 压力。 队列缓存使用跟踪数据来遍视按流提供有序队列消息的缓存。

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)

尝试从提供的流中获取下一条消息,从起始索引开始。

适用于