CTR NEX API Reference
nn::nex::DirectTransport クラスabstract

複製オブジェクトを使用しない単純な送受信(ダイレクトトランスポート)機能を扱うクラスです。 [詳解]

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

nn::nex::SystemComponentを継承しています。

公開メンバ関数

 DirectTransport ()
 このコンストラクタはアプリケーション側から直接呼び出さないでください。DirectTransportクラスのインスタンスは、システムによって自動的に生成されます。
 
virtual ~DirectTransport ()
 このデストラクタはアプリケーション側から直接呼び出さないでください。DirectTransportクラスのインスタンスは、システムによって自動的に破棄されます。
 
RefCountedObjectAcquireRef ()
 参照カウントを 1 増加させます。
 
void RegisterUserReceiveCallback (PRUDPUserReceiveCallback callback)
 ダイレクトトランスポート機能でデータを受信した際に呼び出されるコールバック関数を登録します。 [詳解]
 
void ReleaseRef ()
 参照カウントを 1 減少させます。0 になるときに自分自身を delete します。
 
qResult SendReliable (StationID destId, qByte *buffer, qUnsignedInt32 size)
 到達保証性のある通信で、宛先で指定したステーションにデータを送信します。 [詳解]
 
qResult SendReliableAll (qByte *buffer, qUnsignedInt32 size)
 到達保証性のある通信で、セッションに参加している全てのステーションにデータを送信します。 [詳解]
 
qResult SendUnreliable (StationID destId, qByte *buffer, qUnsignedInt32 size)
 到達保証性のない通信で、宛先で指定したステーションにデータを送信します。 [詳解]
 
qResult SendUnreliableAll (qByte *buffer, qUnsignedInt32 size)
 到達保証性のない通信で、セッションに参加している全てのステーションにデータを送信します。 [詳解]
 
void UnregisterUserReceiveCallback ()
 登録されている受信コールバック関数を登録解除します。
 

静的公開メンバ関数

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

詳解

複製オブジェクトを使用しない単純な送受信(ダイレクトトランスポート)機能を扱うクラスです。

本機能は互換性維持のために残っています。使用は非推奨となります。 代わりにダイレクトストリーム(DirectStream)を使用してください。

関数詳解

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

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

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

ダイレクトトランスポート機能でデータを受信した際に呼び出されるコールバック関数を登録します。

到達保証の有無に関わらず、他ステーションから送信されたデータが受信コールバックで渡されます。
登録するコールバック関数は以下の仕様に従ってください。

void UserReceiveCallback(StationID sourceId, qByte* buffer, qUnsignedInt32 size)
・sourceId : 送信元ステーションのStationID
・buffer : 受信したデータのポインタ
・size : 受信したデータのサイズ

受信コールバック関数の処理時間が長すぎると受信が安定しなくなる可能性があります。

引数
[in]callbackコールバック関数へのポインタを指定します。
qResult nn::nex::DirectTransport::SendUnreliable ( StationID  destId,
qByte buffer,
qUnsignedInt32  size 
)

到達保証性のない通信で、宛先で指定したステーションにデータを送信します。

StationIDはStation::GetStationID で取得できます。

パケットバッファに空きがない場合PacketBufferFullエラーを返します。 これは一時的にパケットバッファが不足していることを示すエラーであるため、 必要に応じてパケットバッファを増やしてください。パケットバッファの設定については、PacketBufferManager を参照してください。

引数
[in]destId宛先のステーションのStationID。
[in]buffer送信するデータのポインタ。
[in]size送信するデータのサイズ。1250以下となるようにしてください。


戻り値一覧:

QRESULT_SUCCESS 送信に成功した場合

"QRESULT_ERROR(Transport, Unknown)" PRUDPUserProtocol::GetInstance()がNULLの場合

"QRESULT_ERROR(Core, InvalidArgument)" destId が誤っていた場合

"QRESULT_ERROR(Transport, ConnectionFailure)" 宛先Stationとの接続が確立されていなかった場合

"QRESULT_ERROR(Transport, PacketBufferFull)" パケットバッファ枯渇により送信できなかった場合

qResult nn::nex::DirectTransport::SendUnreliableAll ( qByte buffer,
qUnsignedInt32  size 
)

到達保証性のない通信で、セッションに参加している全てのステーションにデータを送信します。

パケットバッファに空きがない場合PacketBufferFullエラーを返します。 これは一時的にパケットバッファが不足していることを示すエラーであるため、 必要に応じてパケットバッファを増やしてください。パケットバッファの設定については、PacketBufferManager を参照してください。

引数
[in]buffer送信するデータのポインタ。
[in]size送信するデータのサイズ。1250以下となるようにしてください。


戻り値一覧:

QRESULT_SUCCESS 送信に成功した場合

"QRESULT_ERROR(Transport, Unknown)" PRUDPUserProtocol::GetInstance()がNULLの場合

"QRESULT_ERROR(Transport, ConnectionFailure)" データの送信に成功したStationが一台も存在しなかった場合

"QRESULT_ERROR(Transport, PacketBufferFull)" パケットバッファ枯渇により送信できなかった場合

qResult nn::nex::DirectTransport::SendReliable ( StationID  destId,
qByte buffer,
qUnsignedInt32  size 
)

到達保証性のある通信で、宛先で指定したステーションにデータを送信します。

StationIDはStation::GetStationID で取得できます。

パケットバッファに空きがない場合PacketBufferFullエラーを返します。 これは一時的にパケットバッファが不足していることを示すエラーであるため、 ディスパッチを行い時間をおいてから再度送信を行ってください。 高頻度でPacketBufferFullが発生する場合は、パケットバッファを増やす対策も行ってください。 パケットバッファの設定については、PacketBufferManager を参照してください。

引数
[in]destId宛先のステーションのStationID。
[in]buffer送信するデータのポインタ。
[in]size送信するデータのサイズ。


戻り値一覧:

QRESULT_SUCCESS 送信に成功した場合

"QRESULT_ERROR(Transport, Unknown)" PRUDPUserProtocol::GetInstance()がNULLの場合

"QRESULT_ERROR(Core, InvalidArgument)" destId が誤っていた場合

"QRESULT_ERROR(Transport, ConnectionFailure)" 宛先Stationとの接続が確立されていなかった場合

"QRESULT_ERROR(Transport, PacketBufferFull)" パケットバッファ枯渇により送信できなかった場合

qResult nn::nex::DirectTransport::SendReliableAll ( qByte buffer,
qUnsignedInt32  size 
)

到達保証性のある通信で、セッションに参加している全てのステーションにデータを送信します。

パケットバッファに空きがない場合PacketBufferFullエラーを返します。 これは一時的にパケットバッファが不足していることを示すエラーであるため、 ディスパッチを行い時間をおいてから再度送信を行ってください。 高頻度でPacketBufferFullが発生する場合は、パケットバッファを増やす対策も行ってください。 パケットバッファの設定については、PacketBufferManager を参照してください。

引数
[in]buffer送信するデータのポインタ。
[in]size送信するデータのサイズ。


戻り値一覧:

QRESULT_SUCCESS 送信に成功した場合

"QRESULT_ERROR(Transport, Unknown)" PRUDPUserProtocol::GetInstance()がNULLの場合

"QRESULT_ERROR(Transport, ConnectionFailure)" データの送信に成功したStationが一台も存在しなかった場合

"QRESULT_ERROR(Transport, PacketBufferFull)" パケットバッファ枯渇により送信できなかった場合