CTR-Pia  5.4.3
Game Communication Engine
 全て クラス ネームスペース 関数 変数 型定義 列挙型 列挙型の値 ページ
クラス nn::pia::transport::Transport

transport モジュールの中核的な存在のクラスです。 [詳細]

+ nn::pia::transport::Transportに対する継承グラフ

構成

struct  DebugSetting
 SetDebugSetting() に渡すパラメータをまとめた構造体です。 [詳細]
 
struct  Setting
 CreateInstance() に各種パラメータを渡すための構造体です。 [詳細]
 

Public メソッド

Result CheckTransportStatus () const
 Transport の状態をチェックし、送受信処理などが実行できる状態であるかどうかを判定します。
 
Result ConvertToStationId (StationId *pId, StationIndex idx) const
 StationIndex を StationId に変換します。
 
Result ConvertToStationIndex (StationIndex *pIdx, StationId id) const
 StationId を StationIndex に変換します。
 
template<typename T >
uint32_t CreateProtocol (uint16_t port=0)
 T型のプロトコルのインスタンスを生成します。
 
void DestroyProtocol (uint32_t protocolHandle)
 プロトコルのインスタンスを破棄します。
 
void DisableKeepAlive (void)
 キープアライブ処理を無効にします。
 
void EnableKeepAlive (void)
 キープアライブ処理を有効にします。
 
Result GetHostStationConnectionInfo (StationConnectionInfo *pInfoOut)
 セッションホストを示すアドレス(StationConnectionInfo )を取得します。
 
int32_t GetKeepAliveInterval (void) const
 キープアライブパケット送信間隔を取得します。
 
Result GetLocalStationConnectionInfo (StationConnectionInfo *pInfoOut)
 自分自身を示すアドレス(StationConnectionInfo )を取得します。
 
uint16_t GetMaxStationNum (void) const
 CreateInstance() 時に設定された、接続可能な最大 Station 数を返します。
 
template<typename T >
T * GetProtocol (uint32_t protocolHandle)
 T型のプロトコルのインスタンスを取得します。
 
bool IsKeepAliveEnabled (void) const
 キープアライブ処理が有効か無効であるかを返します。
 
virtual void Trace (uint64_t flag) const
 デバッグに有用な情報をプリントします。
 

Static Public メソッド

static Result CreateInstance (const Transport::Setting &setting)
 Transport クラスのインスタンスを作成します(シングルトンパターン)。
 
static void DestroyInstance (void)
 Transport クラスのインスタンスを破棄します(シングルトンパターン)。 インスタンスが存在していなかった場合は、何もしません。
 
static TransportGetInstance (void)
 Transport クラスのインスタンスを得ます(シングルトンパターン)。 事前に CreateInstance() によってインスタンスを作成していない場合は、 NULL ポインタが返されます。 この関数はスレッドセーフです。
 
static Result SetDebugSetting (const struct DebugSetting &setting)
 デバッグ用の機能を有効にします。
 

説明

transport モジュールの中核的な存在のクラスです。

関数

Result nn::pia::transport::Transport::CheckTransportStatus ( ) const
inline

Transport の状態をチェックし、送受信処理などが実行できる状態であるかどうかを判定します。

戻り値
session モジュールのセットアップが完了しており、各種の API を問題なく呼び出せる状態であれば、 IsSuccess() が true を返す Result が返されます。
返るエラーの一覧:

ResultInvalidState session モジュールのセットアップが完了していません。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。

ResultTemporaryUnavailable セッション移行処理中のため、一時的に API を利用できない状態です。ジョイントセッション機能使用時にのみ返ります。アプリケーションで適切にハンドリングしてください。

参照
ConvertToStationIndex, ConvertToStationId
Result nn::pia::transport::Transport::ConvertToStationId ( StationId pId,
StationIndex  idx 
) const

StationIndex を StationId に変換します。

自ステーションがセッションに参加していない状態であったり、ジョイントセッション処理中に この API を呼び出した場合は失敗の Result が返されます。

EVENT_JOIN, EVENT_LEAVE イベントが通知される、セッションの状態変化イベントコールバック内で この関数を呼び出すことは可能です。

この関数はセッション API 使用時とメッシュ API 使用時とで挙動が異なります。 メッシュ API 使用時は、メッシュ未参加の StationIndex を指定した場合でも変換に成功します。

引数
[out]pId変換した StationId の格納先を示すポインタ
[in]idx変換する StationIndex
戻り値
成功すれば、 IsSuccess() が true を返す Result が返されます。
返るエラーの一覧:

ResultInvalidArgument 引数に誤りがあります。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。

ResultInvalidState 変換処理を実行できる状態ではありません。session のセットアップが完了していない可能性があります。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。

ResultNotFound 指定した StationIndex のステーションはセッションに参加していません。アプリケーションで適切にハンドリングしてください。

ResultTemporaryUnavailable セッション移行処理中のため、一時的に API を利用できない状態です。ジョイントセッション機能使用時にのみ返ります。アプリケーションで適切にハンドリングしてください。

参照
ConvertToStationIndex, session::Session::SessionEventCallback
Result nn::pia::transport::Transport::ConvertToStationIndex ( StationIndex pIdx,
StationId  id 
) const

StationId を StationIndex に変換します。

自ステーションがセッションに参加していない状態であったり、ジョイントセッション処理中に この API を呼び出した場合は失敗の Result が返されます。

EVENT_JOIN, EVENT_LEAVE イベントが通知される、セッションの状態変化イベントコールバック内で この関数を呼び出すことは可能です。

この関数はセッション API 使用時とメッシュ API 使用時とで挙動が異なります。 メッシュ API 使用時は、メッシュ未参加の StationId を指定した場合でも変換に成功します。

引数
[out]pIdx変換した StationIndex の格納先を示すポインタ
[in]id変換する StationId
戻り値
成功すれば、 IsSuccess() が true を返す Result が返されます。
返るエラーの一覧:

ResultInvalidArgument 引数に誤りがあります。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。

ResultInvalidState 変換処理を実行できる状態ではありません。session のセットアップが完了していない可能性があります。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。

ResultNotFound 指定した StationId のステーションはセッションに参加していません。アプリケーションで適切にハンドリングしてください。

ResultTemporaryUnavailable セッション移行処理中のため、一時的に API を利用できない状態です。ジョイントセッション機能使用時にのみ返ります。アプリケーションで適切にハンドリングしてください。

参照
ConvertToStationId, session::Session::SessionEventCallback
static Result nn::pia::transport::Transport::CreateInstance ( const Transport::Setting setting)
static

Transport クラスのインスタンスを作成します(シングルトンパターン)。

引数
[in]setting各種パラメータが書き込まれた Setting 構造体。
戻り値
インスタンスの作成に成功すれば、成功の Result が返されます。この関数がエラーを返さないようにアプリケーションを実装する必要があります。
返るエラーの一覧:

ResultNotInitialized transport モジュールが未初期化です。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。

ResultInvalidState CreateInstance() を呼ぶタイミングが誤っています。 BeginSetup()EndSetup() 間で呼び出す必要があります。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。

ResultAlreadyExists 既にインスタンスは作成されています。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。

ResultInvalidArgument 引数が誤っています。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。

ResultAllocationFailed 内部でメモリ確保に失敗しました。 common::Initialize() で Pia に供給するメモリを増やすか、よりメモリ消費量の少ないパラメータ設定を試す必要があります。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。

参照
DestroyInstance, GetInstance, Setting
template<typename T >
uint32_t nn::pia::transport::Transport::CreateProtocol ( uint16_t  port = 0)
inline

T型のプロトコルのインスタンスを生成します。

Template Parameters
Tプロトコルの型を指定します。
引数
[in]portプロトコルのポートの値です。
戻り値
生成したプロトコルのハンドルです。同じプロトコル ID のものが既にある場合は 0 を返します。
参照
DestroyProtocol, GetProtocol
static void nn::pia::transport::Transport::DestroyInstance ( void  )
static

Transport クラスのインスタンスを破棄します(シングルトンパターン)。 インスタンスが存在していなかった場合は、何もしません。

参照
CreateInstance, GetInstance
void nn::pia::transport::Transport::DestroyProtocol ( uint32_t  protocolHandle)
inline

プロトコルのインスタンスを破棄します。

引数
[in]protocolHandle削除したいプロトコルのハンドルです。
参照
CreateProtocol, GetProtocol
void nn::pia::transport::Transport::DisableKeepAlive ( void  )

キープアライブ処理を無効にします。

参照
EnableKeepAlive, IsKeepAliveEnabled
void nn::pia::transport::Transport::EnableKeepAlive ( void  )

キープアライブ処理を有効にします。

参照
DisableKeepAlive, IsKeepAliveEnabled
Result nn::pia::transport::Transport::GetHostStationConnectionInfo ( StationConnectionInfo pInfoOut)

セッションホストを示すアドレス(StationConnectionInfo )を取得します。

ネットワークに接続できていない状態では、取得できるアドレスは不定となります。

引数
[out]pInfoOut取得したセッションホストを示すアドレスの格納先を示すポインタ
戻り値
成功すれば、 IsSuccess() が true を返す Result が返されます。この関数がエラーを返さないようにアプリケーションを実装する必要があります。
返るエラーの一覧:
ResultInvalidArgument 引数に誤りがあります。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
参照
GetLocalStationConnectionInfo
static Transport* nn::pia::transport::Transport::GetInstance ( void  )
inlinestatic

Transport クラスのインスタンスを得ます(シングルトンパターン)。 事前に CreateInstance() によってインスタンスを作成していない場合は、 NULL ポインタが返されます。 この関数はスレッドセーフです。

戻り値
Transport インスタンスへのポインタ。
参照
CreateInstance, DestroyInstance
int32_t nn::pia::transport::Transport::GetKeepAliveInterval ( void  ) const

キープアライブパケット送信間隔を取得します。

この関数はスレッドセーフです。

戻り値
キープアライブパケット送信間隔。単位はミリ秒。
参照
SetKeepAliveInterval
Result nn::pia::transport::Transport::GetLocalStationConnectionInfo ( StationConnectionInfo pInfoOut)

自分自身を示すアドレス(StationConnectionInfo )を取得します。

ネットワークに接続できていない状態では、取得できるアドレスは不定となります。

引数
[out]pInfoOut取得した自分自身を示すアドレスの格納先を示すポインタ
戻り値
成功すれば、 IsSuccess() が true を返す Result が返されます。この関数がエラーを返さないようにアプリケーションを実装する必要があります。
返るエラーの一覧:
ResultInvalidArgument 引数に誤りがあります。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
参照
GetHostStationConnectionInfo
uint16_t nn::pia::transport::Transport::GetMaxStationNum ( void  ) const
inline

CreateInstance() 時に設定された、接続可能な最大 Station 数を返します。

この関数はスレッドセーフです。

戻り値
接続可能な最大 Station 数。
参照
CreateInstance
template<typename T >
T* nn::pia::transport::Transport::GetProtocol ( uint32_t  protocolHandle)
inline

T型のプロトコルのインスタンスを取得します。

Template Parameters
Tプロトコルの型を指定します。
引数
[in]protocolHandle取得したいプロトコルのハンドルです。
戻り値
プロトコルのインスタンスのアドレスです。指定されたハンドルのプロトコルが存在しなかったり、T型でなかったりした場合は NULL を返します。
参照
CreateProtocol, DestroyProtocol
bool nn::pia::transport::Transport::IsKeepAliveEnabled ( void  ) const

キープアライブ処理が有効か無効であるかを返します。

この関数はスレッドセーフです。

戻り値
有効であれば true 、無効であれば false が返ります。
参照
EnableKeepAlive, DisableKeepAlive
static Result nn::pia::transport::Transport::SetDebugSetting ( const struct DebugSetting setting)
static

デバッグ用の機能を有効にします。

引数で設定した内容で、デバッグ用機能を有効にします。 この API を製品版 ROM で呼び出してはなりません。

この API を使用する際は、Transport::CreateInstance() 呼び出しよりも 前に呼び出す必要があります。

戻り値
成功すれば、 IsSuccess()が true を返す Result が返されます。
返るエラーの一覧:
ResultInvalidState この API を呼び出すタイミングが誤っています。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
virtual void nn::pia::transport::Transport::Trace ( uint64_t  flag) const
virtual

デバッグに有用な情報をプリントします。

引数
[in]flagトレースフラグの論理和。詳細は TraceFlag 型を参照してください。