Udostępnij za pośrednictwem


IRecordSequence Interfejs

Definicja

Udostępnia ogólny interfejs sekwencji rekordów.

public interface class IRecordSequence : IDisposable
public interface IRecordSequence : IDisposable
type IRecordSequence = interface
    interface IDisposable
Public Interface IRecordSequence
Implements IDisposable
Pochodne
Implementuje

Uwagi

Interfejs IRecordSequence udostępnia abstrakcyjny interfejs strumienia zorientowanego na rekordy. Wystąpienie IRecordSequence może służyć do odczytywania i zapisywania rekordów dziennika.

Interfejs IRecordSequence zapewnia następujące możliwości:

  • Dołączanie rekordów dziennika przy użyciu Append metod.

  • Przeczytaj dołączone rekordy przy użyciu ReadLogRecords metody .

  • Napisz specjalny rekord ponownego WriteRestartArea uruchomienia przy użyciu metody .

  • Odczyt rekordów ponownego uruchamiania z ostatnio napisanego rekordu ponownego uruchamiania ReadRestartAreas przy użyciu metody .

  • Opróżnij rekordy do trwałego magazynu przy użyciu Flush metody .

  • Rezerwuj miejsce na dołączanie rekordów.

  • Wolne miejsce w dzienniku przez przejście do podstawy dziennika.

  • Odbieranie TailPinned powiadomień o zdarzeniach w celu przeniesienia podstawy dziennika do wolnego miejsca.

Rekordy dziennika są dołączane do IRecordSequence wystąpienia, a każdy rekord dziennika otrzymuje unikatowy numer sekwencji. Liczby sekwencji są ściśle monotonicznie rosnące w ramach danej sekwencji rekordów. Rekord dziennika składa się z nieprzezroczystych danych dostarczonych do IRecordSequence wystąpienia w IList tablicySegments bajtów.

Interfejs IRecordSequence udostępnia również kilka podstawowych właściwości, które zawierają informacje o granicach dziennika.

  • Właściwość BaseSequenceNumber zawiera numer sekwencji pierwszego prawidłowego rekordu w sekwencji rekordów.

  • Właściwość LastSequenceNumber zawiera numer sekwencji, który ma być większy niż numer sekwencji ostatniego dołączonego rekordu.

  • Właściwość RestartSequenceNumber zawiera numer sekwencji ostatniego zapisanego obszaru ponownego uruchamiania.

  • Właściwość MaximumRecordLength zawiera rozmiar największego rekordu, do którego można dołączyć lub odczyt z sekwencji.

  • Właściwość ReservedBytes zawiera całkowity rozmiar wszystkich rezerwacji dokonanych w tej sekwencji rekordów.

  • RetryAppend Jeśli właściwość jest ustawiona na truewartość , a operacja kończy się niepowodzeniemAppend, ponieważ nie ma miejsca w sekwencji, sekwencja rekordów podejmie próbę zwolnienia miejsca i ponów próbę wykonania operacji Dołączanie.

Właściwości

BaseSequenceNumber

Po zastąpieniu w klasie pochodnej pobiera numer sekwencji pierwszego prawidłowego rekordu w bieżącym .IRecordSequence

LastSequenceNumber

Po przesłonięciu w klasie pochodnej pobiera numer sekwencji, który jest większy niż ostatni rekord dołączony.

MaximumRecordLength

Po zastąpieniu w klasie pochodnej pobiera rozmiar największego rekordu, który można dołączyć do tej sekwencji lub odczytać z tej sekwencji w bajtach.

ReservedBytes

Po zastąpieniu w klasie pochodnej pobiera całkowitą liczbę bajtów, które zostały zarezerwowane.

RestartSequenceNumber

Po przesłonięciu w klasie pochodnej pobiera numer sekwencji ostatnio napisanego obszaru ponownego uruchamiania.

RetryAppend

Pobiera lub ustawia wartość wskazującą, czy dołączania są automatycznie ponawiane, jeśli dziennik jest pełny.

Metody

AdvanceBaseSequenceNumber(SequenceNumber)

Przenosi numer sekwencji podstawowej dziennika do przodu.

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

Gdy zastąpisz klasę pochodną, zapisuje rekord dziennika w obiekcie IRecordSequence.

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

Po przesłonięciu w klasie pochodnej dołącza rekord dziennika do IRecordSequenceobiektu , używając wcześniej zarezerwowanego miejsca w sekwencji.

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

Po zastąpieniu w klasie pochodnej dołącza rekord dziennika do klasy IRecordSequence.

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

Po przesłonięciu w klasie pochodnej dołącza rekord dziennika do IRecordSequenceobiektu , używając wcześniej zarezerwowanego miejsca w sekwencji.

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

Po zastąpieniu klasy pochodnej rozpoczyna operację asynchronicznego dołączania.

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

Po zastąpieniu klasy pochodnej rozpoczyna operację asynchronicznego dołączania przy użyciu spacji zarezerwowanej wcześniej w sekwencji.

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

Po zastąpieniu klasy pochodnej rozpoczyna operację asynchronicznego dołączania, używając spacji zarezerwowanej wcześniej w sekwencji.

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

Po zastąpieniu klasy pochodnej rozpoczyna operację asynchronicznego dołączania, używając spacji zarezerwowanej wcześniej w sekwencji.

BeginFlush(SequenceNumber, AsyncCallback, Object)

Po przesłonięciu w klasie pochodnej rozpoczyna operację asynchronicznego opróżniania, używając spacji wcześniej zarezerwowanej w sekwencji.

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

Po zastąpieniu klasy pochodnej rozpoczyna się asynchroniczną rezerwę i operację dołączania.

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

Po zastąpieniu klasy pochodnej rozpoczyna się asynchroniczną rezerwę i operację dołączania.

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

Po zastąpieniu w klasie pochodnej rozpoczyna asynchroniczną operację zapisu obszaru ponownego uruchamiania przy użyciu miejsca zarezerwowanego wcześniej w sekwencji.

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

Po zastąpieniu w klasie pochodnej rozpoczyna asynchroniczną operację zapisu obszaru ponownego uruchamiania przy użyciu miejsca zarezerwowanego wcześniej w sekwencji.

CreateReservationCollection()

Po przesłonięciu w klasie pochodnej tworzy nowy ReservationCollectionelement .

Dispose()

Wykonuje zdefiniowane przez aplikację zadania skojarzone ze zwalnianiem lub resetowaniem zasobów niezarządzanych.

(Odziedziczone po IDisposable)
EndAppend(IAsyncResult)

Po zastąpieniu klasy pochodnej kończy operację asynchronicznego dołączania.

EndFlush(IAsyncResult)

W przypadku przesłonięcia w klasie pochodnej kończy operację asynchronicznego opróżniania.

EndReserveAndAppend(IAsyncResult)

Po zastąpieniu klasy pochodnej kończy się asynchroniczną rezerwą i operacją dołączania.

EndWriteRestartArea(IAsyncResult)

Po zastąpieniu klasy pochodnej kończy asynchroniczną operację zapisu obszaru ponownego uruchamiania.

Flush()

Po przesłonięciu w klasie pochodnej gwarantuje, że wszystkie dołączone rekordy zostały zapisane.

Flush(SequenceNumber)

Po przesłonięciu w klasie pochodnej zapewnia, że wszystkie dołączone rekordy do i w tym rekord z określonym numerem sekwencji zostały trwale zapisane.

ReadLogRecords(SequenceNumber, LogRecordEnumeratorType)

Po przesłonięciu w klasie pochodnej zwraca wyliczalną kolekcję rekordów w sekwencji.

ReadRestartAreas()

Po zastąpieniu w klasie pochodnej zwraca wyliczalną kolekcję obszarów ponownego uruchamiania w sekwencji.

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

W przypadku zastąpienia w klasie pochodnej automatycznie tworzy pojedynczą rezerwację i dołącza rekord do sekwencji.

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

W przypadku zastąpienia w klasie pochodnej automatycznie tworzy pojedynczą rezerwację i dołącza rekord do sekwencji.

WriteRestartArea(ArraySegment<Byte>)

Gdy zastąpisz klasę pochodną, zapisuje obszar ponownego uruchamiania do klasy IRecordSequence.

WriteRestartArea(ArraySegment<Byte>, SequenceNumber)

Po przesłonięciu w klasie pochodnej zapisuje obszar ponownego uruchamiania do IRecordSequence obiektu i aktualizuje numer sekwencji podstawowej.

WriteRestartArea(ArraySegment<Byte>, SequenceNumber, ReservationCollection)

Gdy zastąpisz klasę pochodną, zapisuje obszar ponownego uruchamiania przy IRecordSequence użyciu rezerwacji i aktualizuje numer sekwencji podstawowej.

WriteRestartArea(IList<ArraySegment<Byte>>)

Gdy zastąpisz klasę pochodną, zapisuje obszar ponownego uruchamiania do klasy IRecordSequence.

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

Po przesłonięciu w klasie pochodnej zapisuje obszar ponownego uruchamiania do IRecordSequence obiektu i aktualizuje numer sekwencji podstawowej.

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

Gdy zastąpisz klasę pochodną, zapisuje obszar ponownego uruchamiania przy IRecordSequence użyciu rezerwacji i aktualizuje numer sekwencji podstawowej.

Zdarzenia

TailPinned

Występuje, gdy sekwencja rekordów określa, że ogon musi zostać przeniesiony do przodu.

Dotyczy