複製オブジェクトを使用しない単純な送受信(ダイレクトトランスポート)機能を扱うクラスです。 [詳解]
#include <NetZ/src/Core/DOCore/DirectTransport.h>
nn::nex::SystemComponentを継承しています。
公開メンバ関数 | |
DirectTransport () | |
このコンストラクタはアプリケーション側から直接呼び出さないでください。DirectTransportクラスのインスタンスは、システムによって自動的に生成されます。 | |
virtual | ~DirectTransport () |
このデストラクタはアプリケーション側から直接呼び出さないでください。DirectTransportクラスのインスタンスは、システムによって自動的に破棄されます。 | |
RefCountedObject * | AcquireRef () |
参照カウントを 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 DirectTransport * | GetInstance () |
DirectTransportのインスタンスを取得します。 [詳解] | |
複製オブジェクトを使用しない単純な送受信(ダイレクトトランスポート)機能を扱うクラスです。
本機能は互換性維持のために残っています。使用は非推奨となります。 代わりにダイレクトストリーム(DirectStream)を使用してください。
|
static |
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)" パケットバッファ枯渇により送信できなかった場合