Foundation > イベント > 外部入力ソース (UNIX のみ)
 
外部入力ソース (UNIX のみ)
UNIX プラットフォームの場合、Rogue Wave® Views ではアプリケーションがファイル記述子を使用して、新しい入力ソースを追加できます。これらの代替入力ソース は、IlvEventLoop メソッド addInputaddOutputremoveInputremoveOutput で登録、登録解除ができます。下位互換性のため、旧関数である IlvRegisterInputIlvRegisterOutputIlvUnRegisterInputIlvUnRegisterOutput がサポートされています。これらは以下と同等です。
IlvEventLoop::getEventLoop()->[add|remove][Input|Output]()
Rogue Wave Views は、これらの入力ソースからデータを読み込みませんが、これらを監視してファイル記述子が入力を受け取ったとき、または書き込み準備ができたときに通知します。このとき、Rogue Wave Views が特定の入力ソースと関連付けられたアプリケーション・コールバック・ルーチンを呼び出します。このコールバック・ルーチンは、ファイル記述子からの読み込み、またはファイル記述子への書き込みを処理します。アプリケーションはまた、ファイル記述子が新しい入力ソースとして Rogue Wave Views に追加される前にファイル記述子を開き、削除後に閉じる役割を担います。
以下は、標準入力から読み込み、標準出力へ 1 行に 1 語ずつコピーする簡単な Rogue Wave Views プログラムの例です。
#include <strstream.h>
#include <string.h>
#include <ilviews/view.h>
 
static void MyInputCallback(int, IlAny) {
char buffer[1048];
cin >> buffer;
cout << buffer << endl;
if (!strcasecmp(buffer, "quit"))
exit(0);
}
 
int main(int, char*[]) {
IlvEventLoop::getEventLoop()->addInput(0 /*stdin*/,
MyInputCallback, 0, 0);
IlvMainLoop();
}

Version 6.0
Copyright © 2015, Rogue Wave Software, Inc. All Rights Reserved.