% System-Class BROADCAST-STREAM
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