CTR-Pia
5.4.3
Game Communication Engine
|
送受信スレッドを統括するクラスです。 [詳細]
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 ThreadStreamManager * | GetInstance (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() で取得できる、 受信に成功したデータ量のカウンタをゼロにクリアします。
void nn::pia::transport::ThreadStreamManager::ClearReceiveThreadReceivePacketNum | ( | void | ) |
受信パケット数カウンタをクリアします。
GetReceiveThreadReceivePacketNum() で取得できる、 受信に成功したパケット数のカウンタをゼロにクリアします。
void nn::pia::transport::ThreadStreamManager::ClearSendThreadSendDataSize | ( | void | ) |
送信データ量カウンタをクリアします。
GetSendThreadSendDataSize() で取得できる、 送信を試みたデータ量のカウンタをゼロにクリアします。
void nn::pia::transport::ThreadStreamManager::ClearSendThreadSendPacketNum | ( | void | ) |
送信パケット数カウンタをクリアします。
GetSendThreadSendPacketNum() で取得できる、 送信を試みたパケット数のカウンタをゼロにクリアします。
|
inlinestatic |
ThreadStreamManager クラスのインスタンスを得ます(シングルトンパターン)。
事前にインスタンスが作成されていなかった場合には、 NULL ポインタが返されます。
int32_t nn::pia::transport::ThreadStreamManager::GetReceiveThreadPacketLossRatio | ( | void | ) | const |
受信スレッドがエミュレートするパケロスの確率を取得します。
int32_t nn::pia::transport::ThreadStreamManager::GetReceiveThreadPriority | ( | void | ) | const |
uint64_t nn::pia::transport::ThreadStreamManager::GetReceiveThreadReceiveDataSize | ( | void | ) | const |
受信スレッドが受信に成功したデータの総量を得ます。
受信スレッドは、受信に成功したデータ量をカウントアップしています。 そのカウンタの値が返されます。
uint32_t nn::pia::transport::ThreadStreamManager::GetReceiveThreadReceivePacketNum | ( | void | ) | const |
受信スレッドがパケットの受信に成功した回数を得ます。
受信スレッドは、受信に成功したパケットの数をカウントしています。 そのカウンタの値が返されます。
uint32_t nn::pia::transport::ThreadStreamManager::GetReceiveThreadSleepTimeSpan | ( | void | ) | const |
int32_t nn::pia::transport::ThreadStreamManager::GetSendThreadPacketLossRatio | ( | void | ) | const |
送信スレッドがエミュレートするパケロスの確率を取得します。
int32_t nn::pia::transport::ThreadStreamManager::GetSendThreadPriority | ( | void | ) | const |
uint64_t nn::pia::transport::ThreadStreamManager::GetSendThreadSendDataSize | ( | void | ) | const |
送信スレッドが送信を試みたデータの総量を得ます。
送信スレッドは、送信を試みたデータ量をカウントアップしています。 そのカウンタの値が返されます。
uint32_t nn::pia::transport::ThreadStreamManager::GetSendThreadSendPacketNum | ( | void | ) | const |
送信スレッドがパケットの送信を試みた回数を得ます。
送信スレッドは、送信を試みたパケットの数をカウントしています。 そのカウンタの値が返されます。
uint32_t nn::pia::transport::ThreadStreamManager::GetSendThreadSleepTimeSpan | ( | void | ) | const |
Result nn::pia::transport::ThreadStreamManager::SetReceiveThreadLatencyEmulation | ( | int32_t | minLatency, |
int32_t | maxLatency | ||
) |
受信レイテンシエミュレーション時間を設定します。
受信レイテンシエミュレーション機能は、受信したパケットを すぐに上位層に渡すのではなく、一時的にバッファに保存し、規定の時間が 経過してから保存していたパケットを上位層に渡すことで実現しています。 そのため、最大遅延時間を大きくする場合は、それに見合ったサイズの バッファを用意しないと、バッファがあふれてしまい、あたかも パケロスが頻発しているかのような症状を示すことがあります。 バッファのサイズ設定については、 Transport::DebugSetting 構造体を参照してください。
[in] | minLatency | 最小遅延時間。単位はミリ秒です。 |
[in] | maxLatency | 最大遅延時間。単位はミリ秒です。 |
ResultInvalidArgument 引数に誤りがあります。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
ResultInvalidState レイテンシエミュレーション機能が無効の可能性があります。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
Result nn::pia::transport::ThreadStreamManager::SetReceiveThreadPacketLossRatio | ( | int32_t | lossPercentage | ) |
受信スレッドがエミュレートするパケロスの確率を設定します。
このパケロスエミュレーション機能を用いると、こちらに向けて送出された パケットが何らかの理由で消失したという状況をエミュレートできます。 引数に 0% 以外の値をを設定すると、受信スレッドはその確率に応じて 受信パケットをドロップし、パケロスをエミュレートします。 デフォルトでは、受信スレッドのパケロス確率は 0% に設定されています。
[in] | lossPercentage | 0 ~ 100 の値を設定します。 |
ResultInvalidArgument 引数に誤りがあります。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
ResultInvalidState パケロスエミュレーション機能が有効に設定されていません。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
void nn::pia::transport::ThreadStreamManager::SetReceiveThreadPriority | ( | int32_t | prio | ) |
受信スレッドの優先度を設定します。
通常、受信スレッドの優先度は、アプリケーションが common::Scheduler::Dispatch() を呼び出すスレッドの優先度よりも高くする必要があります。
[in] | prio | 受信スレッドに指定する優先度。この値は、アプリケーションの仕様に応じて調整することを推奨します。 |
void nn::pia::transport::ThreadStreamManager::SetReceiveThreadSleepTimeSpan | ( | uint32_t | span | ) |
受信スレッドのスリープ期間を設定します。
受信スレッドは定期的にスリープします。このスリープ期間を設定する関数です。
[in] | span | 受信スレッドがスリープする期間。単位はミリ秒。この値は、アプリケーションの仕様に応じて調整することを推奨します。 |
Result nn::pia::transport::ThreadStreamManager::SetSendThreadLatencyEmulation | ( | int32_t | minLatency, |
int32_t | maxLatency | ||
) |
送信レイテンシエミュレーション時間を設定します。
送信レイテンシエミュレーション機能は、作成されたパケットを すぐに送信するのではなく、一時的にバッファに保存し、規定の時間が 経過してから保存していたパケットを送信することで実現しています。 そのため、最大遅延時間を大きくする場合は、それに見合ったサイズの バッファを用意しないと、バッファがあふれてしまい、あたかも パケロスが頻発しているかのような症状を示すことがあります。 バッファのサイズ設定については、 Transport::DebugSetting 構造体を参照してください。
[in] | minLatency | 最小遅延時間。単位はミリ秒です。 |
[in] | maxLatency | 最大遅延時間。単位はミリ秒です。 |
ResultInvalidArgument 引数に誤りがあります。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
ResultInvalidState レイテンシエミュレーション機能が無効の可能性があります。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
Result nn::pia::transport::ThreadStreamManager::SetSendThreadPacketLossRatio | ( | int32_t | lossPercentage | ) |
送信スレッドがエミュレートするパケロスの確率を設定します。
このパケロスエミュレーション機能を用いると、パケットの送出には 成功したものの、そのパケットが何らかの理由で消失したという状況を エミュレートできます。 引数に 0% 以外の値をを設定すると、送信スレッドはその確率に応じて 送信パケットをドロップし、パケロスをエミュレートします。 デフォルトでは、送信スレッドのパケロス確率は 0% に設定されています。
[in] | lossPercentage | 0 ~ 100 の値を設定します。 |
ResultInvalidArgument 引数に誤りがあります。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
ResultInvalidState パケロスエミュレーション機能が有効に設定されていません。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
void nn::pia::transport::ThreadStreamManager::SetSendThreadPriority | ( | int32_t | prio | ) |
送信スレッドの優先度を設定します。
通常、送信スレッドの優先度は、アプリケーションが common::Scheduler::Dispatch() を呼び出すスレッドの優先度よりも高くする必要があります。
[in] | prio | 送信スレッドに指定する優先度。この値は、アプリケーションの仕様に応じて調整することを推奨します。 |
void nn::pia::transport::ThreadStreamManager::SetSendThreadSleepTimeSpan | ( | uint32_t | span | ) |
送信スレッドのスリープ期間を設定します。
送信スレッドは定期的にスリープします。このスリープ期間を設定する関数です。
[in] | span | 送信スレッドがスリープする期間。単位はミリ秒。この値は、アプリケーションの仕様に応じて調整することを推奨します。 |
|
virtual |
デバッグに有用な情報をプリントします。
[in] | flag | トレースフラグの論理和。詳細はTraceFlag 型を参照してください。 |