PlusG Smart Solution アプリケーション基本クラス. [詳細]
#include <PGApplication.h>
PGApplicationに対する継承グラフ
PGApplicationのコラボレーション図Public メソッド | |
| PGApplication (PGDialogMaker &dm) | |
| コンストラクタ | |
| ~PGApplication () | |
| デストラクタ | |
| virtual int | OnInit ()=0 |
| 初期化時コールバック関数 | |
| virtual bool | OnAuth (const SGString &name, const SGString &pass, PGClientSocket *pgsock)=0 |
| 認証時コールバック関数 | |
| virtual void | ApplicationTimer (TimeVal time, unsigned int id) |
| アプリケーション タイマー イベント | |
| virtual bool | OnAuthCheck (const SGString &sessionid, PGClientSocket *pgsock) |
| 認証確認 コールバック関数 | |
| virtual void | OnStart (PGClientSocket *pgsock, SGString &type, int width, int height) |
| クライアントアプリケーションの起動通知 | |
| virtual void | OnTimer (TimeVal time, unsigned int id) |
| アプリケーション タイマー イベント | |
| unsigned int | MakeSocketId () |
| ソケット用IDの作成 | |
| unsigned int | MakeSessionTimerId () |
| セッション用タイマーIDの作成 | |
| int | Initialize (int argc, char **argv) |
| アプリケーションの初期化 | |
| PGDialog * | CreateDialog (const char *dialogname) |
| ダイアログの生成と登録 | |
| void | Authentication (const SGString sessionid) |
| bool | CreateSession (const SGString &sessionid, int timeout) |
| セッションの生成と登録 | |
| PGDialogList * | DialogList () |
| ダイアログリストの取得 | |
| PGSessionList * | SessionList () |
| セッションリストの取得 | |
| void | SendDataList (const SGString &sessionid, const SGString &dialogname, const SGString &json) |
| JSON 文字列送信. | |
| void | RemoveSocketBySession (const SGString &sessionid) |
| セッションIDの削除 | |
| int | GetSocket (unsigned int id, PGClientSocket **socket) |
| ソケットの取得 | |
Static Public メソッド | |
| static char * | GetModuleDirectory () |
| 実行ファイルのディレクトリを取得 | |
Protected 変数 | |
| PGDialogMaker & | mDialogMaker |
| PGStationSocket | mStationSocket |
| 待ち受けソケット | |
| PGDialogList | mDialogList |
| ダイアログリスト | |
| PGSessionList | mSessionList |
| セッションリスト | |
| SGStream | mLog |
| アプリケーションログ | |
| unsigned int | mSocketId |
| unsigned int | mSessionTimerId |
PlusG Smart Solution アプリケーション基本クラス.
PlusG Smart Solution アプリケーションの基幹となるクラスです。 アプリケーションを開発するには、このクラスを継承した実装クラスを作って下さい。
| PGApplication | ( | PGDialogMaker & | dm | ) |
コンストラクタ
| ~PGApplication | ( | ) |
デストラクタ
| virtual int OnInit | ( | ) | [pure virtual] |
初期化時コールバック関数
アプリケーション初期化後に呼ばれます。
| virtual bool OnAuth | ( | const SGString & | name, | |
| const SGString & | pass, | |||
| PGClientSocket * | pgsock | |||
| ) | [pure virtual] |
認証時コールバック関数
ユーザー認証時に呼ばれます。
| name | ユーザー名 | |
| pass | パスワード | |
| pgsock | ソケット |
| void ApplicationTimer | ( | TimeVal | time, | |
| unsigned int | id | |||
| ) | [virtual] |
アプリケーション タイマー イベント
SGApplication::SetApplicationTimerInterval()で設定したインターバルで発生する タイマーイベントを受けてコールされます。
タイマーを使った処理を行う場合は、OnTimer 関数をオーバーライドして使用して下さい。
TimeVal {
long tv_sec; // 秒
long tv_usec; // マイクロ秒
};
| time | イベントが発生した時間 | |
| id | タイマー登録時にセットされたID |
SGApplicationを再定義しています。
| bool OnAuthCheck | ( | const SGString & | sessionid, | |
| PGClientSocket * | pgsock | |||
| ) | [virtual] |
認証確認 コールバック関数
未認証ソケット、または、認証を失ったソケットから、セッションID が付いているコマンドを受信するとコールバックされます。
ここでは、受信した「セッションID」がセッションリストに存在すれば認証とする簡易認証が実行されます。
より高度な認証を行う場合は、この関数をOverrideして下さい。
| sessionid | セッションID | |
| pgsock | ソケット |
| true | 認証する | |
| false | 認証しない(ソケットがクローズされます) |
| void OnStart | ( | PGClientSocket * | pgsock, | |
| SGString & | type, | |||
| int | width, | |||
| int | height | |||
| ) | [virtual] |
クライアントアプリケーションの起動通知
クライアントアプリケーションが起動時に発行する HELLO コマンドを受信した時にコールバックされます。
この関数はコールバックを目的とした仮想関数ですが、「Top.json」を開くという処理が含まれています。
起動時に何か処理を追加する場合は、この関数を Override します。その時、起動したデバイスに Top.json ダイアログ を開かせる場合は、この基本クラス PGApplication::OnStart(pgsock,type,width,height) をコールします。
初期画面を Top.json ダイアログ以外のファイルを指定したい場合は、ここで OPEN コマンドなどを発行し、基本クラスの呼び出しを 停止してください。
この時発行するコマンドには必ず SessionId をつけて下さい。
また、コマンドの発行は必須です。何も必要無い場合は KEEPALIVE にセッションIDを付加して送信して下さい。
OPEN コマンド送信サンプル
PGJsonCommand co("OPEN");
co.SetValue( "File", "Dialog.json" );
co.SetValue( "FileSource", "STATION" );
co.SetValue( "SessionId", pgsock->mSessionId );
pgsock->SendData( co.GetJson() );
KEEPALIVE コマンド送信サンプル
PGJsonCommand co("KEEPALIVE");
co.SetValue( "SessionId", pgsock->mSessionId );
pgsock->SendData( co.GetJson() );
| pgsock | ソケット | |
| デバイス | タイプ MOBILE または PAD が返ります | |
| デバイス | 画面ドット数 幅 | |
| デバイス | 画面ドット数 高さ |
| void OnTimer | ( | TimeVal | time, | |
| unsigned int | id | |||
| ) | [virtual] |
アプリケーション タイマー イベント
SGApplication::SetApplicationTimerInterval()で設定したインターバルで発生する タイマーイベントを受けてコールされます。
この関数は拡張専用でブランク(何もしない)仮想関数(Virtual)です。
タイマーを使った処理を行う場合は、この関数をオーバーライドして使用します。
TimeVal {
long tv_sec; // 秒
long tv_usec; // マイクロ秒
};
| time | イベントが発生した時間 | |
| id | タイマー登録時にセットされたID |
| unsigned int MakeSocketId | ( | ) |
ソケット用IDの作成
ソケットに使用するIDを作成し返します。
| unsigned int MakeSessionTimerId | ( | ) |
セッション用タイマーIDの作成
セッションが使用するタイマーIDを作成し返します。
| int Initialize | ( | int | argc, | |
| char ** | argv | |||
| ) |
アプリケーションの初期化
アプリケーションを初期化します。 アプリケーション起動直後に呼ばれます。 SGApplication::Initialize を呼び出します。
| argc | コマンドライン引数の要素数 | |
| argv | コマンドライン引数の配列 |
SGApplicationを再定義しています。
| PGDialog * CreateDialog | ( | const char * | dialogname | ) |
ダイアログの生成と登録
ダイアログを生成し、ダイアログ管理リストへ登録します。
| dialogname | 生成するダイアログの名前 |
| void Authentication | ( | const SGString | sessionid | ) |
| bool CreateSession | ( | const SGString & | sessionid, | |
| int | timeout | |||
| ) |
セッションの生成と登録
セッションを生成し、セッション管理リストへ登録します。
| sessionid | 新規に生成するセッションID | |
| timeout | 有効期限 |
| true | 成功 | |
| false | 失敗 |
| PGDialogList * DialogList | ( | ) |
ダイアログリストの取得
アプリケーションが保持しているダイアログのリストを取得します。
| PGSessionList * SessionList | ( | ) |
セッションリストの取得
アプリケーションが保持しているセッションのリストを取得します。
| char * GetModuleDirectory | ( | ) | [static] |
実行ファイルのディレクトリを取得
アプリケーションが保持しているソケットのリストを取得します。
| void SendDataList | ( | const SGString & | sessionid, | |
| const SGString & | dialogname, | |||
| const SGString & | json | |||
| ) |
JSON 文字列送信.
sessionid で指定したセッションが dialogname で指定したダイアログを開いている場合は、引数 json で指定した文字列を送信します。
共有ダイアログの場合は、sessionid に "SessionIdShared" を指定して下さい。全ての接続が対象となります。
| sessionid | セッションID("SessionIdShared"で共有ダイアログ対象となります) | |
| dialogname | ダイアログ名 | |
| json | JSON 文字列 |
| void RemoveSocketBySession | ( | const SGString & | sessionid | ) |
セッションIDの削除
ソケットが記憶しているセッションIDをクリアします。 クローズする?
| sessionid | セッションID |
| int GetSocket | ( | unsigned int | id, | |
| PGClientSocket ** | socket | |||
| ) |
ソケットの取得
指定されたIDを持つソケットをリストからサーチします。
| id | ID | |
| socket | ソケット受け取り用ポインタ |
PGDialogMaker& mDialogMaker [protected] |
PGStationSocket mStationSocket [protected] |
待ち受けソケット
PGDialogList mDialogList [protected] |
ダイアログリスト
PGSessionList mSessionList [protected] |
セッションリスト
unsigned int mSocketId [protected] |
unsigned int mSessionTimerId [protected] |