Partager via


IRecordSequence Interface

Définition

Fournit une interface générique à une séquence d'enregistrements.

public interface class IRecordSequence : IDisposable
public interface IRecordSequence : IDisposable
type IRecordSequence = interface
    interface IDisposable
Public Interface IRecordSequence
Implements IDisposable
Dérivé
Implémente

Remarques

L'interface IRecordSequence fournit une interface abstraite à un flux orienté par enregistrement. Une instance IRecordSequence peut être utilisée pour la lecture et l'écriture des enregistrements du journal.

L'interface IRecordSequence fournit les fonctionnalités suivantes :

  • Ajout des enregistrements du journal à l'aide des méthodes Append.

  • Lecture des enregistrements ajoutés à l'aide de la méthode ReadLogRecords.

  • Écriture d'un enregistrement de reprise spécial à l'aide de la méthode WriteRestartArea.

  • Lecture des enregistrements de reprise à partir de l'enregistrement de reprise le plus récemment écrit à l'aide de la méthode ReadRestartAreas.

  • Videz les enregistrements dans un magasin durable à l’aide de la Flush méthode .

  • Réservation d'espace pour ajouter des enregistrements.

  • Libération d'espace dans le journal en avançant la base du journal.

  • Réception de notifications d'événement TailPinned pour déplacer la base du journal afin de libérer de l'espace.

Les enregistrements du journal sont ajoutés à une instance IRecordSequence et un numéro de séquence unique est assigné à chaque enregistrement du journal. Les numéros de séquence augmentent de façon stricte et monotone dans une séquence d'enregistrement donnée. Un enregistrement du journal se compose de données opaques, fournies à l'instance IRecordSequence dans une IList d'ArraySegments en octets.

L'interface IRecordSequence expose également quelques propriétés de base qui fournissent des informations à propos des limites de journal.

  • La propriété BaseSequenceNumber contient le numéro de séquence du premier enregistrement valide dans la séquence d'enregistrement.

  • La propriété LastSequenceNumber contient un numéro de séquence dont la supériorité au numéro de séquence du dernier enregistrement ajouté est garantie.

  • La propriété RestartSequenceNumber contient le numéro de séquence de la dernière zone de reprise écrite.

  • La propriété MaximumRecordLength contient la taille du plus grand enregistrement qu'il est possible d'ajouter ou de lire à partir de la séquence.

  • La propriété ReservedBytes contient la taille totale de toutes les réservations faites dans cette séquence d'enregistrement.

  • Si la propriété RetryAppend a la valeur true et qu'une opération Append échoue parce qu'aucun espace n'est disponible dans la séquence, la séquence d'enregistrement essaie de libérer de l'espace et réitère l'opération d'ajout.

Propriétés

BaseSequenceNumber

En cas de substitution dans une classe dérivée, obtient le numéro de séquence du premier enregistrement valide dans la IRecordSequence actuelle.

LastSequenceNumber

En cas de substitution dans une classe dérivée, obtient le numéro de séquence qui est supérieur au dernier enregistrement ajouté.

MaximumRecordLength

En cas de substitution dans une classe dérivée, obtient la taille en octets du plus grand enregistrement qui peut être ajouté à ou peut être lu dans cette séquence.

ReservedBytes

En cas de substitution dans une classe dérivée, obtient le nombre total des octets réservés.

RestartSequenceNumber

En cas de substitution dans une classe dérivée, obtient le numéro de séquence de la zone de reprise la plus récemment écrite.

RetryAppend

Obtient ou définit une valeur qui indique si les opérations d'ajout sont réitérées automatiquement si le journal est complet.

Méthodes

AdvanceBaseSequenceNumber(SequenceNumber)

Avance le numéro de séquence de base du journal.

Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions)

En cas de substitution dans une classe dérivée, écrit un enregistrement du journal dans la IRecordSequence.

Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection)

En cas de substitution dans une classe dérivée, ajoute un enregistrement du journal à la IRecordSequence, à l'aide de l'espace précédemment réservé dans la séquence.

Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions)

En cas de substitution dans une classe dérivée, ajoute un enregistrement du journal dans la IRecordSequence.

Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection)

En cas de substitution dans une classe dérivée, ajoute un enregistrement du journal à la IRecordSequence, à l'aide de l'espace précédemment réservé dans la séquence.

BeginAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, AsyncCallback, Object)

En cas de substitution dans une classe dérivée, commence une opération d'ajout asynchrone.

BeginAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, AsyncCallback, Object)

En cas de substitution dans une classe dérivée, commence une opération d'ajout asynchrone à l'aide de l'espace précédemment réservé dans la séquence.

BeginAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, AsyncCallback, Object)

En cas de substitution dans une classe dérivée, commence une opération d'ajout asynchrone à l'aide de l'espace précédemment réservé dans la séquence.

BeginAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, AsyncCallback, Object)

En cas de substitution dans une classe dérivée, commence une opération d'ajout asynchrone à l'aide de l'espace précédemment réservé dans la séquence.

BeginFlush(SequenceNumber, AsyncCallback, Object)

En cas de substitution dans une classe dérivée, commence une opération de vidage asynchrone à l'aide de l'espace précédemment réservé dans la séquence.

BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)

En cas de substitution dans une classe dérivée, commence une réserve asynchrone et une opération d'ajout.

BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)

En cas de substitution dans une classe dérivée, commence une réserve asynchrone et une opération d'ajout.

BeginWriteRestartArea(ArraySegment<Byte>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

En cas de substitution dans une classe dérivée, une opération asynchrone d'écriture de la zone de reprise commence en utilisant l'espace précédemment réservé dans la séquence.

BeginWriteRestartArea(IList<ArraySegment<Byte>>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

En cas de substitution dans une classe dérivée, une opération asynchrone d'écriture de la zone de reprise commence en utilisant l'espace précédemment réservé dans la séquence.

CreateReservationCollection()

En cas de substitution dans une classe dérivée, crée ReservationCollection.

Dispose()

Exécute les tâches définies par l'application associées à la libération ou à la redéfinition des ressources non managées.

(Hérité de IDisposable)
EndAppend(IAsyncResult)

En cas de substitution dans une classe dérivée, met un terme à une opération d'ajout asynchrone.

EndFlush(IAsyncResult)

En cas de substitution dans une classe dérivée, met un terme à une opération de vidage asynchrone.

EndReserveAndAppend(IAsyncResult)

En cas de substitution dans une classe dérivée, met un terme à une réserve asynchrone et une opération d'ajout.

EndWriteRestartArea(IAsyncResult)

En cas de substitution dans une classe dérivée, met un terme à une opération asynchrone d'écriture de la zone de reprise.

Flush()

En cas de substitution dans une classe dérivée, garantit que tous les enregistrements ajoutés ont été écrits.

Flush(SequenceNumber)

En cas de substitution dans une classe dérivée, garantit que tous les enregistrements ajoutés jusqu'à et y compris l'enregistrement avec le numéro de séquence spécifié, ont été écrits de façon durable.

ReadLogRecords(SequenceNumber, LogRecordEnumeratorType)

En cas de substitution dans une classe dérivée, retourne une collection dénombrable des enregistrements de la séquence.

ReadRestartAreas()

En cas de substitution dans une classe dérivée, retourne une collection dénombrable des zones de reprise dans la séquence.

ReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[])

En cas de substitution dans une classe dérivée, effectue automatiquement une réservation unique et ajoute un enregistrement à la séquence.

ReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[])

En cas de substitution dans une classe dérivée, effectue automatiquement une réservation unique et ajoute un enregistrement à la séquence.

WriteRestartArea(ArraySegment<Byte>)

En cas de substitution dans une classe dérivée, écrit une zone de reprise dans la IRecordSequence.

WriteRestartArea(ArraySegment<Byte>, SequenceNumber)

En cas de substitution dans une classe dérivée, écrit une zone de reprise dans la IRecordSequence et met à jour le numéro de séquence de base.

WriteRestartArea(ArraySegment<Byte>, SequenceNumber, ReservationCollection)

En cas de substitution dans une classe dérivée, écrit une zone de reprise dans la IRecordSequence à l'aide d'une réservation et met à jour le numéro de séquence de base.

WriteRestartArea(IList<ArraySegment<Byte>>)

En cas de substitution dans une classe dérivée, écrit une zone de reprise dans la IRecordSequence.

WriteRestartArea(IList<ArraySegment<Byte>>, SequenceNumber)

En cas de substitution dans une classe dérivée, écrit une zone de reprise dans la IRecordSequence et met à jour le numéro de séquence de base.

WriteRestartArea(IList<ArraySegment<Byte>>, SequenceNumber, ReservationCollection)

En cas de substitution dans une classe dérivée, écrit une zone de reprise dans la IRecordSequence à l'aide d'une réservation et met à jour le numéro de séquence de base.

Événements

TailPinned

Se produit lorsque la séquence d'enregistrement spécifie que la fin doit être avancée.

S’applique à