PlusGアプリケーションの基本クラス. [詳細]
#include <SGApplication.h>
Public メソッド | |
SGApplication () | |
コンストラクタ | |
virtual | ~SGApplication () |
デストラクタ | |
virtual int | AppMain () |
アプリケーションのエントリーポイント | |
virtual void | ApplicationTimer (TimeVal time, unsigned int id) |
アプリケーション タイマー イベント | |
virtual void | DialogTimer (TimeVal time, unsigned int id, SGString name) |
ダイアログ タイマー イベント | |
int | AddEventFd (SGFdData *fdd) |
外部イベント受信処理で待ち受けする FD(ファイルディスクリプタ)を登録します。 | |
void | RemoveEventFd (SGFdData *fdd) |
外部イベント受信処理で待ち受けに登録した ファイルディスクリプタクラスを解除する。 | |
virtual SGFdDataList * | GetFdDataList () |
入出力ディスクリプタリストを取得する | |
void | SetApplicationTimerInterval (unsigned long interval, unsigned int id=100) |
アプリケーション タイマーインターバルを設定する。 | |
void | SetApplicationSingleTimerInterval (unsigned long interval, unsigned int id=200) |
アプリケーション シングル(ワンショット)タイマーインターバルを設定する。 | |
void | SetTimerData (unsigned long interval, unsigned int id, SGString name, int cont) |
int | Initialize (int argc, char **argv) |
アプリケーションを初期化する | |
void | SetDateTime (int year, int mon, int day, int hour=-1, int min=-1, int sec=-1) |
時計を設定する | |
void | ResetTimer () |
タイマー関連を初期化する。 | |
void | WakeUp () |
イベント入力待ち状態から抜け出す |
PlusGアプリケーションの基本クラス.
リソースエディタを使用してアプリケーションを作成した場合、自動的にこのクラスが継承されます。
SGApplication | ( | ) |
コンストラクタ
~SGApplication | ( | ) | [virtual] |
デストラクタ
int AppMain | ( | ) | [virtual] |
アプリケーションのエントリーポイント
アプリケーションの初期化後に呼ばれます。 イベント駆動ループ(タイマー再計算、入出力イベント発生待ち、イベントハンドラ呼び出し)を行っています。
void ApplicationTimer | ( | TimeVal | time, | |
unsigned int | id | |||
) | [virtual] |
アプリケーション タイマー イベント
SGApplication::SetApplicationTimerInterval()で設定したインターバルで発生する タイマーイベントを受けてコールされます。
この関数は拡張専用でブランク(何もしない)仮想関数(Virtual)です。
タイマーを使った処理を行う場合は、この関数をオーバーライドして使用します。
TimeVal { long tv_sec; // 秒 long tv_usec; // マイクロ秒 };
time | イベントが発生した時間 | |
id | タイマー登録時にセットされたID |
PGApplicationで再定義されています。
void DialogTimer | ( | TimeVal | time, | |
unsigned int | id, | |||
SGString | name | |||
) | [virtual] |
ダイアログ タイマー イベント
PGDialog::SetTimerInterval(int time,unsigned int id); PGDialog::SetSingleTimerInterval(int time,unsigned int id); で設定したインターバルで発生するタイマーイベントを受けてコールされます。
この関数は拡張専用でブランク(何もしない)仮想関数(Virtual)です。
タイマーを使った処理を行う場合は、この関数をオーバーライドして使用します。
TimeVal { long tv_sec; // 秒 long tv_usec; // マイクロ秒 };
time | イベントが発生した時間 | |
id | タイマー登録時にセットされたID | |
name | イベントが発生したダイアログ名 |
int AddEventFd | ( | SGFdData * | fdd | ) |
外部イベント受信処理で待ち受けする FD(ファイルディスクリプタ)を登録します。
ライブラリによって待ち受けを行う(selectに待ち受けをさせる)FD の登録を行います。
ここで登録した FD にデータが到達すると登録された関数をコールバックします。
fdd | FDを管理するクラスのポインタ |
void RemoveEventFd | ( | SGFdData * | fdd | ) |
外部イベント受信処理で待ち受けに登録した ファイルディスクリプタクラスを解除する。
外部イベント受信処理で待ち受けに登録した ファイルディスクリプタクラスを解除します。
クローズした FD は登録を解除する必要があります。
fdd | 解除する FD の管理クラス。登録関数 AddEventFd() で指定した fdd を指定します。 |
TRUE(1) | 解除成功 | |
FALSE(0) | 解除失敗 |
SGFdDataList * GetFdDataList | ( | ) | [virtual] |
入出力ディスクリプタリストを取得する
外部イベント受信処理で待ち受けに登録したファイルディスクリプタのリストを取得します。
void SetApplicationTimerInterval | ( | unsigned long | interval, | |
unsigned int | id = 100 | |||
) |
アプリケーション タイマーインターバルを設定する。
タイマーは各ダイアログに1つずつあるダイアログタイマーと、 アプリケーションに1つだけのアプリケーション タイマーとがあります。
用途によって使い分けて下さい。
インターバル(間隔)をミリ秒単位で指定します。
関数コールと同時にタイマーがスタートします。
インターバルに0(ゼロ)を指定するとタイマーが停止します。
設定したインターバル毎に
void SGApplication::ApplicationTimer(TimeVal time)
をコールします。
interval | インターバル(ms単位) |
void SetApplicationSingleTimerInterval | ( | unsigned long | interval, | |
unsigned int | id = 200 | |||
) |
アプリケーション シングル(ワンショット)タイマーインターバルを設定する。
シングルタイマー(ワンショットタイマー)とは1回だけ発生するタイマーです。 インターバル(間隔)をミリ秒単位で指定します。
関数コールと同時にタイマーがスタートし、1回発生すると停止します。
発生前にインターバルに0(ゼロ)を指定するとタイマーが停止します。
設定したインターバル時間後に
void SGApplication::ApplicationSingleTimer(TimeVal time)
をコールします。
interval | インターバル(ms単位) |
void SetTimerData | ( | unsigned long | interval, | |
unsigned int | id, | |||
SGString | name, | |||
int | cont | |||
) |
int Initialize | ( | int | argc, | |
char ** | argv | |||
) |
アプリケーションを初期化する
アプリケーションの初期化を行います。
argc | コマンドライン引数の要素数 | |
argv | コマンドライン引数の配列 |
TRUE | 成功 | |
FALSE | 失敗 |
PGApplicationで再定義されています。
void SetDateTime | ( | int | year, | |
int | mon, | |||
int | day, | |||
int | hour = -1 , |
|||
int | min = -1 , |
|||
int | sec = -1 | |||
) |
時計を設定する
時計を設定します。
時計はこの関数を使用して設定して下さい。
この関数を使用しないでシステム時計を変更する必要がある場合は変更後に必ず
SGApplication::ResetTimer(); をコールしてください。
year | 年 | |
mon | 月 | |
day | 日 | |
hour | 時 | |
min | 分 | |
sec | 秒 |
void ResetTimer | ( | ) |
タイマー関連を初期化する。
タイマー関連の初期化を行います。
時計を変更した時は必ずこの関数をコールする必要があります。
SGApplication::SetDateTime() は内部でこの関数をコールしていますので、リセットする 必要はありません。
それ以外の方法で時計を変更した場合にコールして下さい。
void WakeUp | ( | ) |
イベント入力待ち状態から抜け出す
Select命令を強制終了する(内部制御用)
ライブラリはアイドル時イベント発生待ち状態にあります。
設定を変更し、即座に反映させるにはイベント入力待ち状態から一度抜ける必要があります。
マウスの動きや、タイマー、キーボードなど何らかのイベントが発生すれば、設定は反映されますが、 イベントの発生を待つことなく、即座にイベント待ちを解除する時にこの関数をコールします。