System Class BROADCAST-STREAM
broadcast
ストリームは出力ストリームであり、 ゼロか複数の出力ストリームの集合を関連付けたものです。 broadcast
ストリームにはどのような出力も送ることでき、 関連付けられたそれぞれの出力ストリームに対する出力として転送されます (もしbroadcast
ストリームが何のストリームも持っていなかったときは、 全てのbroadcast
ストリームへの出力は切り捨てられます)。
broadcast
ストリームで実行できる処理の集合は、 関連付けられた出力ストリームの共通部分です。
いくつかの出力処理(例えばfresh-line
)は、 その処理時のストリームの状態による値を返却します。 各ストリームの要素が違った返却値であるとき、 次のように特定した値を返却するように定義する必要があります。
stream-element-type
は、最後の要素のストリームの値を返却し、 もしストリームの要素が無いときはt
を返却します。
fresh-line
は、最後の要素のストリームの値を返却し、 もしストリームの要素が無いときはnil
を返却します。
file-length
, file-position
, file-string-length
, stream-external-format
は 最後の要素のストリームの値を返却します。 もしストリームの要素が無いときは、 file-length
とfile-position
は0
を返却し、 file-string-length
は1
を返却、 stream-external-format
は:default
を返却します。
streamp
とoutput-stream-p
は、 broadcast
ストリームに対しては常にtrueを返却します。
open-stream-p
はbroadcast
ストリームが開いているかどうかをテストします。 保有しているストリーム要素に対して 開いているかどうかをテストするわけではありません。
input-stream-p
とinteractive-stream-p
は実装定義ですが、 generalized-booleanを返却します。
入力処理であるclear-input
, peek-char
, read-byte
, read-char-no-hang
, read-char
, read-line
, unread-char
は、 もしこれらの処理が実行されたときの結果は未定義です。 しかし実装は、実装依存の拡張による 振る舞いを定義することが許されています。
上記かまたは本文書の他の箇所で 戻り値が明確に指定されていない出力操作については、 その操作による返却値は、 そのストリームの要素の最後のものに対して操作を実行した 結果の返却値であると定義されます。 それ以前のストリームに対して行った操作の全ての結果の値は破棄されます。 もしストリームの要素が存在しないときは、 返却値は実装依存です。
broadcast-stream-streams
, make-broadcast-stream