CTR NEX API Reference
nn::nex::Station クラス

ステーション(セッションに参加しているマシン)の情報をあらわすクラスです。 [詳解]

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

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

公開型

enum  ProcessType {
  UnknownProcess =0,
  ClientProcess =1,
  ServerProcess =2,
  ToolProcess =4
}
 このステーションのプロセスの種類を表す列挙体です。 [詳解]
 
typedef SelectionIteratorTemplate< StationSelectionIterator
 Stationオブジェクトを列挙するためのイテレータです。
 
enum  State {
  Unknown = 0,
  JoiningSession = 1,
  CreatingSession = 2,
  Participating = 3,
  Leaving = 4,
  LeavingOnFault = 5
}
 ステーションの現在の状態を示す列挙体です。 [詳解]
 

公開メンバ関数

 Station ()
 このコンストラクタはアプリケーション側から直接呼び出さないでください。 セッションに参加したタイミングに、Net-Zによって自動的に作成されます。
 
virtual ~Station ()
 このデストラクタはアプリケーション側から直接呼び出さないでください。 セッションを離脱したときなどにNet-Zによって自動的に破棄されます。
 
virtual qBool ApproveEmigration (qUnsignedInt32 uiReason)
 複製オブジェクトがマイグレーションを行うかどうかを返します。 [詳解]
 
virtual qBool ApproveFaultRecovery ()
 複製オブジェクトに障害回復機能をつけるかどうかを返します。 [詳解]
 
qResult FlushBundle (qBool bFlushTransportBundles=true)
 現在このステーションにメッセージバンドルとしてためられているをメッセージをすべて送信します。 [詳解]
 
qUnsignedInt32 GetApplicationVersion () const
 このステーションのアプリケーションバージョンを取得します。 [詳解]
 
StationID GetConnectionID () const
 通信時にステーション(マシン)を指定するためのIDを取得します。 この関数の使用は非推奨です。GetStationID() を使用してください。 [詳解]
 
EndPointInfoInterfaceGetEndPointInfoInterface () const
 ステーションの EndPointInfoInterface を取得します。 [詳解]
 
const StringGetIdentificationToken () const
 このステーションの識別トークンを取得します。 [詳解]
 
qUnsignedInt8 GetLanguageCode () const
 このステーションのプレーヤー名の言語コードを取得します。 [詳解]
 
size_t GetNumOfRoutingConnections () const
 このステーションが持つマスター経由通信の数を取得します。 [詳解]
 
DOHandle GetObserver () const
 ステーションのオブザーバーを取得します。推測航法で利用します。 [詳解]
 
const StringGetPlayerName () const
 このステーションのプレーヤー名を取得します。 [詳解]
 
PrincipalID GetPrincipalID () const
 このステーションのプリンシパル ID を取得します。 [詳解]
 
qUnsignedInt32 GetProcessType () const
 このステーションのプロセス種別を取得します。 [詳解]
 
TimeInterval GetRTT ()
 ローカルステーションと相手ステーションとの間のRTTの現在値を取得します。 [詳解]
 
TimeInterval GetRTTAverage ()
 ローカルステーションと相手ステーションとの間のRTTの平均値を取得します。 [詳解]
 
State GetState () const
 ステーションの現在のステータスを取得します。 [詳解]
 
StationID GetStationID () const
 セッションの中でステーション(マシン)を特定するためのIDを取得します。 StationIDは、マスター交代後の新規ステーションにアサインされる値が飛ぶ可能性があり、連続値である保証はありません。P2P参加ステーション内でユニークであることは保証されます。 [詳解]
 
const qCharGetStationURL (qInt iIndex) const
 このステーションのURLを文字列にしたものを取得します。 [詳解]
 
void GetStationURLs (qList< StationURL > *plstURLs) const
 このステーションの、有効な StationURL のリストを取得します。 [詳解]
 
qBool IsAPeer () const
 このステーションがセッションに参加しているリモート接続相手であるかどうかを取得します。 [詳解]
 
qBool IsConnected () const
 実行しているマシンとこのステーションが接続を持っているかどうかを取得します。
[詳解]
 
qBool IsLocal () const
 ステーションのインスタンスが、このマシン自身を表すかどうかを取得します。 [詳解]
 
qBool KickStation ()
 指定されたステーションをセッションから離脱させます。 指定されたステーションは、周りのステーションからフォルト扱いで切断されて、 Session::CheckGameIsOver() がtrueとなります。 [詳解]
 
virtual void OperationBegin (DOOperation *pOperation)
 複製オブジェクトシステム操作が開始されるたびに呼び出されます。 [詳解]
 
virtual void OperationEnd (DOOperation *pOperation)
 複製オブジェクトシステム操作が終了されるたびに呼び出されます。 [詳解]
 
qBool SignalFault (qBool bProcessNow=true)
 指定されたステーションを強制切断します。デバッグ用機能です。 [詳解]
 
virtual void Trace (qUnsignedInt64 uiTraceFlags=TRACE_ALWAYS) const
 この複製オブジェクトの状態をトレースします(デバッグ用)。 [詳解]
 

静的公開メンバ関数

static DOHandle ConvertConnectionIDToDOHandle (StationID stationId)
 StationIDから StationDOHandle に変換します。 本関数の使用は非推奨です。ConvertStationIDToDOHandle() を使用してください。 [詳解]
 
static DOID ConvertDOHandleToDOID (DOHandle hStation)
 任意の StationDOHandle を指定して、 DOIDに変換します。 [詳解]
 
static StationID ConvertDOHandleToID (DOHandle hStation)
 任意の StationDOHandle を指定して、 P2P セッション上でユニークな ID(StationID)に変換します。 本関数の使用は非推奨です。 ConvertDOHandleToStationID() を使用してください。 [詳解]
 
static StationID ConvertDOHandleToStationID (DOHandle hStation)
 任意の StationDOHandle を指定して、 P2P セッション上でユニークな ID(StationID)に変換します。 [詳解]
 
static DOHandle ConvertStationIDToDOHandle (StationID stationId)
 StationIDから StationDOHandle に変換します。 [詳解]
 
static void FlushAllBundles (qBool bFlushTransportBundles=true)
 すべてのメッセージバンドルに登録されているメッセージを送信します。 [詳解]
 
static size_t GetApprovedStationNum ()
 セッションへの参加が承認されたステーションの数を返します。 セッションの参加の承認・拒否は、Session::RegisterJoinApprovalCallback に登録したコールバックで行うことができます。 セッションマスターのステーションは常に承認済みとしてカウントされます。 [詳解]
 
static StationGetLocalInstance ()
 現在実行しているマシンを表すステーションの複製オブジェクトへのポインタを取得します。 [詳解]
 
static DOHandle GetLocalObserver ()
 ローカルステーションのオブザーバーを取得します。推測航法で利用します。 [詳解]
 
static DOHandle GetLocalStation ()
 現在実行しているマシンを表すステーションの複製オブジェクトハンドルを取得します。 [詳解]
 
static qBool KickMe ()
 ローカルステーションをセッションから離脱させます。 ローカルステーションは、周りのステーションからフォルト扱いで切断されて、 Session::CheckGameIsOver() がtrueとなります。 スレッドセーフモードのときはスレッドセーフです。 [詳解]
 
static qBool RegisterObserver (DOHandle idObserver)
 複製オブジェクトをステーションのオブザーバに登録します。推測航法で利用します。 [詳解]
 
static void RegisterOperationBeginCallback (void(*pfOperationBegin)(StationOperation *pOperation))
 StationOperationが実行されるたびに呼び出されるコールバックを登録します。 [詳解]
 
static void RegisterOperationEndCallback (void(*pfOperationEnd)(StationOperation *pOperation))
 StationOperationが実行されるたびに呼び出されるコールバックを登録します。 [詳解]
 
static void SetLocalApplicationVersion (qUnsignedInt32 applicationVersion)
 ローカルステーションのアプリケーションバージョンを設定します。 アプリケーション独自の任意の数値を設定できます。 この関数で設定した値は他のステーションから GetApplicationVersion で参照する事ができます。 この関数は Net-Z インスタンスを作成した後に呼び出してください。 [詳解]
 
static void SetLocalIdentificationToken (const String &strIdentificationToken)
 ローカルステーションの識別トークンを設定します。 この関数で設定した値は他のステーションから GetIdentificationToken で参照する事ができます。 この関数は Net-Z インスタンスを作成した後に呼び出してください。 [詳解]
 
static void SetLocalPlayerName (const String &playerName, qUnsignedInt8 languageCode)
 ローカルステーションのプレーヤー名と言語コードを設定します。 [詳解]
 
static qBool UnregisterObserver ()
 ステーションのオブザーバ登録を取り消します。推測航法で利用します。 [詳解]
 

静的公開変数類

static const TimeInterval STATION_UNKNOWN_RTT =-1
 無効なRTTを表します。
 

非公開型

typedef RefTemplate< DuplicatedObjectRef
 複製オブジェクトへの安全な参照を行うためのtypdef
 

非公開メンバ関数

qBool AttemptEmigration (DOHandle hNewLocation)
 この複製オブジェクトを指定されたステーションに対してエミグレーションさせます。 [詳解]
 
virtual qReal ComputeDistance (DuplicatedObject *pOtherObject)
 推測航法において、距離ベースの推定エラーを計算する際の距離計算を行います。 [詳解]
 
qBool CreateDuplica (DOHandle hNewDuplicaStation)
 この複製オブジェクトのデュプリカを作成します。 [詳解]
 
qBool DeleteMainRef ()
 複製オブジェクトの主参照を削除するように指示します。 [詳解]
 
qBool Emigrate (MigrationContext *pContext, DOHandle hTargetStation)
 この複製オブジェクトを指定されたステーションに対してエミグレーションさせます。 [詳解]
 
const qCharGetClassNameString () const
 複製オブジェクトのクラス名を文字列として取得します。 [詳解]
 
const qCharGetDatasetNameString (qByte byDatasetIndex) const
 この複製オブジェクトに関連付けられているデータセットの名称を取得します。 [詳解]
 
DOClassID GetDOClassID () const
 この複製オブジェクトの複製オブジェクトクラスIDを取得します。 [詳解]
 
DOHandle GetHandle () const
 この複製オブジェクトの複製オブジェクトハンドルを取得します。 [詳解]
 
qUnsignedInt32 GetHandleValue () const
 この複製オブジェクトのインスタンスを表すqUnsignedInt32 型の値を取得します。 [詳解]
 
StationID GetMasterID () const
 この複製オブジェクトのマスターのステーションのStationIDを取得します。 [詳解]
 
DOHandle GetMasterStation () const
 この複製オブジェクトの複製マスターとなっているStation オブジェクトの複製オブジェクトハンドルを取得します。 [詳解]
 
qBool HasAuthority () const
 この複製オブジェクトが権限を持っているかどうかを取得します。 [詳解]
 
virtual void InitDO ()
 複製オブジェクトが初期化されたときにシステム側から呼び出されます。 [詳解]
 
qBool IsA (DOClassID idDOCID) const
 この複製オブジェクトインスタンスが指定された複製オブジェクトクラスのインスタンスであるかを調べます。 [詳解]
 
virtual qBool IsACoreDO () const
 この複製オブジェクトがCoreDOであるかどうかを取得します。 [詳解]
 
qBool IsADuplica () const
 この複製オブジェクトがデュプリカであるか、そうでないかを取得します。 [詳解]
 
qBool IsADuplicationMaster () const
 この複製オブジェクトが複製マスターであるか、そうでないかを取得します。 [詳解]
 
qBool IsAKindOf (DOClassID idDOCID) const
 この複製オブジェクトインスタンスが指定された複製オブジェクトクラス、またはその派生関係であるかどうかを調べます。 [詳解]
 
qBool IsAUserDO () const
 この複製オブジェクトがUserDOであるかどうかを取得します。 [詳解]
 
qBool IsAWellKnownDO () const
 この複製オブジェクトが既知オブジェクトクラスのインスタンスであるかどうかを取得します。 [詳解]
 
qBool IsGlobal () const
 このインスタンスがグローバル複製オブジェクトであるかどうかを取得します。 [詳解]
 
qBool IsPublished () const
 この関数が発行されたかどうかを取得します。 [詳解]
 
qBool MainRefIsDeleted () const
 DeleteMainRef 関数がこのオブジェクトに対して呼び出されたかどうかを取得します。 [詳解]
 
qBool MigrationInProgress () const
 この複製オブジェクトがマイグレーションを行っている最中かどうかを取得します。 [詳解]
 
qBool Publish (qUnsignedInt32 uiTimeout=DEFAULT_PUBLISH_TIMEOUT)
 この複製オブジェクトのインスタンスをセッションにいるステーションに発行します。 [詳解]
 
qBool Refresh ()
 デュプリカのデータセットの情報をバッファから転送します。 [詳解]
 
qBool Refresh (const Time &tRefreshTime)
 デュプリカのデータセットの情報をバッファから転送します。 [詳解]
 
qBool Refresh (DataSet &refDataset)
 デュプリカのデータセットの情報をバッファから転送します。 [詳解]
 
qBool Refresh (DataSet &refDataset, const Time &tRefreshTime)
 デュプリカのデータセットの情報をバッファから転送します。 [詳解]
 
qResult Update ()
 すべてのデータセットの内容が更新されたことをセッションに存在するデュプリカに通知します。 [詳解]
 
qResult Update (const Time &tUpdateTime)
 すべてのデータセットの内容が更新されたことをセッションに存在するデュプリカに通知します。 [詳解]
 
qResult Update (DataSet &refDataset)
 指定されたデータセットの内容が更新されたことをセッションに存在するデュプリカに通知します。 [詳解]
 
qResult Update (DataSet &refDataset, const Time &tUpdateTime)
 指定されたデータセットの内容が更新されたことをセッションに存在するデュプリカに通知します。 [詳解]
 

静的非公開メンバ関数

static DuplicatedObjectCreate (qUnsignedInt32 uiTimeout==DEFAULT_CREATE_TIMEOUT)
 複製オブジェクトのローカルインスタンスを作成します。 [詳解]
 
static DuplicatedObjectCreate (DOID idUserDefinedID)
 複製オブジェクトのローカルインスタンスを作成します。 [詳解]
 
static DuplicatedObjectCreate (DOClassID idDOClass, qUnsignedInt32 uiTimeout=WAIT_INFINITE_TIMEOUT)
 複製オブジェクトのローカルインスタンスを作成します。 [詳解]
 
static DuplicatedObjectCreate (DOClassID idDOClass, DOID idUserDefinedID)
 複製オブジェクトのローカルインスタンスを作成します。 [詳解]
 
static DuplicatedObjectCreate (const DOHandle &dohHandle)
 複製オブジェクトのローカルインスタンスを作成します。 [詳解]
 
static DuplicatedObjectCreateWellKnown (WKHandle &hWK)
 指定された既知オブジェクトを作成します。 [詳解]
 
static DuplicatedObjectDynamicCast (DuplicatedObject *pDO)
 複製オブジェクトへのポインタの動的キャストを行います。 [詳解]
 
static qBool FetchDuplica (FetchContext *pContext, DOHandle hFetchedObject)
 複製オブジェクトのデュプリカを取ってきます。 [詳解]
 
static DOOperationGetCurrentOperation ()
 現在実行している最中の、複製オブジェクトに対する操作オブジェクトへのポインタを取得します。 [詳解]
 
static OperationManagerGetOperationManager ()
 OperationManager へのポインタを取得します。 [詳解]
 

静的非公開変数類

static const qUnsignedInt32 DEFAULT_CREATE_TIMEOUT = 1000
 DuplicatedObject::Create で指定されるデフォルトのタイムアウト値です。単位はミリ秒です。 [詳解]
 
static const qUnsignedInt32 DEFAULT_PUBLISH_TIMEOUT = 1000
 DuplicatedObject::Publish で指定されるデフォルトのタイムアウト値です。単位はミリ秒です。 [詳解]
 

詳解

ステーション(セッションに参加しているマシン)の情報をあらわすクラスです。

このクラスを経由してセッションに参加しているそれぞれのマシンを管理することが出来ます。 Stationクラス自体も複製オブジェクトとして管理されています。

列挙型メンバ詳解

ステーションの現在の状態を示す列挙体です。

列挙値
Unknown 

現在の状態が不明であることを示します。

JoiningSession 

ステーションがセッションに対する参加中処理を実行中であることを示します。

CreatingSession 

ステーションが現在セッションを作成している最中であることを示します。

Participating 

ステーションがセッションに参加している状態であることを示します。

Leaving 

ステーションがセッションに対する離脱処理を実行中であることを示します。

LeavingOnFault 

ステーションに(タイムアウトなどの)障害が発生したために、セッションからの離脱処理を実行中であることを示します。

このステーションのプロセスの種類を表す列挙体です。

列挙値
UnknownProcess 

このステーションのプロセスは不明です。これはデフォルトのプロセス種類になります。

ClientProcess 

このステーションはクライアントプロセスです。

ServerProcess 

このステーションはサーバープロセスです。

ToolProcess 

オブジェクトモニタ(セッションに存在する複製オブジェクトの監視ツール)などに代表される、付属ツールのプロセスです。ツールプロセスの場合、セッションのマスターになることは出来ません。

関数詳解

static DOHandle nn::nex::Station::GetLocalStation ( )
static

現在実行しているマシンを表すステーションの複製オブジェクトハンドルを取得します。

戻り値
現在実行しているマシンを表すステーションの複製オブジェクトハンドルが返ります。
戻り値一覧:
INVALID_DOHANDLE セッションに参加していないなどの理由で、実行しているマシンのステーションが存在しないときなどに返ります。
static Station* nn::nex::Station::GetLocalInstance ( )
static

現在実行しているマシンを表すステーションの複製オブジェクトへのポインタを取得します。

戻り値
現在実行しているマシンを表すステーションの複製オブジェクトへのポインタが返ります。
戻り値一覧:
NULL セッションに参加していないなどの理由で、実行しているマシンのステーションが存在しないときなどに返ります。
static DOHandle nn::nex::Station::ConvertStationIDToDOHandle ( StationID  stationId)
static

StationIDから StationDOHandle に変換します。

引数
[in]stationId変換したい StationID を指定します。
戻り値
変換した結果の DOHandle が返ります。
static DOHandle nn::nex::Station::ConvertConnectionIDToDOHandle ( StationID  stationId)
static

StationIDから StationDOHandle に変換します。 本関数の使用は非推奨です。ConvertStationIDToDOHandle() を使用してください。

引数
[in]stationId変換したい StationID を指定します。
戻り値
変換した結果の DOHandle が返ります。
参照
ConvertStationIDToDOHandle
static StationID nn::nex::Station::ConvertDOHandleToID ( DOHandle  hStation)
static

任意の StationDOHandle を指定して、 P2P セッション上でユニークな ID(StationID)に変換します。 本関数の使用は非推奨です。 ConvertDOHandleToStationID() を使用してください。

引数
[in]hStation変換したい DOHandle を指定します。
戻り値
変換した結果の StationID が返ります。
参照
ConvertDOHandleToStationID
static StationID nn::nex::Station::ConvertDOHandleToStationID ( DOHandle  hStation)
static

任意の StationDOHandle を指定して、 P2P セッション上でユニークな ID(StationID)に変換します。

引数
[in]hStation変換したい DOHandle を指定します。
戻り値
変換した結果の StationID が返ります。
static DOID nn::nex::Station::ConvertDOHandleToDOID ( DOHandle  hStation)
static

任意の StationDOHandle を指定して、 DOIDに変換します。

引数
[in]hStation変換したい DOHandle を指定します。
戻り値
変換した結果の DOID が返ります。
static void nn::nex::Station::SetLocalIdentificationToken ( const String strIdentificationToken)
static

ローカルステーションの識別トークンを設定します。 この関数で設定した値は他のステーションから GetIdentificationToken で参照する事ができます。 この関数は Net-Z インスタンスを作成した後に呼び出してください。

引数
strIdentificationTokenステーションに紐づいたユーザー定義の文字列
static void nn::nex::Station::SetLocalPlayerName ( const String playerName,
qUnsignedInt8  languageCode 
)
static

ローカルステーションのプレーヤー名と言語コードを設定します。

ローカルステーションのプレーヤー名と言語コードを設定し、自動的にクライアントの プリンシパル ID を設定します。

この関数で設定した値は他のステーションから GetPlayerName() , GetLanguageCode() , GetPrincipalID() で参照することが出来ます。 名前の長さは16文字(NULL終端を含めない)以内である必要があります。

この関数は Net-Z インスタンスを作成した後に呼び出してください。 P2P セッション毎(NetZ オブジェクトを作り直す毎に)に本関数を用いてプレーヤー名を指定する必要があります。

languageCode については、アプリケーションで別リージョンの言語を判定する場合に指定してください。本体の言語設定を使用したい場合には、 nn::cfg::CTR::GetLanguage() の値が利用可能です。

引数
playerName他の P2P セッション参加者から参照される名前
languageCode名前の言語コード
static void nn::nex::Station::SetLocalApplicationVersion ( qUnsignedInt32  applicationVersion)
static

ローカルステーションのアプリケーションバージョンを設定します。 アプリケーション独自の任意の数値を設定できます。 この関数で設定した値は他のステーションから GetApplicationVersion で参照する事ができます。 この関数は Net-Z インスタンスを作成した後に呼び出してください。

引数
applicationVersionアプリケーションバージョンを示す数値
static DOHandle nn::nex::Station::GetLocalObserver ( )
static

ローカルステーションのオブザーバーを取得します。推測航法で利用します。

ローカルステーションに対して Station::GetObserver() で得られるものと同等です。

推測航法についてはプログラミングマニュアルを参照してください。

参照
Station::GetObserver, Station::RegisterObserver
static qBool nn::nex::Station::RegisterObserver ( DOHandle  idObserver)
static

複製オブジェクトをステーションのオブザーバに登録します。推測航法で利用します。

DuplicatedObject::ComputeDistance() の引数として渡される複製オブジェクトを登録できます。

推測航法についてはプログラミングマニュアルを参照してください。

引数
[in]idObserverオブザーバーとして登録する複製オブジェクトの DOHandle を指定します。
参照
Station::UnregisterObserver, DuplicatedObject::ComputeDistance
static qBool nn::nex::Station::UnregisterObserver ( )
static

ステーションのオブザーバ登録を取り消します。推測航法で利用します。

推測航法についてはプログラミングマニュアルを参照してください。

参照
Station::RegisterObserver
static void nn::nex::Station::FlushAllBundles ( qBool  bFlushTransportBundles = true)
static

すべてのメッセージバンドルに登録されているメッセージを送信します。

メッセージバンドルとは、送信されるメッセージを一時的にプールして送信を待機させ、 ある程度まとまった間隔でメッセージを送信する機能のことです。 これによって帯域幅を節約することが出来ます。 詳しくはNEXプログラミングマニュアルをご覧ください。

メッセージバンドル機能が有効である場合、送信されようとしたメッセージは一時的にプールされ、 即座に送信されることはありません。この関数を呼びだしたときに、プールされたすべてのメッセージを フラッシュし、すべてのステーションに対するすべてのメッセージを送信します。

参照
FlushBundle, BundlingPolicy
State nn::nex::Station::GetState ( ) const

ステーションの現在のステータスを取得します。

戻り値
ステーションの現在のステータスが返ります。 State 列挙体で定義される値のうちのいずれかになります。
qBool nn::nex::Station::IsAPeer ( ) const

このステーションがセッションに参加しているリモート接続相手であるかどうかを取得します。

IsLocal で返る値の逆が返ります。


戻り値一覧:

true セッションに参加しているリモート接続相手であるときに返ります。

false セッションに参加しているリモート接続相手でないときに返ります。

qBool nn::nex::Station::IsLocal ( ) const

ステーションのインスタンスが、このマシン自身を表すかどうかを取得します。

IsAPeer で返る値の逆が返ります。


戻り値一覧:

true このステーションはこのマシン自身であるときに返ります。

false このステーションはこのマシンでないときに返ります。

qUnsignedInt32 nn::nex::Station::GetProcessType ( ) const

このステーションのプロセス種別を取得します。

戻り値
このステーションを制御しているプロセスの種類が返ります。 ProcessType 列挙体の値のうちいずれかが返ります。
const String& nn::nex::Station::GetIdentificationToken ( ) const

このステーションの識別トークンを取得します。

戻り値
このステーションの識別トークンが返ります。
const String& nn::nex::Station::GetPlayerName ( ) const

このステーションのプレーヤー名を取得します。

戻り値
このステーションのプレーヤー名が返ります。
qUnsignedInt8 nn::nex::Station::GetLanguageCode ( ) const

このステーションのプレーヤー名の言語コードを取得します。

戻り値
このステーションのプレーヤー名の言語コードが返ります。
PrincipalID nn::nex::Station::GetPrincipalID ( ) const

このステーションのプリンシパル ID を取得します。

戻り値
このステーションのプリンシパル ID が返ります。
qUnsignedInt32 nn::nex::Station::GetApplicationVersion ( ) const

このステーションのアプリケーションバージョンを取得します。

戻り値
このステーションのアプリケーションバージョンが返ります。
virtual qBool nn::nex::Station::ApproveEmigration ( qUnsignedInt32  uiReason)
virtual

複製オブジェクトがマイグレーションを行うかどうかを返します。

マイグレーションとは、複製オブジェクトのコントロール権限が 別のステーションに移行することを指します。 この関数は、正常シーケンスでステーションがセッションから抜けるとき、 その直前にシステム側から呼び出され、 別のステーションにオブジェクトの権限を移行するかどうかを返します。 アプリケーションはこの関数をオーバーライドすることによって挙動を変更することが出来ます。

障害発生時(たとえば電源断などが原因でステーションが急にセッションから消えたときなど)に、 複製オブジェクトが存在し続ける機能を実装する場合は、 この関数ではなく、ApproveFaultRecovery 関数をオーバーライドします。

※この関数はアプリケーション側から呼び出すためではなく、 システム側から呼び出されるために用意されています。

引数
[in]uiReason常にMIGRATION_REASON_LEAVING_SESSIONが指定されます。
戻り値一覧:

true 複製オブジェクトのマイグレーションを行います。 セッションに存在していた複製オブジェクトはそのコントロール権限をセッションに残るステーションに移譲します。

false 複製オブジェクトのマイグレーションを行いません。 今までセッションに存在していた複製オブジェクトは破棄されます。

参照
ApproveFaultRecovery, RemoveFromStoreOperation

nn::nex::DuplicatedObjectを再実装しています。

virtual qBool nn::nex::Station::ApproveFaultRecovery ( )
virtual

複製オブジェクトに障害回復機能をつけるかどうかを返します。

電源断などの障害発生時に、この仮想関数がシステム側から呼び出され、 複製オブジェクトがセッション中に存在し続けるかどうかを返します。 複製オブジェクトのすべてのインスタンス(複製マスター、およびデュプリカ)にて呼び出されますが、 同一クラスのすべてのインスタンスすべてが同じ値を返す必要があります。

この関数をアプリケーションでオーバーライドすることによって、 複製オブジェクトクラスごとに挙動を変更することが出来ます。 デフォルトでは、このシステムコールバックは常にfalseを返す (マイグレーションが発生しない)ようになっています。

この機能は、電源断など、障害が発生したことに対してのみ有効です。 正常シーケンスでのセッション離脱においても同様に複製オブジェクトを セッションに残し続けるには、AttemptEmigration(DOHandle) をオーバーライドしてください。

※この関数はアプリケーション側から呼び出すためではなく、 システム側から呼び出されるために用意されています。


戻り値一覧:

true マイグレーションを発生させる場合に返ります。

false マイグレーションを発生させない場合に返します。

参照
ApproveEmigration, FaultRecoveryOperation

nn::nex::DuplicatedObjectを再実装しています。

virtual void nn::nex::Station::OperationBegin ( DOOperation pOperation)
virtual

複製オブジェクトシステム操作が開始されるたびに呼び出されます。

この関数は、複製オブジェクトシステム操作(DOOperation)が開始されようとしているときに その複製オブジェクトシステム操作インスタンスへのポインタとともにシステム側から呼び出されます。 Operation::GetType 関数を呼び出すことによって どの種類の操作が行われようとしているかを判定することが出来ます。

※この関数はアプリケーション側から呼び出すためではなく、 システム側から呼び出されるために用意されています。

引数
[in]pOperationこれから実行される操作オブジェクトへのポインタが渡されます。
参照
OperationEnd

nn::nex::DuplicatedObjectを再実装しています。

virtual void nn::nex::Station::OperationEnd ( DOOperation pOperation)
virtual

複製オブジェクトシステム操作が終了されるたびに呼び出されます。

この関数は、複製オブジェクトシステム操作(DOOperation)が終わった後で その複製オブジェクトシステム操作インスタンスへのポインタとともにシステム側から呼び出されます。 Operation::GetType 関数を呼び出すことによって どの種類の操作が行われようとしているかを判定することが出来ます。

※この関数はアプリケーション側から呼び出すためではなく、 システム側から呼び出されるために用意されています。

引数
[in]pOperationこれから実行される操作オブジェクトへのポインタが渡されます。
参照
OperationEnd

nn::nex::DuplicatedObjectを再実装しています。

qBool nn::nex::Station::IsConnected ( ) const

実行しているマシンとこのステーションが接続を持っているかどうかを取得します。

戻り値一覧:

true 実行しているマシンはこのステーションとの接続を持っています。

false 接続を持っていない、あるいは何かしらエラーが発生したときに返ります。

DOHandle nn::nex::Station::GetObserver ( ) const

ステーションのオブザーバーを取得します。推測航法で利用します。

推測航法についてはプログラミングマニュアルを参照してください。

参照
Station::RegisterObserver
TimeInterval nn::nex::Station::GetRTT ( )

ローカルステーションと相手ステーションとの間のRTTの現在値を取得します。

ローカルステーションから、相手ステーションに向けてメッセージを送り、 相手からそのメッセージに対する確認が帰ってくるまでの時間のことを RTT(Round Trip Time)と呼びます。この機能は、相手のステーションまで直接接続されているときのみ利用できます。

戻り値
相手ステーションまでのRTTの現在の値が返ります。
戻り値一覧:
STATION_UNKNOWN_RTT 接続が直接行われていないときに返ります。
参照
GetRTTAverage
TimeInterval nn::nex::Station::GetRTTAverage ( )

ローカルステーションと相手ステーションとの間のRTTの平均値を取得します。

ローカルステーションから、相手ステーションに向けてメッセージを送り、 相手からそのメッセージに対する確認が帰ってくるまでの時間のことを RTT(Round Trip Time)と呼びます。この機能は、相手のステーションまで直接接続されているときのみ利用できます。

戻り値
相手ステーションまでのRTTの平均の値が返ります。
戻り値一覧:
STATION_UNKNOWN_RTT 接続が直接行われていないときに返ります。
参照
GetRTT
virtual void nn::nex::Station::Trace ( qUnsignedInt64  uiTraceFlag = TRACE_ALWAYS) const
virtual

この複製オブジェクトの状態をトレースします(デバッグ用)。

引数
[in]uiTraceFlagどのフラグが有効であるときにトレースを実行するのか指定します。

nn::nex::DuplicatedObjectを再実装しています。

EndPointInfoInterface* nn::nex::Station::GetEndPointInfoInterface ( ) const

ステーションの EndPointInfoInterface を取得します。

ステーションが保持している EndPointInfoInterface のポインタを取得します。 EndPointInfoInterface を介して、 EndPointの統計情報である EndPointInfo の取得・操作が可能です。

EndPointInfoInterface の取得の際には、 Scheduler::SystemLock()が必要です。

戻り値
ステーションの EndPointInfoInterface へのポインタ。 ローカルステーションの場合などEndPointが存在しない場合には、NULL。
参照
EndPointInfoInterface, EndPointInfo, Scheduler::SystemLock()
void nn::nex::Station::GetStationURLs ( qList< StationURL > *  plstURLs) const

このステーションの、有効な StationURL のリストを取得します。

ステーションのURLは、外回線に出るときのグローバルなものや、 LAN内などの閉じた環境でのURLなど、複数存在します。 本関数はそれを一度に複数取得できます。

先頭要素は基本的に外回線にでるときのグローバルなURLが格納されています。

1つのURLだけ取得したい場合は GetStationURL の使用を推奨します。

引数
[out]plstURLsこのステーションの有効なURLのリストを格納するためのqList型のポインタを指定します。
参照
GetStationURL
const qChar* nn::nex::Station::GetStationURL ( qInt  iIndex) const

このステーションのURLを文字列にしたものを取得します。

ステーションのURLは、外回線に出るときのグローバルなものや、 LAN内などの閉じた環境でのURLなど、複数存在します。 本関数はそれを1つだけ取得できます。

先頭要素は基本的に外回線にでるときのグローバルなURLが格納されています。 つまり、 GetStationURL(0) でグローバルなURLの文字列を取得することができます。

1~4以外の引数を指定した場合は常に空文字列が返ります。

一度に複数のURLを取得したい場合は GetStationURLs を使用してください。

引数
[in]iIndex取得したいURLリストのインデックス
戻り値
URLを表す文字列。
参照
GetStationURLs
qResult nn::nex::Station::FlushBundle ( qBool  bFlushTransportBundles = true)

現在このステーションにメッセージバンドルとしてためられているをメッセージをすべて送信します。

メッセージバンドルとは、送信されるメッセージを一時的にプールして送信を待機させ、 ある程度まとまった間隔でメッセージを送信する機能のことです。 これによって帯域幅を節約することが出来ます。 詳しくはNEXプログラミングマニュアルをご覧ください。

伝送メッセージバンドルは定期的にフラッシュされる必要がありますので、 通常の間隔でこの関数を呼び出すときは bFlushTransportBundles をtrueにしなければなりません。

引数
[in]bFlushTransportBundlesこれが true のとき、メッセージバンドルのあとで伝送メッセージバンドルもフラッシュされます(デフォルトは true)。
参照
FlushAllBundles, BundlingPolicy
戻り値
この関数の実行結果が返されます。
qBool nn::nex::Station::SignalFault ( qBool  bProcessNow = true)

指定されたステーションを強制切断します。デバッグ用機能です。

ステーション不一致の検証用に利用してください。

引数
[in]bProcessNowtrue:他のステーションと終了処理なしにステーションを切断します。 false:他のステーションとの終了処理を行ってステーションを切断します。


戻り値一覧:

true 強制切断が成功した場合に返ります。

false すでに接続がなかった場合など、強制切断が成功しなかった場合に返ります。

StationID nn::nex::Station::GetStationID ( ) const

セッションの中でステーション(マシン)を特定するためのIDを取得します。 StationIDは、マスター交代後の新規ステーションにアサインされる値が飛ぶ可能性があり、連続値である保証はありません。P2P参加ステーション内でユニークであることは保証されます。

戻り値
このステーションのIDが返ります。
StationID nn::nex::Station::GetConnectionID ( ) const

通信時にステーション(マシン)を指定するためのIDを取得します。 この関数の使用は非推奨です。GetStationID() を使用してください。

戻り値
このステーションのStationIDが返ります。
参照
GetStationID
size_t nn::nex::Station::GetNumOfRoutingConnections ( ) const

このステーションが持つマスター経由通信の数を取得します。

RootTransport::GetRoutingHistoryTTL() [ms]以内に通信の発生したマスター経由通信の数を返します。 送信、受信をそれぞれカウントします。つまり、このステーションが別の1台のステーションとマスター経由通信していた場合、この関数は2を返します。 本関数を使用する前にはあらかじめRootTransport::SetRoutingHistoryUpdateSpan で0より大きい更新間隔を設定する必要があります。 この関数はセッションマスターのみ呼び出せます。

戻り値
このステーションが持つマスター経由通信の数を返します。
qBool nn::nex::Station::KickStation ( )

指定されたステーションをセッションから離脱させます。 指定されたステーションは、周りのステーションからフォルト扱いで切断されて、 Session::CheckGameIsOver() がtrueとなります。

本メソッドは通常セッションマスター( Session::GetRole()で、 SESSION_ROLE_MASTERが返ってくるステーション)で実行します。 また、ローカルステーションを指定することができません。ローカルステーションを離脱させるときには、 KickMe()を用いてください。

ロス率が高いときには、指定されたステーションを離脱する信号が正しく到着しない場合があります。 その場合は、指定されたステーションは、周りステーションから切断されて孤立します。


戻り値一覧:

true 離脱する信号の送信に成功したときに返ります。

false キックする相手がいなかった時やローカルステーションを指定した時など、離脱する信号の送信に失敗したときに返ります。

参照
Session::CheckGameIsOver(), KickMe()
static qBool nn::nex::Station::KickMe ( )
static

ローカルステーションをセッションから離脱させます。 ローカルステーションは、周りのステーションからフォルト扱いで切断されて、 Session::CheckGameIsOver() がtrueとなります。 スレッドセーフモードのときはスレッドセーフです。


戻り値一覧:

true 離脱する信号の送信に成功したときに返ります。

false 離脱する信号の送信に失敗したときに返ります。

参照
Session::CheckGameIsOver(), KickStation()
static void nn::nex::Station::RegisterOperationBeginCallback ( void(*)(StationOperation *pOperation)  pfOperationBegin)
static

StationOperationが実行されるたびに呼び出されるコールバックを登録します。

StationOperation が実行されるたびに呼び出されるコールバックを登録し、 ステーションがセッションに参加した際の開始タイミング、セッションから離脱した際の開始タイミングを知ることができます。

引数
[in]pfOperationBeginコールバック関数へのポインタを指定します。
参照
StationOperation, JoinStationOperation, LeaveStationOperation
static void nn::nex::Station::RegisterOperationEndCallback ( void(*)(StationOperation *pOperation)  pfOperationEnd)
static

StationOperationが実行されるたびに呼び出されるコールバックを登録します。

StationOperation が実行されるたびに呼び出されるコールバックを登録し、 ステーションがセッションに参加した際の完了タイミング、セッションから離脱した際の完了タイミングを知ることができます。

引数
[in]pfOperationEndコールバック関数へのポインタを指定します。
参照
StationOperation, JoinStationOperation, LeaveStationOperation
static size_t nn::nex::Station::GetApprovedStationNum ( )
static

セッションへの参加が承認されたステーションの数を返します。 セッションの参加の承認・拒否は、Session::RegisterJoinApprovalCallback に登録したコールバックで行うことができます。 セッションマスターのステーションは常に承認済みとしてカウントされます。

戻り値
セッションへの参加が承認されたステーションの数が返ります。
参照
Session::RegisterJoinApprovalCallback