このセッション操作は、ステーションがセッションに参加するときに実行されます。 [詳解]
#include <NetZ/src/Core/DOCore/JoinSessionOperation.h>
公開型 | |
enum | ApprovalState { Unknown, Pending, Approved, Denied } |
GetApprovalStateの戻り値の列挙体です [詳解] | |
enum | Type { ChangeMasterStation, ChangeDupSet, FaultRecovery, AddToStore, RemoveFromStore, CallMethod, UpdateDataSet, JoinSession, JoinStation, LeaveStation } |
システムから呼び出される操作の種類を表す列挙体です。 [詳解] | |
公開メンバ関数 | |
void | Approve () |
セッションへの参加要求を承認します。 [詳解] | |
void | Deny (const qResult &rOutcome=qResult(QERROR(DOCore, JoinDenied))) |
セッションへの参加要求を拒否します。 [詳解] | |
JoinSessionOperation::ApprovalState | GetApprovalState () |
現在のセッションに対する参加要求の承認ステータスを取得します。 [詳解] | |
virtual const qChar * | GetClassNameString () const =0 |
この操作オブジェクトのクラス名称を取得します。 [詳解] | |
const Station * | GetJoiningStation () const |
参加しているステーションへのポインタを取得します。 [詳解] | |
virtual Type | GetType () const =0 |
この操作オブジェクトの種類を返します。 [詳解] | |
UserContext | GetUserData () |
ユーザー定義値を取得します。 [詳解] | |
void | PostponeDecision (TimeInterval tiPostponeDelay) |
セッションへの参加要求の決定を保留します。 [詳解] | |
void | SetUserData (UserContext uUserData) |
ユーザー定義値を設定します。 [詳解] | |
静的公開メンバ関数 | |
static SpecificOperation * | DynamicCast (Operation *pOperation) |
ランタイム情報を用いた動的キャストを行います。 [詳解] | |
static void | SetTraceFilter (qBool(*pfTraceFilter)(const Operation *)) |
操作オブジェクトのトレース実行をどのタイミングで実行するかを指定するためのコールバック関数を設定します。 [詳解] | |
このセッション操作は、ステーションがセッションに参加するときに実行されます。
ステーション(Station)がセッション(Session)に参加しようとしたときに、 JoinApprovalコールバック(Session::RegisterJoinApprovalCallback())が呼び出され、 その要求を受け入れるか拒否するかを決定することが出来ます。もしセッションへ受け入れるときは、 JoinSessionOperationが実行され、受け入れを拒否するときは、何の操作も実行されずに、 参加しようとしているステーションに対してセッションへの参加が拒否されたことを通知するメッセージが送られます。 JoinApprovalコールバックとその後に続いて実行されるJoinSessionOperationは接続しようとしている ステーションの接続点のステーションによって呼び出されます。
ステーションがセッションに参加しようとしたとき、以下の流れでイベントが発生します。
GetApprovalStateの戻り値の列挙体です
列挙値 | |
---|---|
Unknown |
承認ステータスは不明な状態です |
Pending |
セッションへの参加を承認するか拒否するかをPostponeDecision によって保留しています。 |
Approved |
セッションへの参加は承認されました。 |
Denied |
セッションへの参加は拒否されました。 |
|
inherited |
システムから呼び出される操作の種類を表す列挙体です。
列挙値 | |
---|---|
ChangeMasterStation |
ChangeMasterStationOperation クラスのインスタンスであるときに、この列挙値になります。 |
ChangeDupSet |
ChangeDupSetOperation クラスのインスタンスであるときに、この列挙値になります。 |
FaultRecovery |
FaultRecoveryOperation クラスのインスタンスであるときに、この列挙値になります。 |
AddToStore |
AddToStoreOperation クラスのインスタンスであるときに、この列挙値になります。 |
RemoveFromStore |
RemoveFromStoreOperation クラスのインスタンスであるときに、この列挙値になります。 |
CallMethod |
CallMethodOperation クラスのインスタンスであるときに、この列挙値になります。 |
UpdateDataSet |
UpdateDataSetOperation クラスのインスタンスであるときに、この列挙値になります。 |
JoinSession |
JoinSessionOperation クラスのインスタンスであるときに、この列挙値になります。 |
JoinStation |
JoinStationOperation クラスのインスタンスであるときに、この列挙値になります。 |
LeaveStation |
LeaveStationOperation クラスのインスタンスであるときに、この列挙値になります。 |
JoinSessionOperation::ApprovalState nn::nex::JoinSessionOperation::GetApprovalState | ( | ) |
現在のセッションに対する参加要求の承認ステータスを取得します。
参加要求の承認ステータスは、これをJoinApprovalコールバックではじめて呼び出したときはUnknownとなります。 そして、PostponeDecision によって保留した場合はPendingとなります。
void nn::nex::JoinSessionOperation::Approve | ( | ) |
void nn::nex::JoinSessionOperation::PostponeDecision | ( | TimeInterval | tiPostponeDelay | ) |
セッションへの参加要求の決定を保留します。
この関数がJoinApprovalコールバックの中で呼び出されたとき、セッションへの参加は遅延されます。 もしも決定を保留する場合、決定のためのコンテキストはOperation::SetUserData() によってアタッチすることができます。
[in] | tiPostponeDelay | 保留するための遅延時間をミリ秒単位で指定します。 |
const Station* nn::nex::JoinSessionOperation::GetJoiningStation | ( | ) | const |
参加しているステーションへのポインタを取得します。
|
pure virtualinherited |
この操作オブジェクトの種類を返します。
|
inherited |
ユーザー定義値を取得します。
ユーザー定義データは、DataSet::OperationBegin または DuplicatedObject::OperationBegin 関数にて設定(SetUserData)し、 DataSet::OperationEnd またはDuplicatedObject::OperationEnd 関数にて この関数を通じて呼び出して使用するために用意されています。
|
inherited |
ユーザー定義値を設定します。
ユーザー定義値は、qUnsignedInt32 かqReal か、 何かしらのオブジェクトへのポインタです。この関数は、 DataSet::OperationBegin またはDuplicatedObject::OperationBegin 関数にて 呼び出し、ユーザー定義値をセットしたあと、 DataSet::OperationEnd またはDuplicatedObject::OperationEnd 関数にて GetUserData 関数を呼び出してユーザー定義値を取り出して利用することが出来ます。
|
pure virtualinherited |
この操作オブジェクトのクラス名称を取得します。
|
staticinherited |
ランタイム情報を用いた動的キャストを行います。
この関数はNetZの動的情報を用いて、C++のdynamic_castに相当する機能を提供します。 Operationクラスとその派生クラスのみに利用することが可能です。 この機能を利用するためにRTTIを有効にする必要はありません。
この関数を呼び出すには、キャストしたい対象のクラスにある静的関数を呼び出します。 たとえば、Operation型のポインタpOperationを、AddToStoreOperation 型の ポインタに動的変換するためには、AddToStoreOperation::DynamicCast 関数を利用します。
[in] | pOperation | 変換元の操作オブジェクトへのポインタを指定します。 |
|
staticinherited |
操作オブジェクトのトレース実行をどのタイミングで実行するかを指定するためのコールバック関数を設定します。
これで指定されたコールバック関数は、システム側から呼びだされ、 TraceLog でトレースすべき操作かどうかを指定します。 指定されたコールバック関数は、トレース対象となっている操作オブジェクトのポインタとともに 呼び出され、qBool値を返します。これがtrueであればトレースを行い、 falseであればトレースを行いません。
TraceLogにトレースフラグをセットしたあとで、 この関数を利用して操作ごとのフィルタコールバックを設定します。 もしなにも設定されていなければ、 CoreDO(システム側で自動的に用意される複製オブジェクト。たとえばStation, Session など。)を 除くすべての複製オブジェクト(つまり、UserDO)に対してトレースが行われるように設定されます。
[in] | pfTraceFilter | トレースフィルタ用のコールバック関数を指定します。 |