CTR-Pia  5.4.3
Game Communication Engine
 全て クラス ネームスペース 関数 変数 型定義 列挙型 列挙型の値 ページ
クラス nn::pia::transport::ThreadStreamManager

送受信スレッドを統括するクラスです。 [詳細]

+ nn::pia::transport::ThreadStreamManagerに対する継承グラフ

Public メソッド

void ClearReceiveThreadReceiveDataSize (void)
 受信データ量カウンタをクリアします。
 
void ClearReceiveThreadReceivePacketNum (void)
 受信パケット数カウンタをクリアします。
 
void ClearSendThreadSendDataSize (void)
 送信データ量カウンタをクリアします。
 
void ClearSendThreadSendPacketNum (void)
 送信パケット数カウンタをクリアします。
 
int32_t GetReceiveThreadPacketLossRatio (void) const
 受信スレッドがエミュレートするパケロスの確率を取得します。
 
int32_t GetReceiveThreadPriority (void) const
 受信スレッドの優先度を取得します。
 
uint64_t GetReceiveThreadReceiveDataSize (void) const
 受信スレッドが受信に成功したデータの総量を得ます。
 
uint32_t GetReceiveThreadReceivePacketNum (void) const
 受信スレッドがパケットの受信に成功した回数を得ます。
 
uint32_t GetReceiveThreadSleepTimeSpan (void) const
 受信スレッドのスリープ期間を取得します。
 
int32_t GetSendThreadPacketLossRatio (void) const
 送信スレッドがエミュレートするパケロスの確率を取得します。
 
int32_t GetSendThreadPriority (void) const
 送信スレッドの優先度を取得します。
 
uint64_t GetSendThreadSendDataSize (void) const
 送信スレッドが送信を試みたデータの総量を得ます。
 
uint32_t GetSendThreadSendPacketNum (void) const
 送信スレッドがパケットの送信を試みた回数を得ます。
 
uint32_t GetSendThreadSleepTimeSpan (void) const
 送信スレッドのスリープ期間を取得します。
 
Result SetReceiveThreadLatencyEmulation (int32_t minLatency, int32_t maxLatency)
 受信レイテンシエミュレーション時間を設定します。
 
Result SetReceiveThreadPacketLossRatio (int32_t lossPercentage)
 受信スレッドがエミュレートするパケロスの確率を設定します。
 
void SetReceiveThreadPriority (int32_t prio)
 受信スレッドの優先度を設定します。
 
void SetReceiveThreadSleepTimeSpan (uint32_t span)
 受信スレッドのスリープ期間を設定します。
 
Result SetSendThreadLatencyEmulation (int32_t minLatency, int32_t maxLatency)
 送信レイテンシエミュレーション時間を設定します。
 
Result SetSendThreadPacketLossRatio (int32_t lossPercentage)
 送信スレッドがエミュレートするパケロスの確率を設定します。
 
void SetSendThreadPriority (int32_t prio)
 送信スレッドの優先度を設定します。
 
void SetSendThreadSleepTimeSpan (uint32_t span)
 送信スレッドのスリープ期間を設定します。
 
virtual void Trace (uint64_t flag) const
 デバッグに有用な情報をプリントします。
 

Static Public メソッド

static ThreadStreamManagerGetInstance (void)
 ThreadStreamManager クラスのインスタンスを得ます(シングルトンパターン)。
 

Static Public 変数

static const int32_t ReceiveThreadDefaultPriority = 10
 受信スレッドのデフォルトの優先度です。
 
static const int32_t ReceiveThreadDefaultSleepSpan = 5
 受信スレッドのデフォルトのスリープ間隔です。単位はミリ秒です。
 
static const int32_t SendThreadDefaultPriority = 10
 送信スレッドのデフォルトの優先度です。
 
static const int32_t SendThreadDefaultSleepSpan = 5
 送信スレッドのデフォルトのスリープ間隔です。単位はミリ秒です。
 

説明

送受信スレッドを統括するクラスです。

このクラスは送受信スレッドの生成/破棄などを行います。 また、送受信スレッドの優先度やスリープ間隔を設定する API や、 レイテンシエミュレーション機能のための API を用意しています。 このクラスのインスタンス自体は Transport クラスの初期化時に作成されます。

関数

void nn::pia::transport::ThreadStreamManager::ClearReceiveThreadReceiveDataSize ( void  )

受信データ量カウンタをクリアします。

GetReceiveThreadReceiveDataSize() で取得できる、 受信に成功したデータ量のカウンタをゼロにクリアします。

参照
GetReceiveThreadReceiveDataSize
void nn::pia::transport::ThreadStreamManager::ClearReceiveThreadReceivePacketNum ( void  )

受信パケット数カウンタをクリアします。

GetReceiveThreadReceivePacketNum() で取得できる、 受信に成功したパケット数のカウンタをゼロにクリアします。

参照
GetReceiveThreadReceivePacketNum
void nn::pia::transport::ThreadStreamManager::ClearSendThreadSendDataSize ( void  )

送信データ量カウンタをクリアします。

GetSendThreadSendDataSize() で取得できる、 送信を試みたデータ量のカウンタをゼロにクリアします。

参照
GetSendThreadSendDataSize
void nn::pia::transport::ThreadStreamManager::ClearSendThreadSendPacketNum ( void  )

送信パケット数カウンタをクリアします。

GetSendThreadSendPacketNum() で取得できる、 送信を試みたパケット数のカウンタをゼロにクリアします。

参照
GetSendThreadSendPacketNum
static ThreadStreamManager* nn::pia::transport::ThreadStreamManager::GetInstance ( void  )
inlinestatic

ThreadStreamManager クラスのインスタンスを得ます(シングルトンパターン)。

事前にインスタンスが作成されていなかった場合には、 NULL ポインタが返されます。

戻り値
ThreadStreamManager インスタンスへのポインタ。
int32_t nn::pia::transport::ThreadStreamManager::GetReceiveThreadPacketLossRatio ( void  ) const

受信スレッドがエミュレートするパケロスの確率を取得します。

戻り値
受信スレッドに設定されていたパケロス確率が返されます。値の範囲は 0 ~ 100 です。
参照
SetReceiveThreadPacketLossRatio
int32_t nn::pia::transport::ThreadStreamManager::GetReceiveThreadPriority ( void  ) const

受信スレッドの優先度を取得します。

この関数はスレッドセーフです。

戻り値
受信スレッドの優先度。
参照
SetReceiveThreadPriority
uint64_t nn::pia::transport::ThreadStreamManager::GetReceiveThreadReceiveDataSize ( void  ) const

受信スレッドが受信に成功したデータの総量を得ます。

受信スレッドは、受信に成功したデータ量をカウントアップしています。 そのカウンタの値が返されます。

戻り値
これまでに受信に成功したデータの総量。単位はバイトです。
参照
ClearReceiveThreadReceiveDataSize
uint32_t nn::pia::transport::ThreadStreamManager::GetReceiveThreadReceivePacketNum ( void  ) const

受信スレッドがパケットの受信に成功した回数を得ます。

受信スレッドは、受信に成功したパケットの数をカウントしています。 そのカウンタの値が返されます。

戻り値
これまでに受信に成功したパケットの総数。
参照
ClearReceiveThreadReceivePacketNum
uint32_t nn::pia::transport::ThreadStreamManager::GetReceiveThreadSleepTimeSpan ( void  ) const

受信スレッドのスリープ期間を取得します。

この関数はスレッドセーフです。

戻り値
受信スレッドのスリープ期間。単位はミリ秒。
参照
SetReceiveThreadSleepTimeSpan
int32_t nn::pia::transport::ThreadStreamManager::GetSendThreadPacketLossRatio ( void  ) const

送信スレッドがエミュレートするパケロスの確率を取得します。

戻り値
送信スレッドに設定されていたパケロス確率が返されます。値の範囲は 0 ~ 100 です。
参照
SetSendThreadPacketLossRatio
int32_t nn::pia::transport::ThreadStreamManager::GetSendThreadPriority ( void  ) const

送信スレッドの優先度を取得します。

この関数はスレッドセーフです。

戻り値
送信スレッドの優先度。
参照
SetSendThreadPriority
uint64_t nn::pia::transport::ThreadStreamManager::GetSendThreadSendDataSize ( void  ) const

送信スレッドが送信を試みたデータの総量を得ます。

送信スレッドは、送信を試みたデータ量をカウントアップしています。 そのカウンタの値が返されます。

戻り値
これまでに送信を試みたデータの総量。単位はバイトです。
参照
ClearSendThreadSendDataSize
uint32_t nn::pia::transport::ThreadStreamManager::GetSendThreadSendPacketNum ( void  ) const

送信スレッドがパケットの送信を試みた回数を得ます。

送信スレッドは、送信を試みたパケットの数をカウントしています。 そのカウンタの値が返されます。

戻り値
これまでに送信を試みたパケットの総数。
参照
ClearSendThreadSendPacketNum
uint32_t nn::pia::transport::ThreadStreamManager::GetSendThreadSleepTimeSpan ( void  ) const

送信スレッドのスリープ期間を取得します。

この関数はスレッドセーフです。

戻り値
送信スレッドのスリープ期間。単位はミリ秒。
参照
SetSendThreadSleepTimeSpan
Result nn::pia::transport::ThreadStreamManager::SetReceiveThreadLatencyEmulation ( int32_t  minLatency,
int32_t  maxLatency 
)

受信レイテンシエミュレーション時間を設定します。

受信レイテンシエミュレーション機能は、受信したパケットを すぐに上位層に渡すのではなく、一時的にバッファに保存し、規定の時間が 経過してから保存していたパケットを上位層に渡すことで実現しています。 そのため、最大遅延時間を大きくする場合は、それに見合ったサイズの バッファを用意しないと、バッファがあふれてしまい、あたかも パケロスが頻発しているかのような症状を示すことがあります。 バッファのサイズ設定については、 Transport::DebugSetting 構造体を参照してください。

引数
[in]minLatency最小遅延時間。単位はミリ秒です。
[in]maxLatency最大遅延時間。単位はミリ秒です。
戻り値
成功すれば、 IsSuccess() が true を返す Result が返されます。
返るエラーの一覧:

ResultInvalidArgument 引数に誤りがあります。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。

ResultInvalidState レイテンシエミュレーション機能が無効の可能性があります。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。

参照
SetSendThreadLatencyEmulation, Transport::DebugSetting
Result nn::pia::transport::ThreadStreamManager::SetReceiveThreadPacketLossRatio ( int32_t  lossPercentage)

受信スレッドがエミュレートするパケロスの確率を設定します。

このパケロスエミュレーション機能を用いると、こちらに向けて送出された パケットが何らかの理由で消失したという状況をエミュレートできます。 引数に 0% 以外の値をを設定すると、受信スレッドはその確率に応じて 受信パケットをドロップし、パケロスをエミュレートします。 デフォルトでは、受信スレッドのパケロス確率は 0% に設定されています。

引数
[in]lossPercentage0 ~ 100 の値を設定します。
戻り値
成功すれば、 IsSuccess() が true を返す Result が返されます。
返るエラーの一覧:

ResultInvalidArgument 引数に誤りがあります。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。

ResultInvalidState パケロスエミュレーション機能が有効に設定されていません。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。

参照
GetReceiveThreadPacketLossRatio, Transport::SetDebugSetting
void nn::pia::transport::ThreadStreamManager::SetReceiveThreadPriority ( int32_t  prio)

受信スレッドの優先度を設定します。

通常、受信スレッドの優先度は、アプリケーションが common::Scheduler::Dispatch() を呼び出すスレッドの優先度よりも高くする必要があります。

引数
[in]prio受信スレッドに指定する優先度。この値は、アプリケーションの仕様に応じて調整することを推奨します。
参照
GetReceiveThreadPriority, common::Scheduler::Dispatch
void nn::pia::transport::ThreadStreamManager::SetReceiveThreadSleepTimeSpan ( uint32_t  span)

受信スレッドのスリープ期間を設定します。

受信スレッドは定期的にスリープします。このスリープ期間を設定する関数です。

引数
[in]span受信スレッドがスリープする期間。単位はミリ秒。この値は、アプリケーションの仕様に応じて調整することを推奨します。
参照
GetReceiveThreadSleepTimeSpan
Result nn::pia::transport::ThreadStreamManager::SetSendThreadLatencyEmulation ( int32_t  minLatency,
int32_t  maxLatency 
)

送信レイテンシエミュレーション時間を設定します。

送信レイテンシエミュレーション機能は、作成されたパケットを すぐに送信するのではなく、一時的にバッファに保存し、規定の時間が 経過してから保存していたパケットを送信することで実現しています。 そのため、最大遅延時間を大きくする場合は、それに見合ったサイズの バッファを用意しないと、バッファがあふれてしまい、あたかも パケロスが頻発しているかのような症状を示すことがあります。 バッファのサイズ設定については、 Transport::DebugSetting 構造体を参照してください。

引数
[in]minLatency最小遅延時間。単位はミリ秒です。
[in]maxLatency最大遅延時間。単位はミリ秒です。
戻り値
成功すれば、 IsSuccess() が true を返す Result が返されます。
返るエラーの一覧:

ResultInvalidArgument 引数に誤りがあります。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。

ResultInvalidState レイテンシエミュレーション機能が無効の可能性があります。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。

参照
SetReceiveThreadLatencyEmulation, Transport::DebugSetting
Result nn::pia::transport::ThreadStreamManager::SetSendThreadPacketLossRatio ( int32_t  lossPercentage)

送信スレッドがエミュレートするパケロスの確率を設定します。

このパケロスエミュレーション機能を用いると、パケットの送出には 成功したものの、そのパケットが何らかの理由で消失したという状況を エミュレートできます。 引数に 0% 以外の値をを設定すると、送信スレッドはその確率に応じて 送信パケットをドロップし、パケロスをエミュレートします。 デフォルトでは、送信スレッドのパケロス確率は 0% に設定されています。

引数
[in]lossPercentage0 ~ 100 の値を設定します。
戻り値
成功すれば、 IsSuccess() が true を返す Result が返されます。
返るエラーの一覧:

ResultInvalidArgument 引数に誤りがあります。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。

ResultInvalidState パケロスエミュレーション機能が有効に設定されていません。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。

参照
GetSendThreadPacketLossRatio, Transport::SetDebugSetting
void nn::pia::transport::ThreadStreamManager::SetSendThreadPriority ( int32_t  prio)

送信スレッドの優先度を設定します。

通常、送信スレッドの優先度は、アプリケーションが common::Scheduler::Dispatch() を呼び出すスレッドの優先度よりも高くする必要があります。

引数
[in]prio送信スレッドに指定する優先度。この値は、アプリケーションの仕様に応じて調整することを推奨します。
参照
GetSendThreadPriority, common::Scheduler::Dispatch
void nn::pia::transport::ThreadStreamManager::SetSendThreadSleepTimeSpan ( uint32_t  span)

送信スレッドのスリープ期間を設定します。

送信スレッドは定期的にスリープします。このスリープ期間を設定する関数です。

引数
[in]span送信スレッドがスリープする期間。単位はミリ秒。この値は、アプリケーションの仕様に応じて調整することを推奨します。
参照
GetSendThreadSleepTimeSpan
virtual void nn::pia::transport::ThreadStreamManager::Trace ( uint64_t  flag) const
virtual

デバッグに有用な情報をプリントします。

引数
[in]flagトレースフラグの論理和。詳細はTraceFlag 型を参照してください。