ストリームのトランスポート設定をカプセル化したクラスです。 [詳解]
#include <OnlineCore/src/Transport/Interface/StreamSettings.h>
公開メンバ関数 | |
StreamBundling & | GetBundling () |
ストリームごとのパケットバンドリング設定を取得します。 [詳解] | |
size_t | GetEncryptionKeyLength () |
暗号化キーのサイズを取得します。 [詳解] | |
const void * | GetEncryptionKeyPaylod () |
暗号化キーを取得します。 [詳解] | |
qUnsignedInt32 | GetKeepAliveTimeout () const |
キープアライブタイムアウト値を取得します。 [詳解] | |
size_t | GetMaxRetransmission () const |
現時点でのパケット再送回数の最大値を取得します。 [詳解] | |
qUnsignedInt32 | GetMaxSilenceTime () const |
沈黙時間の最大値を取得します(単位はミリ秒)。 [詳解] | |
qByte | GetMaxUserReliableSubStreams () |
ユーザー用のリライアブルの最大サブストリーム数を取得します。 [詳解] | |
qBool | IsEncryptionRequired () |
暗号化が有効か取得します [詳解] | |
void | SetEncryptionKey (const void *ptr, size_t ptrLen) |
暗号化キーを設定します。 [詳解] | |
void | SetEncryptionKey (const qVector< qByte > &key) |
暗号化キーを設定します。 [詳解] | |
void | SetIsEncryptionRequired (qBool flag) |
暗号化が有効か無効か設定します。 [詳解] | |
qResult | SetKeepAliveTimeout (qUnsignedInt32 uiKeepAliveTimeout) |
キープアライブタイムアウト値を設定します。 [詳解] | |
qResult | SetMaxRetransmission (size_t ui16MaxRetransmission) |
再送回数の最大値を設定します。 [詳解] | |
qResult | SetMaxSilenceTime (qUnsignedInt32 uiMaxSilenceTime) |
沈黙時間の最大値を設定します。 [詳解] | |
void | SetMaxUserReliableSubStreams (qByte subStreamID) |
ユーザー用のリライアブルの最大サブストリーム数を設定します。 [詳解] | |
静的公開変数類 | |
static const std::size_t | MAX_ENCRYPT_KEY_LEN = 32 |
暗号キーの最大サイズです。 | |
static const std::size_t | MIN_ENCRYPT_KEY_LEN = 16 |
暗号キーの最小サイズです。 | |
ストリームのトランスポート設定をカプセル化したクラスです。
Stream::GetSettings() メソッド呼び出しによって、そのストリームに関連づけられた 本クラスのオブジェクトへの参照が得られます。このオブジェクトを利用して、 ストリーム設定にアクセスすることができます。
size_t nn::nex::StreamSettings::GetMaxRetransmission | ( | ) | const |
現時点でのパケット再送回数の最大値を取得します。
ピアステーションがもはや接続されていないと見なされるまでに、 パケットの再送を最大で何度繰り返すかを取得します。
qResult nn::nex::StreamSettings::SetMaxRetransmission | ( | size_t | ui16MaxRetransmission | ) |
再送回数の最大値を設定します。
ステーションに向けて送られるパケットが再送される回数の最大値を設定します。 再送回数が最大値を超えると、もはやステーションは接続されていないと見なされます。 沈黙時間の最大値と、再送回数の最大値に大きな値を設定すれば、 品質の良くないネットワーク環境での耐性を高めることができます。 逆に小さな値を設定すれば、障害を検出するまで時間を短縮できます。
[in] | ui16MaxRetransmission | 再送回数の最大値。 |
qUnsignedInt32 nn::nex::StreamSettings::GetKeepAliveTimeout | ( | ) | const |
qResult nn::nex::StreamSettings::SetKeepAliveTimeout | ( | qUnsignedInt32 | uiKeepAliveTimeout | ) |
キープアライブタイムアウト値を設定します。
キープアライブは、自分以外のステーションにパケットを送り、自分の ステーションがまだ機能している(生存している)ことを知らせるために用いられます。 これは障害検出メカニズムの一部です。 キープアライブタイムアウト値の間、パケットの送信していないステーションに キープアライブパケットを送ります。 一方、 GetMaxSilenceTime()間連続して一切のパケット受信がない場合に、そのステーションが接続されていないと判断されます。 このメソッドは、NetZ または NgsFacade のオブジェクトをインスタンス化する前に呼び出して下さい。
デフォルト値は、1000ミリ秒です。
[in] | uiKeepAliveTimeout | キープアライブタイムアウト値(単位はミリ秒) |
qUnsignedInt32 nn::nex::StreamSettings::GetMaxSilenceTime | ( | ) | const |
qResult nn::nex::StreamSettings::SetMaxSilenceTime | ( | qUnsignedInt32 | uiMaxSilenceTime | ) |
沈黙時間の最大値を設定します。
あるステーションから到着するはずのパケットが、最大沈黙時間を経過しても 届かなかった場合、そのステーションはもはや接続されていないと見なします。 正常状態であれば、最後にパケットを送信してから GetKeepAliveTimeout()間経つとキープアライブパケットを送られます。
沈黙時間の最大値と、再送回数の最大値に大きな値を設定すれば、 品質の良くないネットワーク環境での耐性を高めることができます。 逆に小さな値を設定すれば、障害を検出するまで時間を短縮できます。
デフォルト値は、10000ミリ秒です。
このメソッドは、NetZ または NgsFacade のオブジェクトをインスタンス化する前に呼び出して下さい。
[in] | uiMaxSilenceTime | 沈黙時間の最大値。単位はミリ秒です。 |
void nn::nex::StreamSettings::SetEncryptionKey | ( | const void * | ptr, |
size_t | ptrLen | ||
) |
暗号化キーを設定します。
暗号化を利用する際には、 NetZで Session::JoinSession() もしくは、 Session::CreateSession() する前に、 Stream::GetSettings().SetIsEncryptionRequired(true); として、 Stream::GetSettings().SetEncryptionKey() で鍵を設定します。 また、解除する場合には、 NetZ::Terminate() 処理完了後にしてください。 正しい区間以外での操作は、アサートエラーが発生するか、設定に失敗します。
ptr | 暗号化キーの先頭ポインタ |
ptrLen | 暗号化キーのサイズ |
キーは、MIN_ENCRYPT_KEY_LEN バイトから MAX_ENCRYPT_KEY_LEN バイトまで設定可能です。
暗号化キーを設定します。
暗号化を利用する際には、 NetZで Session::JoinSession() もしくは、 Session::CreateSession() する前に、 Stream::GetSettings().SetIsEncryptionRequired(true); として、 Stream::GetSettings().SetEncryptionKey() で鍵を設定します。 また、解除する場合には、 NetZ::Terminate() 処理完了後にしてください。 正しい区間以外での操作は、アサートエラーが発生するか、設定に失敗します。
key | 暗号化キー |
キーは、MIN_ENCRYPT_KEY_LEN バイトから MAX_ENCRYPT_KEY_LEN バイトまで設定可能です。
const void* nn::nex::StreamSettings::GetEncryptionKeyPaylod | ( | ) |
size_t nn::nex::StreamSettings::GetEncryptionKeyLength | ( | ) |
qBool nn::nex::StreamSettings::IsEncryptionRequired | ( | ) |
void nn::nex::StreamSettings::SetIsEncryptionRequired | ( | qBool | flag | ) |
暗号化が有効か無効か設定します。
[in] | flag | true 有効 false 無効 |
暗号化を利用する際には、 NetZで Session::JoinSession() もしくは、 Session::CreateSession() する前に、 Stream::GetSettings().SetIsEncryptionRequired(true); として、 Stream::GetSettings().SetEncryptionKey() で鍵を設定します。 また、解除する場合には、 NetZ::Terminate() 処理完了後にしてください。 正しい区間以外での操作は、アサートエラーが発生するか、設定に失敗します。
鍵を設定せずに動作をさせることはできません。
qByte nn::nex::StreamSettings::GetMaxUserReliableSubStreams | ( | ) |
ユーザー用のリライアブルの最大サブストリーム数を取得します。
システムとの共用が一本あり、それとは別にユーザーデータ用のリライアブルが何本あるかを取得します。
void nn::nex::StreamSettings::SetMaxUserReliableSubStreams | ( | qByte | subStreamID | ) |
ユーザー用のリライアブルの最大サブストリーム数を設定します。
システムとの共用が一本あり、それとは別にユーザーデータ用のリライアブルを何本用意するか設定します。 接続段階でネゴシエーションが行われて、小さい方の値に合わせられます。 デフォルトは0です。 255まで設定できますが、メモリ消費量が増えるので、そのあたりを考慮して設定してください。
[in] | subStreamID | 最大サブストリーム数 |
StreamBundling& nn::nex::StreamSettings::GetBundling | ( | ) |
ストリームごとのパケットバンドリング設定を取得します。