CTR NEX API Reference
nn::nex::ChangeMasterStationOperation クラスabstract

このDOOperationは複製マスターのマイグレーションが発生するときに実行されます。 [詳解]

#include <NetZ/src/Core/DOCore/ChangeMasterStationOperation.h>

+ nn::nex::ChangeMasterStationOperation の継承関係図

公開型

enum  Type {
  ChangeMasterStation,
  ChangeDupSet,
  FaultRecovery,
  AddToStore,
  RemoveFromStore,
  CallMethod,
  UpdateDataSet,
  JoinSession,
  JoinStation,
  LeaveStation
}
 システムから呼び出される操作の種類を表す列挙体です。 [詳解]
 

公開メンバ関数

DuplicatedObjectGetAssociatedDO () const
 操作に関連付けられている複製オブジェクトへのポインタを取得します。 [詳解]
 
DOHandle GetAssociatedDOHandle () const
 この操作に関連付けられている複製オブジェクトハンドルを取得します。 [詳解]
 
virtual const qCharGetClassNameString () const =0
 この操作オブジェクトのクラス名称を取得します。 [詳解]
 
DOHandle GetNewMasterStation () const
 この操作が実行された後に、新しくオブジェクトの複製マスターとなるStationの複製オブジェクトハンドルを取得します。 [詳解]
 
DOHandle GetOldMasterStation () const
 この操作が実行される前に、オブジェクトの複製マスターとなっていたStationの複製オブジェクトハンドルを取得します。 [詳解]
 
DOHandle GetOrigin () const
 操作オブジェクトを結果として生じるような呼び出しを行ったステーションへの複製オブジェクトハンドルを取得します。 [詳解]
 
virtual Type GetType () const =0
 この操作オブジェクトの種類を返します。 [詳解]
 
UserContext GetUserData ()
 ユーザー定義値を取得します。 [詳解]
 
qBool IsADemotion () const
 この操作によって複製オブジェクトに対する権限が降格するかどうかを取得します。 [詳解]
 
qBool IsAPromotion () const
 この操作によって複製オブジェクトに対する権限が昇格するかどうかを取得します。 [詳解]
 
qBool IsARoleChange ()
 この操作によって、複製オブジェクトに対する権限に変更が出るかどうかを取得します。 [詳解]
 
void SetUserData (UserContext uUserData)
 ユーザー定義値を設定します。 [詳解]
 

静的公開メンバ関数

static SpecificOperation * DynamicCast (Operation *pOperation)
 ランタイム情報を用いた動的キャストを行います。 [詳解]
 
static void SetTraceFilter (qBool(*pfTraceFilter)(const Operation *))
 操作オブジェクトのトレース実行をどのタイミングで実行するかを指定するためのコールバック関数を設定します。 [詳解]
 

詳解

このDOOperationは複製マスターのマイグレーションが発生するときに実行されます。

マイグレーションとは、複製オブジェクトのコントロール権限がステーション間で移行することを言います。 このクラスで実行される操作は、複製マスターのマイグレーションが発生した結果として発生します。 この操作の結果として、ローカルステーションが保持している複製オブジェクトに対する役割が変化します。 変化は以下のいずれかとなります。

複製オブジェクトに対してマイグレーションが発生するとき、ChangeMasterStationOperationが、 その複製オブジェクトを保持している(複製マスターであるかデュプリカであるかは問わない)、 それぞれのステーションに対して呼び出されます。

ChangeMasterStationOperationが呼び出されたとき、以下の順序に従ってイベントが発生します。

  • SafetyExecutive が実行されてこのマイグレーションが妥当なものであるかどうかが判定されます。もしそうでなければここで終了します。
  • DataSet::OperationBegin 関数がすべてのデータセットに対して呼び出されます。
  • DuplicatedObject::OperationBegin 関数が呼び出されます。
  • オブジェクトが新しいステーションへマイグレーションを行い、複製マスターのStationID (ステーションの複製オブジェクトID) が更新されます。
  • 複製マスターとデュプリカのリスト(複製オブジェクトストア)が更新されます。
  • DataSet::OperationEnd 関数がすべてのデータセットに対して呼び出されます。
  • DuplicatedObject::OperationEnd 関数が呼び出されます。

この操作はシステム状態がロックされているとき(Scheduler::SystemLock)にDuplicatedObject に対して呼び出されません。

列挙型メンバ詳解

enum nn::nex::Operation::Type
inherited

システムから呼び出される操作の種類を表す列挙体です。

参照
GetType
列挙値
ChangeMasterStation 

ChangeMasterStationOperation クラスのインスタンスであるときに、この列挙値になります。

ChangeDupSet 

ChangeDupSetOperation クラスのインスタンスであるときに、この列挙値になります。

FaultRecovery 

FaultRecoveryOperation クラスのインスタンスであるときに、この列挙値になります。

AddToStore 

AddToStoreOperation クラスのインスタンスであるときに、この列挙値になります。

RemoveFromStore 

RemoveFromStoreOperation クラスのインスタンスであるときに、この列挙値になります。

CallMethod 

CallMethodOperation クラスのインスタンスであるときに、この列挙値になります。

UpdateDataSet 

UpdateDataSetOperation クラスのインスタンスであるときに、この列挙値になります。

JoinSession 

JoinSessionOperation クラスのインスタンスであるときに、この列挙値になります。

JoinStation 

JoinStationOperation クラスのインスタンスであるときに、この列挙値になります。

LeaveStation 

LeaveStationOperation クラスのインスタンスであるときに、この列挙値になります。

関数詳解

DOHandle nn::nex::ChangeMasterStationOperation::GetOldMasterStation ( ) const

この操作が実行される前に、オブジェクトの複製マスターとなっていたStationの複製オブジェクトハンドルを取得します。

操作対象となっている複製オブジェクトのマスターとなっているStationの 複製オブジェクトハンドル(DOHandle)を取得します。 セッションに存在するオブジェクトはすべて複製オブジェクトハンドルによって一意に表すことができ、 Net-Zでは参加者自体もStation として複製オブジェクト扱いとなります。

戻り値
この操作が実行される前に、複製マスターとなっていたStationの複製オブジェクトハンドルが返ります。
参照
GetNewMasterStation, Station::GetLocalStation
DOHandle nn::nex::ChangeMasterStationOperation::GetNewMasterStation ( ) const

この操作が実行された後に、新しくオブジェクトの複製マスターとなるStationの複製オブジェクトハンドルを取得します。

操作対象となっている複製オブジェクトの新しいマスターとなるStationの 複製オブジェクトハンドル(DOHandle)を取得します。 セッションに存在するオブジェクトはすべて複製オブジェクトハンドルによって一意に表すことができ、 Net-Zでは参加者自体もStation として複製オブジェクト扱いとなります。

戻り値
この操作が実行された後に、新しくオブジェクトの複製マスターとなるStationの複製オブジェクトハンドルが返ります。
参照
GetOldMasterStation, Station::GetLocalStation
qBool nn::nex::ChangeMasterStationOperation::IsAPromotion ( ) const

この操作によって複製オブジェクトに対する権限が昇格するかどうかを取得します。

権限の昇格とは、デュプリカ(コントロール権限がない状態、ただのオブジェクトコピー)から、 複製マスター(コントロール権がある状態、コピー元)になることを言います。 複製オブジェクトのマイグレーション(コントロール権限のステーション間移動)が発生するとき、 複製オブジェクトに対する役割は、権限が昇格する、権限が降格する、デュプリカのままである (別のステーションから別のステーションへの権限移動)の、 いずれかひとつとの状態となります。


戻り値一覧:

true 実行したステーションにとって、この操作実行時に複製オブジェクトが デュプリカから複製マスターに権限昇格するときに返ります。

false 実行したステーションにとって、この操作実行時に複製オブジェクトが 複製マスターからデュプリカになるか、あるいはデュプリカのままであるかのときに返ります。

参照
IsADemotion, IsARoleChange, DuplicatedObject::IsADuplicationMaster, DuplicatedObject::IsADuplica
qBool nn::nex::ChangeMasterStationOperation::IsADemotion ( ) const

この操作によって複製オブジェクトに対する権限が降格するかどうかを取得します。

権限の降格とは、複製マスター(コントロール権がある状態、コピー元)から、 デュプリカ(コントロール権がない状態、ただのオブジェクトコピー)になることを言います。 複製オブジェクトのマイグレーション(コントロール権限のステーション間移動)が発生するとき、 複製オブジェクトに対する役割は、権限が昇格する、権限が降格する、デュプリカのままである (別のステーションから別のステーションへの権限移動)の、 いずれかひとつとの状態となります。


戻り値一覧:
true 実行したステーションにとって、この操作実行時に複製オブジェクトが 複製マスターからデュプリカに、権限降格するときに返ります。


戻り値一覧:
false 実行したステーションにとって、この操作実行時に複製オブジェクトが デュプリカから複製マスターになるか、デュプリカのままであるときに返ります。
参照
IsAPromotion, IsARoleChange, DuplicatedObject::IsADuplicationMaster, DuplicatedObject::IsADuplica
qBool nn::nex::ChangeMasterStationOperation::IsARoleChange ( )

この操作によって、複製オブジェクトに対する権限に変更が出るかどうかを取得します。

権限の変化とは、昇格(IsAPromotion 関数を参照:デュプリカから複製マスターになること)または 降格(IsADemotion 関数を参照:複製マスターからデュプリカになること)が発生することをいいます。 複製オブジェクトのマイグレーション(コントロール権限のステーション間移動)が発生するとき、 複製オブジェクトに対する役割は、権限が昇格する、権限が降格する、デュプリカのままである (別のステーションから別のステーションへの権限移動)の、 いずれかひとつとの状態となります。


戻り値一覧:

true 権限の変化が発生するときに返ります。

false 権限の変化が発生しないときに返ります。 これは、このマイグレーションが自分に関係のないところで発生することを意味します。 複製オブジェクトはデュプリカの状態から変化しません。

参照
IsAPromotion, IsADemotion, DuplicatedObject::IsADuplicationMaster, DuplicatedObject::IsADuplica
DOHandle nn::nex::DOOperation::GetAssociatedDOHandle ( ) const
inherited

この操作に関連付けられている複製オブジェクトハンドルを取得します。

参照
GetAssociatedDO, DOHandle, DuplicatedObject
戻り値
この操作に関連付けられている複製オブジェクトハンドル(DOHandle ) が返ります。
DOHandle nn::nex::DOOperation::GetOrigin ( ) const
inherited

操作オブジェクトを結果として生じるような呼び出しを行ったステーションへの複製オブジェクトハンドルを取得します。

たとえば、ステーションがDuplicatedObject::FetchDuplica 関数を 呼び出してChangeDupSetOperation 操作を誘発させた場合、 この関数は、DuplicatedObject::FetchDuplica 関数を呼び出した ステーションのDOHandleが返ります。

この関数の典型的な利用例は、SafetyExecutive にて、 そのステーションが操作を実際に行うための権利があるかどうかを判定するために 使用することです。

戻り値
操作オブジェクトを生じさせるような呼び出しを行ったステーションへの複製オブジェクトハンドルが返ります。
参照
SafetyExecutive
DuplicatedObject* nn::nex::DOOperation::GetAssociatedDO ( ) const
inherited

操作に関連付けられている複製オブジェクトへのポインタを取得します。

戻り値
操作に関連付けられている複製オブジェクトへのポインタ(DuplicatedObject)が返ります。
参照
GetAssociatedDOHandle, DuplicatedObject
virtual Type nn::nex::Operation::GetType ( ) const
pure virtualinherited

この操作オブジェクトの種類を返します。

戻り値
この操作オブジェクトインスタンスの種類が返ります。
UserContext nn::nex::Operation::GetUserData ( )
inherited

ユーザー定義値を取得します。

ユーザー定義データは、DataSet::OperationBegin または DuplicatedObject::OperationBegin 関数にて設定(SetUserData)し、 DataSet::OperationEnd またはDuplicatedObject::OperationEnd 関数にて この関数を通じて呼び出して使用するために用意されています。

戻り値
SetUserData でこの操作に設定されたユーザー定義値が返ります。
参照
SetUserData
void nn::nex::Operation::SetUserData ( UserContext  uUserData)
inherited

ユーザー定義値を設定します。

ユーザー定義値は、qUnsignedInt32qReal か、 何かしらのオブジェクトへのポインタです。この関数は、 DataSet::OperationBegin またはDuplicatedObject::OperationBegin 関数にて 呼び出し、ユーザー定義値をセットしたあと、 DataSet::OperationEnd またはDuplicatedObject::OperationEnd 関数にて GetUserData 関数を呼び出してユーザー定義値を取り出して利用することが出来ます。

virtual const qChar* nn::nex::Operation::GetClassNameString ( ) const
pure virtualinherited

この操作オブジェクトのクラス名称を取得します。

戻り値
クラス名称へのポインタが返ります。
static SpecificOperation* nn::nex::Operation::DynamicCast ( Operation pOperation)
staticinherited

ランタイム情報を用いた動的キャストを行います。

この関数はNetZの動的情報を用いて、C++のdynamic_castに相当する機能を提供します。 Operationクラスとその派生クラスのみに利用することが可能です。 この機能を利用するためにRTTIを有効にする必要はありません。

この関数を呼び出すには、キャストしたい対象のクラスにある静的関数を呼び出します。 たとえば、Operation型のポインタpOperationを、AddToStoreOperation 型の ポインタに動的変換するためには、AddToStoreOperation::DynamicCast 関数を利用します。

引数
[in]pOperation変換元の操作オブジェクトへのポインタを指定します。
戻り値
動的キャストされたポインタが返ります。
戻り値一覧:
NULL 指定されたpOperationがNULLである場合、 あるいは、pOperationがキャスト対象のクラスインスタンスではなかったときに返ります。
static void nn::nex::Operation::SetTraceFilter ( qBool(*)(const Operation *)  pfTraceFilter)
staticinherited

操作オブジェクトのトレース実行をどのタイミングで実行するかを指定するためのコールバック関数を設定します。

これで指定されたコールバック関数は、システム側から呼びだされ、 TraceLog でトレースすべき操作かどうかを指定します。 指定されたコールバック関数は、トレース対象となっている操作オブジェクトのポインタとともに 呼び出され、qBool値を返します。これがtrueであればトレースを行い、 falseであればトレースを行いません。

TraceLogにトレースフラグをセットしたあとで、 この関数を利用して操作ごとのフィルタコールバックを設定します。 もしなにも設定されていなければ、 CoreDO(システム側で自動的に用意される複製オブジェクト。たとえばStation, Session など。)を 除くすべての複製オブジェクト(つまり、UserDO)に対してトレースが行われるように設定されます。

引数
[in]pfTraceFilterトレースフィルタ用のコールバック関数を指定します。
参照
DuplicatedObject::IsACoreDO, DuplicatedObject::IsAUserDO