CTR-Pia
5.4.3
Game Communication Engine
|
排他的に送信権を制御して双方向の送受信を行う CloneBase 派生クラスです。 [詳細]
Public 型 | |
typedef uint32_t | Id |
クローンを識別するための ID の型です。 | |
enum | LockStatus { LockStatus_Unlocked = 0x10, LockStatus_TryLock = 0x20, LockStatus_Locked = 0x30 } |
送信権の保持状態を表します。 [詳細] | |
Public メソッド | |
AtomicSharingClone () | |
デフォルトコンストラクタです。 | |
virtual | ~AtomicSharingClone () |
デストラクタです。 | |
Id | GetId () const |
ID を取得します。 | |
LockStatus | GetLockStatus () const |
送信権の保持状態を取得します。 | |
const CloneProtocol * | GetProtocol () const |
このオブジェクトが登録されている CloneProtocol を取得します。 | |
bool | IsActive () const |
このオブジェクトが動作中かどうかを取得します。 | |
bool | IsConnected (StationId stationId) const |
この SharingClone とデータをやり取りする他のステーションの SharingClone が存在するかどうかを判定します。 | |
bool | IsConnectedWithAll () const |
この SharingClone とデータをやり取りする SharingClone が全てのステーションに存在するかどうかを判定します。 | |
bool | IsRegisteredWithProtocol () const |
CloneProtocol に登録されているかどうかを判定します。 | |
Result | RegisterElement (CloneElementBase *pElement, CloneElementBase::Id elementId) |
クローンエレメントを登録します。 | |
CloneElementBase * | SearchElement (CloneElementBase::Id elementId) |
指定された ID のクローンエレメントを検索します。 | |
const CloneElementBase * | SearchElement (CloneElementBase::Id elementId) const |
指定された ID のクローンエレメントを検索します。 | |
virtual void | Trace (uint64_t flag) const |
デバッグに有用な情報をプリントします。 | |
Result | TryLock () |
送信権の取得を試みます。 | |
Result | Unlock () |
送信権を放棄します。 | |
Result | UnregisterElement (CloneElementBase *pElement) |
クローンエレメントの登録を解除します。 | |
Result | UnregisterElement (CloneElementBase::Id elementId) |
クローンエレメントの登録を解除します。 | |
プロファイリング | |
Result | SetProfiler (CloneProfilerBase *pSendProfiler, CloneProfilerBase *pReceiveProfiler) |
送受信のプロファイリング管理オブジェクトを設定します。 | |
const CloneProfilerBase * | GetSendProfiler () const |
設定されている送信プロファイリング管理オブジェクトを取得します。 | |
const CloneProfilerBase * | GetReceiveProfiler () const |
設定されている受信プロファイリング管理オブジェクトを取得します。 | |
void | ResetProfiler () |
送受信のプロファイリングされた結果をリセットします。 | |
uint32_t | GetProfiledLatestSendCount (StationIndex stationIndex) const |
直近の CloneProfiler::LATEST_BUFFER_SIZE 回の common::Scheduler::Dispatch の間に送信した クローンメッセージの個数を取得します。 | |
uint32_t | GetProfiledLatestSendSize (StationIndex stationIndex) const |
直近の CloneProfiler::LATEST_BUFFER_SIZE 回の common::Scheduler::Dispatch の間に送信したクローンメッセージのサイズ(バイト)を取得します。 | |
uint32_t | GetProfiledLatestSendNoCompressedSize (StationIndex stationIndex) const |
直近の CloneProfiler::LATEST_BUFFER_SIZE 回の common::Scheduler::Dispatch の間に送信したクローンメッセージの圧縮前のサイズ(バイト)を取得します。 | |
uint32_t | GetProfiledLatestSendUnicastCount (StationIndex stationIndex) const |
直近の CloneProfiler::LATEST_BUFFER_SIZE 回の common::Scheduler::Dispatch の間にユニキャストで送信したクローンメッセージの個数を取得します。 | |
uint32_t | GetProfiledLatestSendUnicastSize (StationIndex stationIndex) const |
直近の CloneProfiler::LATEST_BUFFER_SIZE 回の common::Scheduler::Dispatch の間にユニキャストで送信したクローンメッセージのサイズ(バイト)を取得します。 | |
uint32_t | GetProfiledLatestSendSystemCount (StationIndex stationIndex) const |
直近の CloneProfiler::LATEST_BUFFER_SIZE 回の common::Scheduler::Dispatch の間に送信したシステム用クローンメッセージの個数を取得します。 | |
uint32_t | GetProfiledLatestSendSystemSize (StationIndex stationIndex) const |
直近の CloneProfiler::LATEST_BUFFER_SIZE 回の common::Scheduler::Dispatch の間に送信したシステム用クローンメッセージのサイズ(バイト)を取得します。 | |
uint32_t | GetProfiledTotalSendCount (StationIndex stationIndex) const |
ResetProfiler 以降に送信したクローンメッセージの個数を取得します。 | |
uint32_t | GetProfiledTotalSendSize (StationIndex stationIndex) const |
ResetProfiler 以降に送信したクローンメッセージのサイズ(バイト)を取得します。 | |
uint32_t | GetProfiledTotalSendNoCompressedSize (StationIndex stationIndex) const |
ResetProfiler 以降に送信したクローンメッセージの圧縮前のサイズ(バイト)を取得します。 | |
uint32_t | GetProfiledTotalSendUnicastCount (StationIndex stationIndex) const |
ResetProfiler 以降にユニキャストで送信したクローンメッセージの個数を取得します。 | |
uint32_t | GetProfiledTotalSendUnicastSize (StationIndex stationIndex) const |
ResetProfiler 以降にユニキャストで送信したクローンメッセージのサイズ(バイト)を取得します。 | |
uint32_t | GetProfiledTotalSendSystemCount (StationIndex stationIndex) const |
ResetProfiler 以降に送信したシステム用クローンメッセージの個数を取得します。 | |
uint32_t | GetProfiledTotalSendSystemSize (StationIndex stationIndex) const |
ResetProfiler 以降に送信したシステム用クローンメッセージのサイズ(バイト)を取得します。 | |
uint32_t | GetProfiledLatestReceiveCount (StationIndex stationIndex) const |
直近の CloneProfiler::LATEST_BUFFER_SIZE 回の common::Scheduler::Dispatch の間に受信したクローンメッセージの個数を取得します。 | |
uint32_t | GetProfiledLatestReceiveSize (StationIndex stationIndex) const |
直近の CloneProfiler::LATEST_BUFFER_SIZE 回の common::Scheduler::Dispatch の間に受信したクローンメッセージのサイズ(バイト)を取得します。 | |
uint32_t | GetProfiledTotalReceiveCount (StationIndex stationIndex) const |
ResetProfiler 以降に受信したクローンメッセージの個数を取得します。 | |
uint32_t | GetProfiledTotalReceiveSize (StationIndex stationIndex) const |
ResetProfiler 以降に受信したクローンメッセージのサイズ(バイト)を取得します。 | |
排他的に送信権を制御して双方向の送受信を行う CloneBase 派生クラスです。
|
inlineinherited |
ID を取得します。
|
inline |
送信権の保持状態を取得します。
|
inherited |
直近の CloneProfiler::LATEST_BUFFER_SIZE 回の common::Scheduler::Dispatch の間に受信したクローンメッセージの個数を取得します。
[in] | stationIndex | プロファイリング対象の StationIndex です。 |
|
inherited |
直近の CloneProfiler::LATEST_BUFFER_SIZE 回の common::Scheduler::Dispatch の間に受信したクローンメッセージのサイズ(バイト)を取得します。
[in] | stationIndex | プロファイリング対象の StationIndex です。 |
|
inherited |
直近の CloneProfiler::LATEST_BUFFER_SIZE 回の common::Scheduler::Dispatch の間に送信した クローンメッセージの個数を取得します。
[in] | stationIndex | プロファイリング対象の StationIndex です。 |
|
inherited |
直近の CloneProfiler::LATEST_BUFFER_SIZE 回の common::Scheduler::Dispatch の間に送信したクローンメッセージの圧縮前のサイズ(バイト)を取得します。
[in] | stationIndex | プロファイリング対象の StationIndex です。 |
|
inherited |
直近の CloneProfiler::LATEST_BUFFER_SIZE 回の common::Scheduler::Dispatch の間に送信したクローンメッセージのサイズ(バイト)を取得します。
[in] | stationIndex | プロファイリング対象の StationIndex です。 |
|
inherited |
直近の CloneProfiler::LATEST_BUFFER_SIZE 回の common::Scheduler::Dispatch の間に送信したシステム用クローンメッセージの個数を取得します。
[in] | stationIndex | プロファイリング対象の StationIndex です。 |
|
inherited |
直近の CloneProfiler::LATEST_BUFFER_SIZE 回の common::Scheduler::Dispatch の間に送信したシステム用クローンメッセージのサイズ(バイト)を取得します。
[in] | stationIndex | プロファイリング対象の StationIndex です。 |
|
inherited |
直近の CloneProfiler::LATEST_BUFFER_SIZE 回の common::Scheduler::Dispatch の間にユニキャストで送信したクローンメッセージの個数を取得します。
[in] | stationIndex | プロファイリング対象の StationIndex です。 |
|
inherited |
直近の CloneProfiler::LATEST_BUFFER_SIZE 回の common::Scheduler::Dispatch の間にユニキャストで送信したクローンメッセージのサイズ(バイト)を取得します。
[in] | stationIndex | プロファイリング対象の StationIndex です。 |
|
inherited |
ResetProfiler 以降に受信したクローンメッセージの個数を取得します。
[in] | stationIndex | プロファイリング対象の StationIndex です。 |
|
inherited |
ResetProfiler 以降に受信したクローンメッセージのサイズ(バイト)を取得します。
[in] | stationIndex | プロファイリング対象の StationIndex です。 |
|
inherited |
ResetProfiler 以降に送信したクローンメッセージの個数を取得します。
[in] | stationIndex | プロファイリング対象の StationIndex です。 |
|
inherited |
ResetProfiler 以降に送信したクローンメッセージの圧縮前のサイズ(バイト)を取得します。
[in] | stationIndex | プロファイリング対象の StationIndex です。 |
|
inherited |
ResetProfiler 以降に送信したクローンメッセージのサイズ(バイト)を取得します。
[in] | stationIndex | プロファイリング対象の StationIndex です。 |
|
inherited |
ResetProfiler 以降に送信したシステム用クローンメッセージの個数を取得します。
[in] | stationIndex | プロファイリング対象の StationIndex です。 |
|
inherited |
ResetProfiler 以降に送信したシステム用クローンメッセージのサイズ(バイト)を取得します。
[in] | stationIndex | プロファイリング対象の StationIndex です。 |
|
inherited |
ResetProfiler 以降にユニキャストで送信したクローンメッセージの個数を取得します。
[in] | stationIndex | プロファイリング対象の StationIndex です。 |
|
inherited |
ResetProfiler 以降にユニキャストで送信したクローンメッセージのサイズ(バイト)を取得します。
[in] | stationIndex | プロファイリング対象の StationIndex です。 |
|
inlineinherited |
このオブジェクトが登録されている CloneProtocol を取得します。
|
inlineinherited |
設定されている受信プロファイリング管理オブジェクトを取得します。
|
inlineinherited |
設定されている送信プロファイリング管理オブジェクトを取得します。
|
inlineinherited |
このオブジェクトが動作中かどうかを取得します。
CloneProtocol に登録されていて、実際に値の送受信ができる状態であれば動作中と扱います。 CloneProtocol への登録/登録解除処理中や、 CloneProtocol の開始/終了処理中は動作中ではありません。
|
inherited |
この SharingClone とデータをやり取りする他のステーションの SharingClone が存在するかどうかを判定します。
相手の SharingClone が途中で登録解除された場合、アプリケーションや内部によるデータの送受信や、 CloneProtocol の通信終了、ステーションの離脱等が起こるまでは反映されないので注意してください。
[in] | stationId | 相手の StationId です。 |
|
inherited |
この SharingClone とデータをやり取りする SharingClone が全てのステーションに存在するかどうかを判定します。
CloneProtocol::IsActiveStation() が true となるステーションが判定対象です。
相手の SharingClone が途中で登録解除された場合、アプリケーションや内部によるデータの送受信等が 起こるまでは反映されないので注意してください。
|
inlineinherited |
CloneProtocol に登録されているかどうかを判定します。
|
inherited |
クローンエレメントを登録します。
このオブジェクトが CloneProtocol に登録されていない状態で呼び出す必要があります。
[in] | pElement | 登録するクローンエレメントです。 |
[in] | elementId | 登録するクローンエレメントの ID です。 |
ResultInvalidState このオブジェクトが CloneProtocol に登録されています。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
ResultInvalidArgument 引数が不正です。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
ResultAlreadyExists 指定された ID には既にクローンエレメントが登録されています。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
|
inherited |
送受信のプロファイリングされた結果をリセットします。
|
inlineinherited |
指定された ID のクローンエレメントを検索します。
[in] | elementId | 検索するクローンエレメントです。 |
|
inlineinherited |
指定された ID のクローンエレメントを検索します。
[in] | elementId | 検索するクローンエレメントです。 |
|
inherited |
送受信のプロファイリング管理オブジェクトを設定します。
CloneProfiler を設定すると、登録されているクローンエレメントおよびクローン自身が行った送受信をプロファイリングできます。 ここでの計測は、このクローンが他のクローンと行うすべてのデータのやり取りが計上されるため、 自ステーション内でのクローン間のデータのやり取りも値に含まれます。
複数のクローンエレメントが同時に送信する場合、クローン単位で一つにまとめられるため、 多くの場合、クローンエレメントの送受信回数の合計よりクローンの送受信回数の方が小さくなります。
圧縮を有効にしていた場合、計測されるサイズは圧縮された状態でのサイズです。 そのため、登録しているクローンエレメントで計測された送受信サイズの合計より、数値上は小さい値が計測される場合があります。
引数に NULL を指定すると、既に設定してある CloneProfiler を解除する事ができます。
[in] | pSendProfiler | 送信のプロファイリングを管理する CloneProfiler を指定します。 必要ない場合は NULL を指定する必要があります。 |
[in] | pReceiveProfiler | 受信のプロファイリングを管理する CloneProfiler を指定します。 必要ない場合は NULL を指定する必要があります。 |
|
virtual |
デバッグに有用な情報をプリントします。
[in] | flag | トレースフラグの論理和。詳細は TraceFlag 型を参照してください。 |
nn::pia::clone::SharingCloneを再定義しています。
Result nn::pia::clone::AtomicSharingClone::TryLock | ( | ) |
送信権の取得を試みます。
LockStatus_Unlocked の時に呼び出すと、 LockStatus_TryLock に遷移します。 その後送信権の取得に成功したら、 LockStatus_Locked に遷移します。 他のステーションが送信権を持っていて送信権の取得に失敗したら、 LockStatus_Unlocked に戻ります。 LockStatus_TryLock, LockStatus_Locked の時に呼び出しても何も起こりません。
Result nn::pia::clone::AtomicSharingClone::Unlock | ( | ) |
送信権を放棄します。
LockStatus_Locked の時に呼び出すと、 LockStatus_Unlocked に遷移して、他のステーションが送信権を取得できるようになります。 LockStatus_TryLock の時に呼び出すと、送信権の取得を中断して LockStatus_Unlocked に遷移します。 LockStatus_Unlocked の時に呼び出しても何も起こりません。
|
inherited |
クローンエレメントの登録を解除します。
このオブジェクトが CloneProtocol に登録されていない状態で呼び出す必要があります。
[in] | pElement | 登録解除するクローンエレメントです。 |
ResultInvalidState このオブジェクトが CloneProtocol に登録されています。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
ResultInvalidArgument 引数が不正です。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
|
inherited |
クローンエレメントの登録を解除します。
このオブジェクトが CloneProtocol に登録されていない状態で呼び出す必要があります。
[in] | elementId | 登録解除するクローンエレメントの ID です。 |
ResultInvalidState このオブジェクトが CloneProtocol に登録されています。 プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
ResultNotSet 指定された ID にはクローンエレメントが登録されていません。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。