Public メソッド | Static Public メソッド | Protected 変数

クラス PGApplication

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)
 アプリケーションの初期化
PGDialogCreateDialog (const char *dialogname)
 ダイアログの生成と登録
void Authentication (const SGString sessionid)
bool CreateSession (const SGString &sessionid, int timeout)
 セッションの生成と登録
PGDialogListDialogList ()
 ダイアログリストの取得
PGSessionListSessionList ()
 セッションリストの取得
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 変数

PGDialogMakermDialogMaker
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を作成し返します。

戻り値:
id 生成したID
unsigned int MakeSessionTimerId (  ) 

セッション用タイマーIDの作成

セッションが使用するタイマーIDを作成し返します。

戻り値:
id 生成したID
int Initialize ( int  argc,
char **  argv 
)

アプリケーションの初期化

アプリケーションを初期化します。 アプリケーション起動直後に呼ばれます。 SGApplication::Initialize を呼び出します。

引数:
argc コマンドライン引数の要素数
argv コマンドライン引数の配列
戻り値:
SGApplication::InitializePGStationSocket::OpenOnInit のいずれかの関数の戻り値を返します。

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 ソケット受け取り用ポインタ
戻り値:
メッセージIDを返します。

変数

待ち受けソケット

ダイアログリスト

セッションリスト

SGStream mLog [protected]

アプリケーションログ

unsigned int mSocketId [protected]
unsigned int mSessionTimerId [protected]

このクラスの説明は次のファイルから生成されました:

PlusG SMART Solution リファレンスマニュアル Ver 1.0.0