public class RepresentativeReporter extends FilterMessageReporter
このクラスを利用することにより、メッセージの MessageReporter における 処理を現在のスレッドと並列実行させることができます。 これにより、このクラスの report メソッドと、出力先となる MessageReporter の report メソッドの実行は非同期に処理されます。
このクラスを利用することのメリットは、メッセージの出力処理を
待たなくても、現在のスレッドの実行を継続できることにあります。
逆に、このクラスを利用することにより、メッセージ出力処理と現在のスレッド処理
がスレッドセーフであることが保証されなければなりません。
report メソッドで指定されたメッセージはキューに蓄積され、
現在のスレッドと異なるメッセージ処理専用のスレッドで
基礎出力ストリームに渡されます。
メッセージの出力処理は、現在のスレッドと非同期ですが、
report メソッドの実行順とメッセージの出力順は保証されます。
out
コンストラクタと説明 |
---|
RepresentativeReporter(MessageReporter out,
EventQueueController queue)
指定された出力ストリームにメッセージを書き込む
イベントストリームを作成します。
|
修飾子とタイプ | メソッドと説明 |
---|---|
boolean |
canReport()
このストリームが書き込み可能かどうかをチェックします。
|
void |
close()
ストリームを閉じます。
|
void |
flush()
ストリームをフラッシュします。
|
void |
report(Object data)
data をメッセージとして出力します。
|
void |
report(String message)
メッセージを出力します。
|
public RepresentativeReporter(MessageReporter out, EventQueueController queue)
out
- 基礎出力リポーターpublic boolean canReport()
public void report(String message)
report
インタフェース内 MessageReporter
report
クラス内 FilterMessageReporter
message
- メッセージpublic void report(Object data)
report
インタフェース内 MessageReporter
report
クラス内 FilterMessageReporter
data
- データpublic void close() throws IOException
close
インタフェース内 MessageReporter
close
クラス内 FilterMessageReporter
IOException
- 入出力エラーが発生した場合public void flush() throws IOException
ストリームに蓄積されているすべてのメッセージイベントを処理します。 このメソッドを実行した場合、現在のスレッドで メッセージが処理されます。また、このメソッドはすべてのメッセージ出力 処理が完了するまでブロックします。
flush
インタフェース内 MessageReporter
flush
クラス内 FilterMessageReporter
IOException
- 入出力エラーが発生した場合Copyright © 2012 NTT DATA INTRAMART CORPORATION