{OutputStream-of t:Type} (クラス)
public abstract shared OutputStream-of {inherits {Stream-of t}}
パッケージ: CURL.IO.STREAM
直接継承しているサブクラス: SeekableOutputStream-of, BufferedOutputStream-of, XMLOutputStream, SerializeOutputStream

パラメータ化された出力ストリーム。


プロパティ
プロパティ 継承 Stream-of: non-blocking-supported?, open?, origin-url

メソッド
async-write:AsyncStreamWriteEvent をエラーか書き込みの終了の EventHandler に伝えながら、ストリームに非同期でデータを書き込みます。partial?true の場合、データの書き込み中であってもイベントが伝えられます。
public {OutputStream-of.async-write
data:{Array-of t},
start:int = 0,
n:int = data.size - start,
max-chunk-size:int = 8192,
partial?:bool = false,
event-handler:EventHandler,
...:EventHandler
}:AsyncWorker
close:ストリームを閉じます。呼び出されると、ストリームを使用不可能にして Stream-of.open?false を返すことを確かめます。
public {OutputStream-of.close}:void
flush:self が収集した、バッファされた出力をフラッシュします。
public abstract {OutputStream-of.flush
non-blocking?:bool = false,
allow-short-write?:bool = false
}:void
write:アイテムの ArrayOutputStream-of に書き込みます。
public {OutputStream-of.write
data:{Array-of t},
start:int = 0,
n:int = data.size - start,
allow-short-write?:bool = false,
non-blocking?:bool = false
}:int
write-one:アイテムを OutputStream-of に書き込みます。
public abstract {OutputStream-of.write-one obj:t}:void
メソッド 継承 Stream-of: verify-open
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize




プロパティ詳細


メソッド詳細
async-write (メソッド)
public {OutputStream-of.async-write
data:{Array-of t},
start:int = 0,
n:int = data.size - start,
max-chunk-size:int = 8192,
partial?:bool = false,
event-handler:EventHandler,
...:EventHandler
}:AsyncWorker

AsyncStreamWriteEvent をエラーか書き込みの終了の EventHandler に伝えながら、ストリームに非同期でデータを書き込みます。partial?true の場合、データの書き込み中であってもイベントが伝えられます。

data: 送信されるオブジェクトの Array
start: オブジェクトはこのキーワード パラメータで指定されるスロットから開始して、配列 (以降 a) から書き込まれます。既定は 0 です。
n: 書き込むオブジェクトの最大数。既定は a.size - start です。
max-chunk-size: 単一の操作でストリームに書き込めるデータの最大量です。しかし、最大量が書き込まれた後でもこれより多くのデータが存在する場合は、非同期で書き込みが継続されます。
partial?: n アイテムが書き込まれたり失敗したりする前に AsyncStreamWriteEvent が送られるべきか示す bool 値のキーワードです。
event-handler: AsyncStreamWriteEvent を受け取る EventHandler。少なくとも 1 つを指定する必要があります。
...: AsyncStreamWriteEvent を受け取るオプションの EventHandler
導入: バージョン 6.0


close (メソッド)
public {OutputStream-of.close}:void

ストリームを閉じます。呼び出されると、ストリームを使用不可能にして Stream-of.open?false を返すことを確かめます。

注意事項

これは OutputStream-of.flush を呼び出してからストリームを閉じます。

オーバーライド

この実装者は、try ブロック内の OutputStream-of.flush を呼び出す必要があります。その場合、try ブロックの finally 部分のストリームを閉じるコードを使用します。


flush (メソッド)
public abstract {OutputStream-of.flush
non-blocking?:bool = false,
allow-short-write?:bool = false
}:void

self が収集した、バッファされた出力をフラッシュします。

オーバーライド

非抽象サブクラスにより提供される必要があります。実装では次のようなコードを含める必要があリます。
{if not self.open? then
    {throw {new IOException, {format "%s not open", self}}}
}
このメソッドの実装の上部に記述します。

例外のスロー

IOException — ディスクの容量不足などの理由でデータを書き込めない場合。


write (メソッド)
public {OutputStream-of.write
data:{Array-of t},
start:int = 0,
n:int = data.size - start,
allow-short-write?:bool = false,
non-blocking?:bool = false
}:int

アイテムの ArrayOutputStream-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 が代入されます。


write-one (メソッド)
public abstract {OutputStream-of.write-one obj:t}:void

アイテムを OutputStream-of に書き込みます。

注意事項

ストリームが開いていない時にこのメソッドを呼び出すとエラーが発生します。サブクラスにこのメソッドを実装する必要があります。

オーバーライド

非抽象サブクラスにより提供される必要があります。実装では次のようなコードを含める必要があリます。
{if not self.open? then
    {throw {new IOException, {format "%s not open", self}}}
}
このメソッドの実装の上部に記述します。