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

メッセージバンドル機能を制御します。 [詳解]

#include <NetZ/src/Core/DOCore/BundlingPolicy.h>

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

公開メンバ関数

 BundlingPolicy ()
 このコンストラクタはアプリケーション側から呼び出さないでください。 [詳解]
 
virtual ~BundlingPolicy ()
 このデストラクタはアプリケーション側から呼び出さないでください。 [詳解]
 
void Disable ()
 メッセージバンドル機能を無効にします。 [詳解]
 
void Enable ()
 メッセージバンドル機能を有効にします。 [詳解]
 
TimeInterval GetMaximumFlushDelay () const
 最大遅延時間をミリ秒単位で取得します。 [詳解]
 
qBool IsEnabled () const
 メッセージバンドル機能が有効になっているかどうかを取得します。
[詳解]
 
qBool IsEnableUnreliableBundling ()
 Unreliableメッセージをバンドリングするかを取得します。 [詳解]
 
void SetEnableUnreliableBundling (qBool b)
 Unreliableメッセージをバンドリングするか指定します。 [詳解]
 
void SetMaximumFlushDelay (TimeInterval tiDelay)
 ためられたメッセージを送信するための遅延時間(送信まで どのぐらい待つか)を指定します。 [詳解]
 

静的公開メンバ関数

static BundlingPolicyGetInstance ()
 BundlingPolicyのインスタンスを取得します。 [詳解]
 

詳解

メッセージバンドル機能を制御します。

メッセージバンドルを利用することによってネットワーク帯域幅を節約することが出来ます。 このクラスは、メッセージが送信される前にどのようにバンドルされていくかを制御します。 ローカルのステーションでは、メッセージバンドルはすでにローカルステーションによって存在が確認された ネットワーク越しの各ステーションごとに作成されます。 すべてのメッセージは相手先のステーションに送信される前に、それぞれのメッセージバンドルバッファにためられます。 ただし、DirectTransport/DirectStream経由のメッセージはためられません。

メッセージバンドルは自動的にか、あるいは手動で送信されます。メッセージバンドルが自動的に 送信される場合、送信頻度はSetMaximumFlushDelay() にて設定された最大時間を経過するか 最大のメッセージサイズに達するかで決定されます。 これらのいずれか、あるいは両方の条件を満たした場合、メッセージバンドルは相手先のステーションに向けて送信されます。 一方、手動でメッセージバンドルを送信する場合は、Station::FlushBundle() か、 Station::FlushAllBundles() を利用することで送信することが出来ます。 これら二つの関数はメッセージの最大サイズや、前回送信してからの経過時刻などの設定に関係なく送信されます。

規定値は、有効で、最大遅延時間は0で、Dispatchごとにバンドリングされて送信されます。

メッセージが、全員に送られるUnreliable(到着性を保証しない)メッセージと、Reliable(到着性を保証する)メッセージの場合で、 異なるキューに溜められてバンドリングされます。個別に送られるUnreliableメッセージは、バンドリングされません。

システム定義のReliableメッセージは、特にDOのDuplica同期時に多く生成されます。 ユーザー定義のReliableメッセージは、Reliableで更新することを指定したデータセット、 推定航法の連続性の切断(DataSet::IndicateContinuityBreak())、 CallContext::Flags の中にあるSendUnreliableMessageフラグのついていないRMC(リモートメソッドコール)が挙げられます。

メッセージバンドルについての詳細はNEXプログラミングマニュアルもご覧ください。

構築子と解体子

nn::nex::BundlingPolicy::BundlingPolicy ( )

このコンストラクタはアプリケーション側から呼び出さないでください。

このインスタンスは、ローカルのステーションが相手のステーションを発見されるたびに システムによって自動的に作成されます。BunldingPolicyを利用するためには、 GetInstance() メソッドによってインスタンスを取得してください。

virtual nn::nex::BundlingPolicy::~BundlingPolicy ( )
virtual

このデストラクタはアプリケーション側から呼び出さないでください。

このオブジェクトは、相手先のステーションとの接続が切れたとき、 あるいはセッションが終了したときに自動的に破棄されます。

関数詳解

static BundlingPolicy* nn::nex::BundlingPolicy::GetInstance ( )
static

BundlingPolicyのインスタンスを取得します。

この関数を利用して取得したインスタンスをメッセージバンドルを制御するために利用してください。

戻り値
BundlingPolicyオブジェクトへのポインタが返ります。
void nn::nex::BundlingPolicy::Enable ( )

メッセージバンドル機能を有効にします。

メッセージバンドル機能はデフォルトで有効になっています。 この関数を利用することでメッセージバンドル機能を有効にすることが出来ます。 この関数は実行中に呼び出して動的に有効 / 無効を変更することが出来ます。

参照
Disable, IsEnabled
void nn::nex::BundlingPolicy::Disable ( )

メッセージバンドル機能を無効にします。

メッセージバンドル機能はデフォルトで有効になっています。 この関数を利用することでメッセージバンドル機能を有効にすることが出来ます。 この関数は実行中に呼び出して動的に有効 / 無効を変更することが出来ます。

参照
Enable, IsEnabled
qBool nn::nex::BundlingPolicy::IsEnabled ( ) const

メッセージバンドル機能が有効になっているかどうかを取得します。

戻り値一覧:

true メッセージバンドルが有効になっています(デフォルト状態ではメッセージバンドルは有効です)。

false メッセージバンドルが無効になっています。

参照
Enable, Disable
void nn::nex::BundlingPolicy::SetMaximumFlushDelay ( TimeInterval  tiDelay)

ためられたメッセージを送信するための遅延時間(送信まで どのぐらい待つか)を指定します。

遅延時間が過ぎるまで、送信されようとしたメッセージはすべて内部的にためられ、送信されません。 この遅延時間が経過したあと、溜められたメッセージはバンドリングされ、次回Dispatch時に実際に送信されます。 その際には、StreamBundlingによるパケットのバンドリングがフラッシュされます。

0の場合には、Dispatchの終わりに行われるパケット送信処理直前までためられてバンドリングされます。 また、StreamBundlingによるパケットのバンドリングをフラッシュしないため、パケットのバンドリングとの併用も可能です。

引数
tiDelay[in] 最大遅延時間をミリ秒単位で指定します。0の場合は、Dispatchの終わりに行われるパケット送信処理直前までためられます。 規定値は、0です。
参照
GetMaximumFlushDelay
TimeInterval nn::nex::BundlingPolicy::GetMaximumFlushDelay ( ) const

最大遅延時間をミリ秒単位で取得します。

遅延時間が過ぎるまで、送信されようとしたメッセージはすべて内部的にためられ、送信されません。 この遅延時間が経過したあと、それらのバンドルされたメッセージは一度に送信されます。

この関数は、SetMaximumFlushDelay() で指定された値を返します。

戻り値
最大遅延時間がミリ秒単位で返ります。
参照
SetMaximumFlushDelay
void nn::nex::BundlingPolicy::SetEnableUnreliableBundling ( qBool  b)

Unreliableメッセージをバンドリングするか指定します。

引数
[in]bバンドリングの設定フラグ
qBool nn::nex::BundlingPolicy::IsEnableUnreliableBundling ( )

Unreliableメッセージをバンドリングするかを取得します。

デフォルトではTrueです。

戻り値
バンドリングの設定フラグ