Freigeben über


CachedMessageBlock Klasse

Definition

CachedMessageBlock ist ein Block eng gepackter Strukturen, die Nachverfolgungsdaten für zwischengespeicherte Nachrichten enthalten. Diese Daten sind eng gepackt, um den GC-Druck zu verringern. Die Nachverfolgungsdaten werden vom Warteschlangencache verwendet, um den Cache zu durchlaufen, der geordnete Warteschlangennachrichten pro Stream verarbeitet.

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)
Vererbung

Konstruktoren

CachedMessageBlock(Int32)

Block von zwischengespeicherten Nachrichten.

Eigenschaften

HasCapacity

Ruft einen Wert ab, der angibt, ob dem Block weitere Nachrichten hinzugefügt werden können.

IsEmpty

Ruft einen Wert ab, der angibt, ob dieser Block leer ist.

Item[Int32]

Greifen Sie auf die zwischengespeicherte Nachricht am bereitgestellten Index zu.

ItemCount

Ruft die Anzahl der Nachrichten in diesem Block ab.

NewestMessage

Ruft die neueste Nachricht in diesem Block ab.

NewestMessageIndex

Ruft den Index der letzten Nachricht ab, die dem Block hinzugefügt wurde.

Node

Verknüpfter Listenknoten, sodass dieser Nachrichtenblock in einer verknüpften Liste beibehalten werden kann.

OldestMessage

Ruft die älteste Nachricht im Block ab.

OldestMessageIndex

Ruft den Index der ältesten Nachricht in diesem Block ab.

Pool

Ruft den Pool ab, an den diese Ressource bei der Entsorgung zurückgegeben werden soll. Ein Pool muss diese Eigenschaft bei der Ressourcenzuordnung festlegen.

(Geerbt von PooledResource<T>)

Methoden

Add(CachedMessage)

Fügen Sie dem Block eine Nachricht aus der Warteschlange hinzu. Konvertiert die Warteschlangennachricht in eine zwischengespeicherte Nachricht und speichert sie am Ende des Blocks.

Dispose()

Gibt das Element an den Pool zurück.

(Geerbt von PooledResource<T>)
GetIndexOfFirstMessageLessThanOrEqualTo(StreamSequenceToken)

Ruft den Index der ersten Nachricht in diesem Block ab, die über ein Sequenztoken am oder vor dem bereitgestellten Token verfügt.

GetNewestSequenceToken(ICacheDataAdapter)

Ruft das Sequenztoken der neuesten Nachricht in diesem Block ab.

GetOldestSequenceToken(ICacheDataAdapter)

Ruft das Sequenztoken der ältesten Nachricht in diesem Block ab.

GetSequenceToken(Int32, ICacheDataAdapter)

Ruft das Sequenztoken der zwischengespeicherten Nachricht und den bereitgestellten Index ab.

OnResetState()

Setzt diesen Blockstatus auf den eines leeren Blocks zurück.

Remove()

Entfernt eine Nachricht vom Anfang des Blocks (älteste Daten).

SignalPurge()

Wenn dieses Objekt in einem Objektpool mit fester Größe verwendet werden soll, sollte dieser Aufruf mit der Bereinigungsimplementierung überschrieben werden, die das Objekt an den Pool zurückgibt.

(Geerbt von PooledResource<T>)
TryFindFirstMessage(IStreamIdentity, ICacheDataAdapter, Int32)

Versucht, die erste Nachricht in dem Block zu finden, der Teil des bereitgestellten Datenstroms ist.

TryFindFirstMessage(StreamId, ICacheDataAdapter, Int32)

Versucht, die erste Nachricht in dem Block zu finden, der Teil des bereitgestellten Datenstroms ist.

TryFindNextMessage(Int32, IStreamIdentity, ICacheDataAdapter, Int32)

Versucht, die nächste Nachricht aus dem bereitgestellten Stream abzurufen, beginnend mit dem Startindex.

TryFindNextMessage(Int32, StreamId, ICacheDataAdapter, Int32)

Versucht, die nächste Nachricht aus dem bereitgestellten Stream abzurufen, beginnend mit dem Startindex.

Gilt für: