DataTCPSocketByteOutputStream (クラス)
public sealed DataTCPSocketByteOutputStream {inherits {DataTCPSocketStream-of byte}, DataSocketByteOutputStream}
パッケージ: CURL.IO.SOCKET

DataSocket.to-OutputStream からリターンされたストリームを実装するために使用されるクラス。DataSocket.to-OutputStream を実装するコードのみによりインスタンス化されます。また、非同期インターフェイスを実装します。ここでは、WritableStreamEvent を必要とする EventHandlerDataTCPSocketByteOutputStream.add-event-handler に渡すか、または WritableTimeoutStreamEvent を必要とするものを DataTCPSocketByteOutputStream.add-timeout-event-handler に渡すことができます。

プログラミング注意事項

明示的には使用されません。

プロパティ
プロパティ 継承 DataTCPSocketStream-of: _client-socket, _timeout, client-socket, non-blocking-supported?, open?, origin-url, real-event-target, timeout
プロパティ 継承 ProxyIOEventTarget: event-enabled?, soonest-expiration
プロパティ 継承 DefaultIOEventTarget: doing-event-dispatch?, handlers, saved-event-classes, saved-event-classes-valid?
プロパティ 継承 EventTarget: event-handlers

メソッド
add-event-handler:指定された型の IOEventEventHandler を追加または変更します (非タイムアウト クラスのみ。タイムアウト イベントには IOEventTarget.add-timeout-event-handler を使用します)。
public {DataTCPSocketByteOutputStream.add-event-handler
event-handler:EventHandler
}:void
add-timeout-event-handler:IOTimeoutEvent の特定のサブタイプの EventHandler を追加または変更します。
public {DataTCPSocketByteOutputStream.add-timeout-event-handler
event-handler:EventHandler,
timeout:Time
}:void
close:ストリームを閉じます。呼び出されると、ストリームを使用不可能にして Stream-of.open?false を返すことを確かめます。
public {DataTCPSocketByteOutputStream.close}:void
flush:self が収集した、バッファされた出力をフラッシュします。
public {DataTCPSocketByteOutputStream.flush
non-blocking?:bool = false,
allow-short-write?:bool = false
}:void
shutdown:この出力ストリームのソケットを閉じます。
public {DataTCPSocketByteOutputStream.shutdown}:void
write:アイテムの ArrayOutputStream-of に書き込みます。
public {DataTCPSocketByteOutputStream.write
data:{Array-of byte},
start:int = 0,
n:int = data.size - start,
allow-short-write?:bool = false,
non-blocking?:bool = false
}:int
write-one:アイテムを OutputStream-of に書き込みます。
public {DataTCPSocketByteOutputStream.write-one obj:byte}:void
メソッド 継承 DataTCPSocketStream-of: call-handler, enqueue-timeout, handle-event
メソッド 継承 DataSocketByteOutputStream: async-write
メソッド 継承 Stream-of: verify-open
メソッド 継承 ProxyIOEventTarget: add-targeted-event-handler, remove-event-handler, remove-event-handler-by-type, remove-targeted-event-handler, remove-targeted-event-handler-by-type, reset-event-handler-expiration
メソッド 継承 DefaultIOEventTarget: begin-event-enabled, begin-using-handlers, end-event-enabled, end-using-handlers, event-handler-present?, handle-event-with-now, handlers-resize, make-IOEvent, new-handlers, verify-event
メソッド 継承 EventTarget: accepts-event-class?
メソッド 継承 BasicEventTarget: enqueue-event
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize




プロパティ詳細


メソッド詳細
add-event-handler (メソッド)
public {DataTCPSocketByteOutputStream.add-event-handler
event-handler:EventHandler
}:void

指定された型の IOEventEventHandler を追加または変更します (非タイムアウト クラスのみ。タイムアウト イベントには IOEventTarget.add-timeout-event-handler を使用します)。

event-handler: イベントまたはタイムアウトが発生したときに呼び出されるルーチンを持つ EventHandler。呼び出し側は、呼び出しで EventHandler を作成できます。

戻り値

追加された EventHandler。このハンドラを追加して削除する場合、呼び出し側が別にオブジェクトを作成しなくてすむようにこの戻り値を保存できます。

オーバーライド

これは、DefaultIOEventTarget.handlers を使用します。


add-timeout-event-handler (メソッド)
public {DataTCPSocketByteOutputStream.add-timeout-event-handler
event-handler:EventHandler,
timeout:Time
}:void

IOTimeoutEvent の特定のサブタイプの EventHandler を追加または変更します。

event-handler: タイムアウト イベントが発生したときに呼び出されるルーチンを備えた EventHandler。呼び出し側は、呼び出しで EventHandler を作成できます。
timeout: このハンドラを呼び出す前に、アクティビティが発生せずに経過するタイムアウト期間の Time

戻り値

追加された EventHandler。このハンドラを追加して削除する場合、呼び出し側が別にオブジェクトを作成しなくてすむようにこの戻り値を保存できます。

オーバーライド

これは、DefaultIOEventTarget.handlers を使用します。


close (メソッド)
public {DataTCPSocketByteOutputStream.close}:void

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

注意事項

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

オーバーライド

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


flush (メソッド)
public {DataTCPSocketByteOutputStream.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 — ディスクの容量不足などの理由でデータを書き込めない場合。


shutdown (メソッド)
public {DataTCPSocketByteOutputStream.shutdown}:void

この出力ストリームのソケットを閉じます。

プログラミング注意事項

呼び出された後は、このストリームは close の実行以外に何もできませんが、同じソケットの DataSocketByteInputStream はまだ使用できます。後でこのストリームで close を呼び出す必要があります。


write (メソッド)
public {DataTCPSocketByteOutputStream.write
data:{Array-of byte},
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 {DataTCPSocketByteOutputStream.write-one obj:byte}:void

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

注意事項

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

オーバーライド

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