Freigeben über


CachedMessageBlock<TCachedMessage> 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 nach Stream verarbeitet.

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

Typparameter

TCachedMessage

Eng gepackte Struktur. Struktur sollte nur Werttypen enthalten.

Vererbung
CachedMessageBlock<TCachedMessage>

Konstruktoren

CachedMessageBlock<TCachedMessage>(Int32)

Block von zwischengespeicherten Nachrichten

Eigenschaften

HasCapacity

Den Blöcken können weitere Nachrichten hinzugefügt werden.

IsEmpty

Block ist leer

Item[Int32]

Greifen Sie auf die zwischengespeicherte Nachricht am bereitgestellten Index zu.

ItemCount

Nachrichtenanzahl in diesem Block

NewestMessage

Neueste Nachricht in diesem Block

NewestMessageIndex

Index der letzten Nachricht, die dem Block hinzugefügt wurde

Node

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

OldestMessage

Älteste Nachricht im Block

OldestMessageIndex

Index der ältesten Nachricht in diesem Block

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<TQueueMessage>(TQueueMessage, DateTime, ICacheDataAdapter<TQueueMessage,TCachedMessage>)

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, ICacheDataComparer<TCachedMessage>)

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

GetNewestSequenceToken<TQueueMessage>(ICacheDataAdapter<TQueueMessage,TCachedMessage>)

Ruft das Sequenztoken der neuesten Nachricht in diesem Block ab.

GetOldestSequenceToken<TQueueMessage>(ICacheDataAdapter<TQueueMessage,TCachedMessage>)

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

GetSequenceToken<TQueueMessage>(Int32, ICacheDataAdapter<TQueueMessage,TCachedMessage>)

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

OnResetState()

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

Remove()

Entfernt eine Nachricht vom Anfang des Blocks (älteste Daten). Gibt true zurück, wenn noch weitere Elemente verfügbar sind.

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, ICacheDataComparer<TCachedMessage>, Int32)

Versucht, die erste Nachricht im Block zu finden, die Teil des bereitgestellten Datenstroms ist.

TryFindNextMessage(Int32, IStreamIdentity, ICacheDataComparer<TCachedMessage>, Int32)

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

Gilt für: