% 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