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

クラス PGDialog

イベントハンドラ基本クラス [詳細]

#include <PGDialog.h>

PGDialogのコラボレーション図

すべてのメンバ一覧

Public 型

typedef std::map< SGString,
PGJsonResource
MapList
 セッションIDとダイアログオブジェクトの連想配列
typedef std::map< SGString,
PGJsonResource >::iterator 
MapIterator
 MapList のイテレーター

Public メソッド

 PGDialog ()
 コンストラクタ
virtual ~PGDialog ()
 デストラクタ
virtual void OnInit ()
 初期化時コールバック関数
virtual void OnChangeBefore (PGClientSocket *pgsock, PGJsonCommand *json)
 他宛 CHANGE コマンド受信時コールバック関数
virtual void OnChange (PGClientSocket *pgsock, PGJsonCommand *json)
 自宛 CHANGE コマンド受信時コールバック関数
virtual void OnCondition (PGClientSocket *pgsock, PGJsonCommand *json)
 CONDITION コマンド受信時コールバック関数.
virtual void OnUpdate (PGJsonObject *to, PGJsonObject *from)
 CONDITION コマンド受信時のUpdate処理の通知コールバック関数.
virtual void OnTouch (PGClientSocket *pgsock, PGJsonObject *jobj, const SGString actiontype)
 端末が CONDITION コマンドを送信するトリガになったオブジェクトのコールバック通知関数
virtual void OnTimer (TimeVal time, unsigned int id)
 タイマー時コールバック関数
virtual void OnFinal ()
 解放時コールバック関数
virtual int OnGetfile (PGClientSocket *pgsock, SGString file, SGString date, SGString objectname)
 GETFILEコマンド受信通知.
void Init (const SGString &dialogname, const char *filename)
 オブジェクトの初期化
PGJsonResourceGetResourceUnique (const SGString &sessionid)
 リソースの参照
PGJsonResourceGetResourceShare ()
 リソースの参照
void UpdateDialog (PGClientSocket *pgsock, PGJsonCommand *jo, PGJsonResource *resource)
void UpdateResourceUnique (PGJsonCommand *jo, const SGString &sessionid)
 リソースの更新
void UpdateResourceShare (PGJsonCommand *jo)
 リソースの更新
bool SendUpdateShare (bool allflag=false)
 ダイアログ更新
bool SendUpdateUnique (const SGString &sessionid, bool allflag=false)
 ダイアログ更新
bool LoadJsonShare ()
 リソースの読込み
bool LoadJsonUnique (const SGString &sessionid)
 リソースの読込み
int AddSession (const SGString &sessionid)
 セッションの追加
int RemoveSession (const SGString &sessionid)
 セッションの削除
void SetTimerInterval (int time, unsigned int id)
 タイマーの登録、および開始、停止
void SetSingleTimerInterval (int time, unsigned int id)
 シングルタイマーの登録、および開始、停止

Protected 変数

SGString mDialogName
 カレントダイアログ名
SGString mFileName
 ファイル名
MapList mSessionResourceList
 セッション毎ダイアログのリソースリスト

説明

イベントハンドラ基本クラス

イベントドリブンの枠組みを提供します。 ユーザーの操作により発生したイベントは、ダイアログ毎に振り分けられ、対応するオブジェクトに通知されます。 アプリケーション開発者は、ダイアログ毎に、このクラスを継承した実装クラスを作成して下さい。


型定義

typedef std::map<SGString,PGJsonResource> MapList

セッションIDとダイアログオブジェクトの連想配列

typedef std::map<SGString,PGJsonResource>::iterator MapIterator

MapList のイテレーター


コンストラクタとデストラクタ

PGDialog (  ) 

コンストラクタ

~PGDialog (  )  [virtual]

デストラクタ


関数

void OnInit (  )  [virtual]

初期化時コールバック関数

初期化後に呼ばれます。

void OnChangeBefore ( PGClientSocket pgsock,
PGJsonCommand json 
) [virtual]

他宛 CHANGE コマンド受信時コールバック関数

他ダイアログの CHANGE コマンド受信時に呼ばれます。

引数:
pgsock 受信ソケット
json JSON コマンド
void OnChange ( PGClientSocket pgsock,
PGJsonCommand json 
) [virtual]

自宛 CHANGE コマンド受信時コールバック関数

自ダイアログの CHANGE コマンド受信時に呼ばれます。

引数:
pgsock 受信ソケット
json JSON コマンド
void OnCondition ( PGClientSocket pgsock,
PGJsonCommand json 
) [virtual]

CONDITION コマンド受信時コールバック関数.

CONDITION コマンド受信時に呼ばれます。

引数:
pgsock 受信ソケット
json JSON コマンド
void OnUpdate ( PGJsonObject to,
PGJsonObject from 
) [virtual]

CONDITION コマンド受信時のUpdate処理の通知コールバック関数.

CONDITION コマンド受信時に、コマンドに含まれる更新オブジェクトについて 自身のリソースエリアを更新(自身へマージする)する為に通知コールバックされます。 このコールバック関数の基本クラスは空関数ではありません。実際にオブジェクトの各要素の 更新を行います。通常は基本クラスを呼ぶようにして下さい。
この OnUpdate は次の関数によって呼ばれる UpdateResource 関数から呼ばれます。
void PGDialog::UpdateResourceUnique( PGJsonCommand *jo, const SGString& sessionid)
void PGDialog::UpdateResourceShare( PGJsonCommand *jo )

引数:
to 自身のオブジェクト
from CONDITIONコマンド内の更新オブジェクトの1つ
void OnTouch ( PGClientSocket pgsock,
PGJsonObject jobj,
const SGString  actiontype 
) [virtual]

端末が CONDITION コマンドを送信するトリガになったオブジェクトのコールバック通知関数

端末が CONDITION コマンドを受信するきっかけになったオブジェクトを知ることができます。 押されたボタンに対する処理などを行って下さい。

引数:
pgsock 受信ソケット
jobj トリガとなったオブジェクト(Json)
actiontype トリガとなった要因

Clicked オブジェクトがクリックされた
ItemClicked GRIDで表示された項目がクリックされた
ItemSelected PULLDOWNで表示された項目が選択された
SlideTouched SLIDEBARのつまみが押下された(ドラッグ開始)
SlideMoved SLIDEBARのつまみが変化した(ドラッグ中)
SlideReleased SLIDEBARのつまみが離された(ドラッグ終了)
Timer 指定した時間が経過した
void OnTimer ( TimeVal  time,
unsigned int  id 
) [virtual]

タイマー時コールバック関数

タイマー時に呼び出されます。

void OnFinal (  )  [virtual]

解放時コールバック関数

解放時、開放直前に呼ばれます。

int OnGetfile ( PGClientSocket pgsock,
SGString  file,
SGString  date,
SGString  objectname 
) [virtual]

GETFILEコマンド受信通知.

GETFILEコマンドを受信した時に PGClientSocket::OnGetfile が呼び出されます。
通常、サーバは GETFILE コマンドを受信すると、指定されたファイルを読込み、PUTFILE コマンドとして送信します。
例外として、ファイルがJSONでかつ、そのダイアログのリソースが既に読込まれている場合は、ファイルを読まずに保持している リソースを送信する場合がある為、ダイアログクラスの OnGetfile がコールされます。
※DELETEやADDコマンドにより、ファイルとリソースに差異がある場合がある為。
ダイアログのリソース情報の共有エリアが存在する場合、接続中の全ての端末の画面を同じにする必要があるので、 指定されたJSONファイルを読むのではなく、現在のメモリ上に存在するダイアログ情報を送信します。

パラメータの objectname は端末が PUTFILE コマンドを受信した時に通知するオブジェクト名がセットされています。
PUTFILE コマンドを送信する時、要素名「ObjectName」として付加します。

引数:
file ファイル名
date 端末にあるファイルの日時
objectname 端末が PUTFILE コマンドを受信した時に通知するオブジェクト名
void Init ( const SGString dialogname,
const char *  filename 
)

オブジェクトの初期化

オブジェクトを初期化します。

引数:
dialogname ダイアログ名
filenam ファイル名
PGJsonResource & GetResourceUnique ( const SGString sessionid  ) 

リソースの参照

ダイアログのリソース(個別エリア)を参照します。 個別エリアとは各セッション毎(ユーザ毎)に分かれたエリアです。

引数:
jo コマンド
session セッションID
PGJsonResource & GetResourceShare (  ) 

リソースの参照

ダイアログのリソース(共有エリア)を参照します。

引数:
jo コマンド
void UpdateDialog ( PGClientSocket pgsock,
PGJsonCommand jo,
PGJsonResource resource 
)
void UpdateResourceUnique ( PGJsonCommand jo,
const SGString sessionid 
)

リソースの更新

ダイアログのリソース(個別エリア)を更新します。 個別エリアとは各セッション毎(ユーザ毎)に分かれたエリアです。

引数:
jo コマンド
session セッションID
void UpdateResourceShare ( PGJsonCommand jo  ) 

リソースの更新

ダイアログのリソース(共有エリア)を更新します。

引数:
jo コマンド
bool SendUpdateShare ( bool  allflag = false  ) 

ダイアログ更新

同じダイアログを開いている自分を含む全ユーザにUPDATEを送信 戻り値は、送信の必要なデータがあった場合true、送信する必要が無かった(更新されたデータが無い場合)場合はfalseを返します。 送信できた、できないではない事に注意して下さい。

戻り値:
true:送信の必要なデータがあった false:送信する必要が無かった
bool SendUpdateUnique ( const SGString sessionid,
bool  allflag = false 
)

ダイアログ更新

自分へUPDATEを送信します。 同じダイアログを開いている自分を含む全ユーザにUPDATEを送信する場合は SendUpdateShare() を使用して下さい。

戻り値は、送信の必要なデータがあった場合true、送信する必要が無かった(更新されたデータが無い場合)場合はfalseを返します。 送信できた、できないではない事に注意して下さい。

引数:
pgsock 送信ソケット
戻り値:
true:送信の必要なデータがあった false:送信する必要が無かった
bool LoadJsonShare (  ) 

リソースの読込み

リソース管理メモリの共有エリアへダイアログ リソースをロードします。

戻り値:
常にtrueが返ります
bool LoadJsonUnique ( const SGString sessionid  ) 

リソースの読込み

リソース管理メモリのセッションID毎に用意された個別エリアへダイアログ リソースをロードします。

引数:
sessionid セッションID
戻り値:
常にtrueが返ります
int AddSession ( const SGString sessionid  ) 

セッションの追加

セッションを追加します。(ダイアログ情報は追加しない。)

引数:
sessionid セッションID
戻り値:
残りセッション数を返します。
int RemoveSession ( const SGString sessionid  ) 

セッションの削除

セッションを削除します。

引数:
sessionid セッションID
戻り値:
残りセッション数を返します。
void SetTimerInterval ( int  time,
unsigned int  id 
)

タイマーの登録、および開始、停止

タイマーの登録と解除を行います。

引数:
time インターバル時間(ms)
id 識別用ID(任意の値)
void SetSingleTimerInterval ( int  time,
unsigned int  id 
)

シングルタイマーの登録、および開始、停止

シングルタイマー(ワンショットタイマー)の登録と解除を行います。

引数:
time インターバル時間(ms)
id 識別用ID(任意の値)

変数

SGString mDialogName [protected]

カレントダイアログ名

SGString mFileName [protected]

ファイル名

セッション毎ダイアログのリソースリスト


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

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