次の方法で共有


IRecordSequence.ReserveAndAppend メソッド

定義

派生クラスでオーバーライドされると、単一の予約を自動的に行って、シーケンスにレコードを追加します。

オーバーロード

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

派生クラスでオーバーライドされると、単一の予約を自動的に行って、シーケンスにレコードを追加します。

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

派生クラスでオーバーライドされると、単一の予約を自動的に行って、シーケンスにレコードを追加します。

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

派生クラスでオーバーライドされると、単一の予約を自動的に行って、シーケンスにレコードを追加します。

public:
 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
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[]

作成する予約のバイト数。

戻り値

追加されたログ レコードのシーケンス番号。

例外

1 つ以上の引数が無効です。

レコードの追加時に I/O エラーが発生しました。

レコード シーケンスは、新しいレコードの格納または予約のための十分な空き領域を作成できませんでした。

シーケンスが破棄された後にメソッドが呼び出されました。

注釈

data パラメーターに格納されたデータは、レコードとして追加するために単一バイトの配列に連結されます。 ただし、レコードの読み取り時にデータを分割して配列セグメントに戻す準備は実施されません。

指定の予約情報は、レコード追加操作を含む分割不可能な操作内で、提供された予約コレクションに追加されます。 追加が失敗した場合、領域は予約されません。

このメソッドは通常、レコードの書き込みが終わる前に完了できます。 レコードが書き込まれたことを確認するために、ForceFlush パラメーターを使用して recordAppendOptions フラグを指定するか、Flush メソッドを呼び出します。

適用対象

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

派生クラスでオーバーライドされると、単一の予約を自動的に行って、シーケンスにレコードを追加します。

public:
 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
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[]

作成する予約のバイト数。

戻り値

追加されたログ レコードのシーケンス番号。

例外

1 つ以上の引数が無効です。

レコードの追加時に I/O エラーが発生しました。

レコード シーケンスは、新しいレコードの格納または予約のための十分な空き領域を作成できませんでした。

シーケンスが破棄された後にメソッドが呼び出されました。

注釈

data パラメーターに格納されたデータは、レコードとして追加するために単一バイトの配列に連結されます。 ただし、レコードの読み取り時にデータを分割して配列セグメントに戻す準備は実施されません。

指定の予約情報は、レコード追加操作を含む分割不可能な操作内で、提供された予約コレクションに追加されます。 追加が失敗した場合、領域は予約されません。

このメソッドは通常、レコードの書き込みが終わる前に完了できます。 レコードが書き込まれたことを確認するために、ForceFlush パラメーターを使用して recordAppendOptions フラグを指定するか、Flush メソッドを呼び出します。

適用対象