Поделиться через


FileRecordSequence.ReserveAndAppend Метод

Определение

Автоматически делает одно резервирование и добавляет запись в последовательность.

Перегрузки

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

Автоматически делает одно резервирование и добавляет запись в последовательность. Этот метод не может быть унаследован.

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

Автоматически делает одно резервирование и добавляет запись в последовательность. Этот метод не может быть унаследован.

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

Автоматически делает одно резервирование и добавляет запись в последовательность. Этот метод не может быть унаследован.

public:
 virtual System::IO::Log::SequenceNumber ReserveAndAppend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ data, System::IO::Log::SequenceNumber nextUndoRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions, System::IO::Log::ReservationCollection ^ reservationCollection, ... cli::array <long> ^ reservations);
public System.IO.Log.SequenceNumber ReserveAndAppend (System.Collections.Generic.IList<ArraySegment<byte>> data, System.IO.Log.SequenceNumber nextUndoRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, System.IO.Log.ReservationCollection reservationCollection, params long[] reservations);
abstract member ReserveAndAppend : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] -> System.IO.Log.SequenceNumber
override this.ReserveAndAppend : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] -> System.IO.Log.SequenceNumber
Public Function ReserveAndAppend (data As IList(Of ArraySegment(Of Byte)), nextUndoRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservationCollection As ReservationCollection, ParamArray reservations As Long()) As SequenceNumber

Параметры

data
IList<ArraySegment<Byte>>

Список фрагментов массива байтов, которые будут сцеплены и добавлены в качестве записи.

nextUndoRecord
SequenceNumber

Порядковый номер следующей записи в порядке, заданном пользователем.

previousRecord
SequenceNumber

Порядковый номер следующей записи в обратном порядке.

recordAppendOptions
RecordAppendOptions

Допустимое значение объекта RecordAppendOptions, задающего, как должны записываться данные.

reservationCollection
ReservationCollection

Коллекция резервирования, в которой требуется сделать резервирования.

reservations
Int64[]

Размер необходимого резервирования (в байтах).

Возвращаемое значение

Порядковый номер добавленной в журнал записи.

Реализации

Исключения

Один или несколько аргументов имеют значение null.

Один или несколько аргументов выходят за пределы диапазона.

Параметр reservations не был создан этой последовательностью записи.

Невозможно выполнить операцию, поскольку последовательность записей была открыта с доступом только для чтения.

Не удалось выполнить запрос, так как возникла неожиданная ошибка ввода-вывода.

Метод был вызван после удаления последовательности.

Недостаточно памяти, чтобы продолжить выполнение программы.

Последовательность записей заполнена.

Комментарии

Данные, содержащиеся в параметре data, будут сцеплены в единый массив байтов для добавления в качестве записи. Однако не делается допущение об обратном разделении данных на фрагменты массива при чтении записи.

Заданные резервирования добавляются в предоставленную коллекцию резервирования при помощи атомарной операции добавления записи. Если выполнить добавление не удается, место не резервируется.

Обычно этот метод может завершить работу до того, как запись будет записана. Чтобы запись точно была записана, либо укажите флаг ForceFlush с помощью параметра recordAppendOptions, либо вызовите метод Flush.

Применяется к

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

Автоматически делает одно резервирование и добавляет запись в последовательность. Этот метод не может быть унаследован.

public:
 virtual System::IO::Log::SequenceNumber ReserveAndAppend(ArraySegment<System::Byte> data, System::IO::Log::SequenceNumber nextUndoRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions, System::IO::Log::ReservationCollection ^ reservationCollection, ... cli::array <long> ^ reservations);
public System.IO.Log.SequenceNumber ReserveAndAppend (ArraySegment<byte> data, System.IO.Log.SequenceNumber nextUndoRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, System.IO.Log.ReservationCollection reservationCollection, params long[] reservations);
abstract member ReserveAndAppend : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] -> System.IO.Log.SequenceNumber
override this.ReserveAndAppend : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] -> System.IO.Log.SequenceNumber
Public Function ReserveAndAppend (data As ArraySegment(Of Byte), nextUndoRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservationCollection As ReservationCollection, ParamArray reservations As Long()) As SequenceNumber

Параметры

data
ArraySegment<Byte>

Список фрагментов массива байтов, которые будут сцеплены и добавлены в качестве записи.

nextUndoRecord
SequenceNumber

Порядковый номер следующей записи в порядке, заданном пользователем.

previousRecord
SequenceNumber

Порядковый номер следующей записи в обратном порядке.

recordAppendOptions
RecordAppendOptions

Допустимое значение объекта RecordAppendOptions, задающего, как должны записываться данные.

reservationCollection
ReservationCollection

Объект ReservationCollection, содержащий коллекцию, в которой создается резервирование.

reservations
Int64[]

Размер необходимого резервирования (в байтах).

Возвращаемое значение

Порядковый номер добавленной в журнал записи.

Реализации

Исключения

Один или несколько аргументов имеют значение null.

Один или несколько аргументов выходят за пределы диапазона.

Параметр reservations не был создан этой последовательностью записи.

Невозможно выполнить операцию, поскольку последовательность записей была открыта с доступом только для чтения.

Не удалось выполнить запрос, так как возникла неожиданная ошибка ввода-вывода.

Метод был вызван после удаления последовательности.

Недостаточно памяти, чтобы продолжить выполнение программы.

Последовательность записей заполнена.

Комментарии

Данные, содержащиеся в параметре data, будут сцеплены в единый массив байтов для добавления в качестве записи. Однако не делается допущение об обратном разделении данных на фрагменты массива при чтении записи.

Заданные резервирования добавляются в предоставленную коллекцию резервирования при помощи атомарной операции добавления записи. Если выполнить добавление не удается, место не резервируется.

Обычно этот метод может завершить работу до того, как запись будет записана. Чтобы запись точно была записана, либо укажите флаг ForceFlush с помощью параметра recordAppendOptions, либо вызовите метод Flush.

Применяется к