ストリームデータ処理基盤 uCosminexus Stream Data Platform - Application Framework アプリケーション開発ガイド
ここでは,「9.3.1 インプロセス連携カスタムアダプターのサンプルプログラムの実行手順」の手順4.でコンパイルしたインプロセス連携送受信制御AP(Inprocess_Main.java)の内容について説明します。このプログラムは,タプルを送受信するアプリケーションを制御する,メインプログラムです。
ソースコードを次に示します。なお,「//【1】」「//〜【1】」などのコメントは,以降の説明の番号と対応しています(これらのコメントは,実際のサンプルプログラムには記載されていません。また,一部コメントの説明は実際のサンプルプログラムと異なります)。
package samples;
import jp.co.Hitachi.soft.sdp.api.SDPConnector;
import jp.co.Hitachi.soft.sdp.api.inprocess.StreamInprocessUP;
import jp.co.Hitachi.soft.sdp.common.exception.SDPClientException;
public class Inprocess_Main implements StreamInprocessUP {
// 受信用スレッドオブジェクト
Inprocess_Receiver receiver = null;
// 送信用スレッドオブジェクト
Inprocess_Sender sender = null;
// SDPサーバとのコネクター
SDPConnector connector = null;
//【1】
public void execute(SDPConnector sc) {
//〜【1】
this.connector = sc;
//【2】
// ポーリング用受信スレッドを開始します
this.receiver = new Inprocess_Receiver(sc);
receiver.start();
// 送信スレッドを開始します
this.sender = new Inprocess_Sender(sc);
sender.start();
//〜【2】
}
//【1】
public void stop() {
//〜【1】
try {
//【3】
// 送信スレッドを停止します
if(sender != null) {
sender.terminate();
sender.join();
}
// 受信スレッドを停止します
if(receiver != null){
receiver.terminate();
receiver.join();
}
} catch (InterruptedException e) {
System.err.println("Main : " + e.getMessage());
}
try {
// コネクターを閉じます
connector.close();
} catch (SDPClientException sce) {
System.err.println("Main : " + sce.getMessage());
}
//〜【3】
}
}
ソースコードの内容について説明します。
All Rights Reserved. Copyright (C) 2010, 2014, Hitachi, Ltd.