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

ストリームのトランスポート設定をカプセル化したクラスです。 [詳解]

#include <OnlineCore/src/Transport/Interface/StreamSettings.h>

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

公開メンバ関数

StreamBundlingGetBundling ()
 ストリームごとのパケットバンドリング設定を取得します。 [詳解]
 
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() メソッド呼び出しによって、そのストリームに関連づけられた 本クラスのオブジェクトへの参照が得られます。このオブジェクトを利用して、 ストリーム設定にアクセスすることができます。

参照
Stream

関数詳解

size_t nn::nex::StreamSettings::GetMaxRetransmission ( ) const

現時点でのパケット再送回数の最大値を取得します。

ピアステーションがもはや接続されていないと見なされるまでに、 パケットの再送を最大で何度繰り返すかを取得します。

参照
SetMaxRetransmission()
戻り値
再送回数の最大値。
qResult nn::nex::StreamSettings::SetMaxRetransmission ( size_t  ui16MaxRetransmission)

再送回数の最大値を設定します。

ステーションに向けて送られるパケットが再送される回数の最大値を設定します。 再送回数が最大値を超えると、もはやステーションは接続されていないと見なされます。 沈黙時間の最大値と、再送回数の最大値に大きな値を設定すれば、 品質の良くないネットワーク環境での耐性を高めることができます。 逆に小さな値を設定すれば、障害を検出するまで時間を短縮できます。

引数
[in]ui16MaxRetransmission再送回数の最大値。
参照
GetMaxRetransmission(), SetMaxSilenceTime()
戻り値
常に QSUCCESS(Core, Success) が返ります
qUnsignedInt32 nn::nex::StreamSettings::GetKeepAliveTimeout ( ) const

キープアライブタイムアウト値を取得します。

参照
SetKeepAliveTimeout()

デフォルト値は、1000ミリ秒です。

戻り値
キープアライブタイムアウト値(単位はミリ秒)
qResult nn::nex::StreamSettings::SetKeepAliveTimeout ( qUnsignedInt32  uiKeepAliveTimeout)

キープアライブタイムアウト値を設定します。

キープアライブは、自分以外のステーションにパケットを送り、自分の ステーションがまだ機能している(生存している)ことを知らせるために用いられます。 これは障害検出メカニズムの一部です。 キープアライブタイムアウト値の間、パケットの送信していないステーションに キープアライブパケットを送ります。 一方、 GetMaxSilenceTime()間連続して一切のパケット受信がない場合に、そのステーションが接続されていないと判断されます。 このメソッドは、NetZ または NgsFacade のオブジェクトをインスタンス化する前に呼び出して下さい。

デフォルト値は、1000ミリ秒です。

引数
[in]uiKeepAliveTimeoutキープアライブタイムアウト値(単位はミリ秒)
参照
GetKeepAliveTimeout(), SetMaxSilenceTime(), GetMaxSilenceTime()
戻り値
常に QSUCCESS(Core, Success) が返ります。
qUnsignedInt32 nn::nex::StreamSettings::GetMaxSilenceTime ( ) const

沈黙時間の最大値を取得します(単位はミリ秒)。

参照
SetMaxSilenceTime()

デフォルト値は、10000ミリ秒です。

戻り値
沈黙時間の最大値(単位はミリ秒)
qResult nn::nex::StreamSettings::SetMaxSilenceTime ( qUnsignedInt32  uiMaxSilenceTime)

沈黙時間の最大値を設定します。

あるステーションから到着するはずのパケットが、最大沈黙時間を経過しても 届かなかった場合、そのステーションはもはや接続されていないと見なします。 正常状態であれば、最後にパケットを送信してから GetKeepAliveTimeout()間経つとキープアライブパケットを送られます。

沈黙時間の最大値と、再送回数の最大値に大きな値を設定すれば、 品質の良くないネットワーク環境での耐性を高めることができます。 逆に小さな値を設定すれば、障害を検出するまで時間を短縮できます。

デフォルト値は、10000ミリ秒です。

このメソッドは、NetZ または NgsFacade のオブジェクトをインスタンス化する前に呼び出して下さい。

引数
[in]uiMaxSilenceTime沈黙時間の最大値。単位はミリ秒です。
参照
GetMaxSilenceTime() , SetMaxRetransmission() , GetKeepAliveTimeout()
戻り値
常に QSUCCESS(Core, Success) が返ります
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 バイトまで設定可能です。

参照
SetIsEncryptionRequired(), MAX_ENCRYPT_KEY_LEN, MIN_ENCRYPT_KEY_LEN
GetEncryptionKeyPaylod(), GetEncryptionKeyLength()
void nn::nex::StreamSettings::SetEncryptionKey ( const qVector< qByte > &  key)

暗号化キーを設定します。

暗号化を利用する際には、 NetZで Session::JoinSession() もしくは、 Session::CreateSession() する前に、 Stream::GetSettings().SetIsEncryptionRequired(true); として、 Stream::GetSettings().SetEncryptionKey() で鍵を設定します。 また、解除する場合には、 NetZ::Terminate() 処理完了後にしてください。 正しい区間以外での操作は、アサートエラーが発生するか、設定に失敗します。

引数
key暗号化キー

キーは、MIN_ENCRYPT_KEY_LEN バイトから MAX_ENCRYPT_KEY_LEN バイトまで設定可能です。

参照
SetIsEncryptionRequired(), MAX_ENCRYPT_KEY_LEN, MIN_ENCRYPT_KEY_LEN
GetEncryptionKeyPaylod(), GetEncryptionKeyLength()
const void* nn::nex::StreamSettings::GetEncryptionKeyPaylod ( )

暗号化キーを取得します。

戻り値
暗号化キーの先頭ポインタ。設定されていない場合は、NULLが返ります。
参照
SetEncryptionKey(), GetEncryptionKeyLength()
size_t nn::nex::StreamSettings::GetEncryptionKeyLength ( )

暗号化キーのサイズを取得します。

戻り値
暗号化キーのサイズ。設定されていない場合は、0が返ります。
参照
SetEncryptionKey(), GetEncryptionKeyPaylod()
qBool nn::nex::StreamSettings::IsEncryptionRequired ( )

暗号化が有効か取得します


戻り値一覧:

true 暗号化が有効です。

false 暗号化が無効です。(デフォルト値)

参照
SetIsEncryptionRequired()
void nn::nex::StreamSettings::SetIsEncryptionRequired ( qBool  flag)

暗号化が有効か無効か設定します。

引数
[in]flagtrue 有効 false 無効

暗号化を利用する際には、 NetZで Session::JoinSession() もしくは、 Session::CreateSession() する前に、 Stream::GetSettings().SetIsEncryptionRequired(true); として、 Stream::GetSettings().SetEncryptionKey() で鍵を設定します。 また、解除する場合には、 NetZ::Terminate() 処理完了後にしてください。 正しい区間以外での操作は、アサートエラーが発生するか、設定に失敗します。

鍵を設定せずに動作をさせることはできません。

参照
IsEncryptionRequired(), SetEncryptionKey()
qByte nn::nex::StreamSettings::GetMaxUserReliableSubStreams ( )

ユーザー用のリライアブルの最大サブストリーム数を取得します。

システムとの共用が一本あり、それとは別にユーザーデータ用のリライアブルが何本あるかを取得します。

戻り値
最大サブストリーム数
参照
SetMaxUserReliableSubStreams()
void nn::nex::StreamSettings::SetMaxUserReliableSubStreams ( qByte  subStreamID)

ユーザー用のリライアブルの最大サブストリーム数を設定します。

システムとの共用が一本あり、それとは別にユーザーデータ用のリライアブルを何本用意するか設定します。 接続段階でネゴシエーションが行われて、小さい方の値に合わせられます。 デフォルトは0です。 255まで設定できますが、メモリ消費量が増えるので、そのあたりを考慮して設定してください。

引数
[in]subStreamID最大サブストリーム数
参照
GetMaxUserReliableSubStreams(), SubStreamIDDefine
StreamBundling& nn::nex::StreamSettings::GetBundling ( )

ストリームごとのパケットバンドリング設定を取得します。

戻り値
バンドリング設定