IRecordSequence.BeginReserveAndAppend メソッド

定義

派生クラスでオーバーライドされると、非同期予約および追加操作を開始します。

オーバーロード

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

派生クラスでオーバーライドされると、非同期予約および追加操作を開始します。

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

派生クラスでオーバーライドされると、非同期予約および追加操作を開始します。

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

派生クラスでオーバーライドされると、非同期予約および追加操作を開始します。

public:
 IAsyncResult ^ BeginReserveAndAppend(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, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReserveAndAppend(ArraySegment<byte> data, System.IO.Log.SequenceNumber nextUndoRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, System.IO.Log.ReservationCollection reservationCollection, long[] reservations, AsyncCallback callback, object state);
abstract member BeginReserveAndAppend : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] * AsyncCallback * obj -> IAsyncResult
Public Function BeginReserveAndAppend (data As ArraySegment(Of Byte), nextUndoRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservationCollection As ReservationCollection, reservations As Long(), callback As AsyncCallback, state As Object) As IAsyncResult

パラメーター

data
ArraySegment<Byte>

レコードとして連結および追加されるバイト配列セグメントのリスト。

nextUndoRecord
SequenceNumber

ユーザー指定の順序での次のレコードのシーケンス番号。

previousRecord
SequenceNumber

次のレコードのシーケンス番号 (前の順序)。

recordAppendOptions
RecordAppendOptions

データの書き込み方法を指定する RecordAppendOptions の有効な値。

reservationCollection
ReservationCollection

予約を行う予約コレクション。

reservations
Int64[]

行う予約 (バイト単位)。

callback
AsyncCallback

追加が完了したときに呼び出される、省略可能な非同期コールバック。

state
Object

この特定の非同期追加要求を他の要求と区別するユーザー指定のオブジェクト。

返品

この非同期操作を表す IAsyncResult 。まだ保留中である可能性があります。

例外

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

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

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

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

注釈

追加操作が完了し、リソースを適切に解放できるように、このメソッドによって返される IAsyncResultEndReserveAndAppend メソッドに渡す必要があります。 非同期追加中にエラーが発生した場合、このメソッドから返されたEndReserveAndAppendIAsyncResult メソッドが呼び出されるまで、例外はスローされません。

data パラメーターに含まれるデータは、レコードとして追加するために 1 バイト配列に連結されます。 ただし、レコードの読み取り時にデータを配列セグメントに分割するためのプロビジョニングは行われません。

指定された予約は、レコード追加操作を使用してアトミック操作で指定された予約コレクションに追加されます。 追加に失敗した場合、領域は予約されません。

通常、このメソッドは、レコードが書き込まれる前に完了する可能性があります。 レコードが確実に書き込まれるようにするには、ForceFlush パラメーターを使用して recordAppendOptions フラグを指定するか、Flush メソッドを呼び出します。

レコード シーケンスが破棄された場合、または無効な引数を渡した場合、この操作内で例外が直ちにスローされます。 非同期の追加要求中に発生したエラー (I/O 要求中のディスク障害など) は、 EndReserveAndAppend メソッドが呼び出されたときに例外がスローされます。

適用対象

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

派生クラスでオーバーライドされると、非同期予約および追加操作を開始します。

public:
 IAsyncResult ^ BeginReserveAndAppend(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, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReserveAndAppend(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, long[] reservations, AsyncCallback callback, object state);
abstract member BeginReserveAndAppend : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] * AsyncCallback * obj -> IAsyncResult
Public Function BeginReserveAndAppend (data As IList(Of ArraySegment(Of Byte)), nextUndoRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservationCollection As ReservationCollection, reservations As Long(), callback As AsyncCallback, state As Object) As IAsyncResult

パラメーター

data
IList<ArraySegment<Byte>>

レコードとして連結および追加されるバイト配列セグメントのリスト。

nextUndoRecord
SequenceNumber

ユーザー指定の順序での次のレコードのシーケンス番号。

previousRecord
SequenceNumber

次のレコードのシーケンス番号 (前の順序)。

recordAppendOptions
RecordAppendOptions

データの書き込み方法を指定する RecordAppendOptions の有効な値。

reservationCollection
ReservationCollection

予約を行う予約コレクション。

reservations
Int64[]

行う予約 (バイト単位)。

callback
AsyncCallback

追加が完了したときに呼び出される、省略可能な非同期コールバック。

state
Object

この特定の非同期追加要求を他の要求と区別するユーザー指定のオブジェクト。

返品

この非同期操作を表す IAsyncResult 。まだ保留中である可能性があります。

例外

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

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

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

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

注釈

追加操作が完了し、リソースを適切に解放できるように、このメソッドによって返される IAsyncResultEndReserveAndAppend メソッドに渡す必要があります。 非同期追加中にエラーが発生した場合、このメソッドから返されたEndReserveAndAppendIAsyncResult メソッドが呼び出されるまで、例外はスローされません。

data パラメーターに含まれるデータは、レコードとして追加するために 1 バイト配列に連結されます。 ただし、レコードの読み取り時にデータを配列セグメントに分割するためのプロビジョニングは行われません。

指定された予約は、レコード追加操作を使用してアトミック操作で指定された予約コレクションに追加されます。 追加に失敗した場合、領域は予約されません。

通常、このメソッドは、レコードが書き込まれる前に完了する可能性があります。 レコードが確実に書き込まれるようにするには、ForceFlush パラメーターを使用して recordAppendOptions フラグを指定するか、Flush メソッドを呼び出します。

レコード シーケンスが破棄された場合、または無効な引数を渡した場合、この操作内で例外が直ちにスローされます。 非同期の追加要求中に発生したエラー (I/O 要求中のディスク障害など) は、 EndReserveAndAppend メソッドが呼び出されたときに例外がスローされます。

適用対象