AsyncStreamWriteEvent をエラーか書き込みの終了の EventHandler に伝えながら、ストリームに非同期でデータを書き込みます。partial? が true の場合、データの書き込み中であってもイベントが伝えられます。
data: 送信されるオブジェクトの Array。
start: オブジェクトはこのキーワード パラメータで指定されるスロットから開始して、配列 (以降 a) から書き込まれます。既定は 0 です。
n: 書き込むオブジェクトの最大数。既定は a.size - start です。
max-chunk-size: 単一の操作でストリームに書き込めるデータの最大量です。しかし、最大量が書き込まれた後でもこれより多くのデータが存在する場合は、非同期で書き込みが継続されます。
導入:
バージョン 6.0
アイテムの Array を OutputStream-of に書き込みます。
data: 送信されるオブジェクトの Array。
start: オブジェクトはこのキーワード パラメータで指定されるスロットから開始して、配列 (以降 a) から書き込まれます。既定は 0 です。
n: 書き込むオブジェクトの最大数。既定は a.size - start です。
allow-short-write?: この呼び出しで n 未満のデータが書き込まれるか、データの配列全体が書き込まれるかどうかを示します。既定は false です。ほとんどのストリームではサポートされていませんが、サポートされていない場合でもエラーや例外は発生しません。これはネットワーキングを実装する状況で使用します。
non-blocking?: 呼び出しの非ブロッキング実行、つまりすぐに使用可能なデータがない場合はデータを書き込まずにすぐに返すかどうかを示します。既定は false です。これが true の場合は、 allow-short-write? は暗黙的に true になります。
戻り値
書き込まれるデータの量。 allow-short-write? または non-blocking? が true でない限り、常に n になります。この場合、データ量は、直ちに書き込みできる最大量になりますが、 allow-short-write? だけが true の場合は少なくとも 1 が代入されます。
アイテムを OutputStream-of に書き込みます。
注意事項
ストリームが開いていない時にこのメソッドを呼び出すとエラーが発生します。サブクラスにこのメソッドを実装する必要があります。
オーバーライド
非抽象サブクラスにより提供される必要があります。実装では次のようなコードを含める必要があリます。
{if not self.open? then
{throw {new IOException, {format "%s not open", self}}}
}
このメソッドの実装の上部に記述します。