jp.crestmuse.cmx.amusaj.sp
インタフェース ProducerConsumerCompatible

既知の実装クラスの一覧:
ChromaExtractor, DoubleArraySpreadModule, F0PDFCalculatorModule, FeatureExtractionModule, FeatureExtractionModule2, HarmonicsExtractor, HarmonicsExtractor2, HarmonicsTimeSeriesGenerator, MidiInputModule, MidiOutputModule, MidiRecorder, PeakExtractor, SPGroup, SPModule, SPProgressDisplayModule, SPSpreadModule, SPStreamReader, SPStreamWriter, STFT, WindowSlider

public interface ProducerConsumerCompatible

Producer-Consumerパターンに基づいたデータ処理モジュールのインターフェースです. このインターフェースでは, 1つ以上のキューから要素を1つずつ取り出して, 何らかの処理を行った後, 処理結果を別のキューに書き込みます. 各モジュールには, 基本的には入力チャンネルと出力チャンネルが各々1つ以上あり, 各チャンネルにキューが接続される形になります.


メソッドの概要
 void execute(java.lang.Object[] src, TimeSeriesCompatible[] dest)
          ここに処理内容を記述します.
 java.lang.Class[] getInputClasses()
          各入力チャンネルが受け付けるオブジェクトのクラスを配列で返します.
 java.lang.Class[] getOutputClasses()
          各出力チャンネルが出力するオブジェクトのクラスを配列で返します.
 void stop()
          モジュールの処理が終了したときにSPExecutorから呼び出されます
 void terminated(TimeSeriesCompatible[] dest)
           
 

メソッドの詳細

execute

void execute(java.lang.Object[] src,
             TimeSeriesCompatible[] dest)
             throws java.lang.InterruptedException
ここに処理内容を記述します. 引数srcに全入力チャンネルに対するQueueReaderが 格納されているので, takeメソッドでそこから1つずつ要素を取り出します.

パラメータ:
src - 全入力チャンネルに対するQueueReaderオブジェクト
dest - 全出力チャンネル
例外:
java.lang.InterruptedException

terminated

void terminated(TimeSeriesCompatible[] dest)
                throws java.lang.InterruptedException
例外:
java.lang.InterruptedException

stop

void stop()
モジュールの処理が終了したときにSPExecutorから呼び出されます


getInputClasses

java.lang.Class[] getInputClasses()
各入力チャンネルが受け付けるオブジェクトのクラスを配列で返します.


getOutputClasses

java.lang.Class[] getOutputClasses()
各出力チャンネルが出力するオブジェクトのクラスを配列で返します.