CTR-Pia
5.4.3
Game Communication Engine
メインページ
ネームスペース一覧
クラス構成
クラス索引
関連ページ
Result 検索
全て
クラス
ネームスペース
関数
変数
型定義
列挙型
列挙型の値
ページ
inet_Api.h
1
/*--------------------------------------------------------------------------------*
2
Copyright (C)Nintendo All rights reserved.
3
4
These coded instructions, statements, and computer programs contain proprietary
5
information of Nintendo and/or its licensed developers and are protected by
6
national and international copyright laws. They may not be disclosed to third
7
parties or copied or duplicated in any form, in whole or in part, without the
8
prior written consent of Nintendo.
9
10
The content herein is highly confidential and should be handled accordingly.
11
*--------------------------------------------------------------------------------*/
12
13
14
#pragma once
15
16
#include <nn/pia/inet/inet_Definitions.h>
17
#include <nn/pia/transport/transport_StationLocation.h>
18
19
// inet モジュールの非メンバ関数群です。
20
21
namespace
nn
22
{
23
namespace
pia
24
{
25
namespace
inet
26
{
27
28
29
/*!
30
@brief inet モジュールが初期化された状態であるかどうかを返します。
31
32
@return 初期化されていれば true、されていなければ false が返されます。
33
*/
34
bool
IsInitialized
(
void
);
35
36
37
/*!
38
@brief (デバッグ用) @ref inet::SetDebugSetting に渡すデバッグ機能設定用構造体です。
39
*/
40
struct
DebugSetting
41
{
42
DebugSetting
() :
43
natTraversalFailureRatioForHost
(0),
44
natTraversalFailureRatioForClient
(0),
45
isNatTypeCheckFailure
(
false
),
46
isDnsResolutionFailure
(
false
),
47
falsifiedNatTraversalFailureResult
(
ResultNotSet
())
48
{
49
}
50
uint8_t
natTraversalFailureRatioForHost
;
//!< ホストとの NAT トラバーサル処理を失敗させる確率
51
uint8_t
natTraversalFailureRatioForClient
;
//!< クライアントとの NAT トラバーサル処理を失敗させる確率
52
bool
isNatTypeCheckFailure
;
//!< NAT タイプの判定処理を失敗させるかどうか
53
bool
isDnsResolutionFailure
;
//!< NAT タイプの判定処理時に行う DNS 名前解決処理を失敗させるかどうか
54
Result
falsifiedNatTraversalFailureResult
;
//!< NAT トラバーサル処理に失敗した際に返す Result を差し替える Result。ResultSuccess を指定する場合は、NAT トラバーサル失敗時に返る可能性のある Result をランダムに選択して返します。
55
};
56
57
/*!
58
@brief inet モジュールを初期化します。
59
60
@return 無事に初期化が完了すれば、成功の Result が返されます。この関数がエラーを返さないようにアプリケーションを実装する必要があります。
61
62
@retval ResultAlreadyInitialized 既に初期化は終了しています。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
63
64
@see Setting
65
*/
66
Result
Initialize
();
67
68
69
/*!
70
@brief inetモジュールを終了します。
71
*/
72
void
Finalize
(
void
);
73
74
75
/*!
76
@brief セットアップの開始を宣言します。
77
@details inetモジュールのシングルトンなどを作成する前に呼び出す必要があります。
78
アプリケーションが inet モジュールのシングルトンを一つも作成しない場合であっても、
79
このAPIと @ref EndSetup は必ず呼び出す必要があります。
80
81
@return この API を適切なタイミングで呼び出していれば、成功の Result が返されます。この関数がエラーを返さないようにアプリケーションを実装する必要があります。
82
@retval ResultNotInitialized inet モジュールの初期化関数が呼ばれていません。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
83
@retval ResultInvalidState この関数を呼び出すタイミングが誤っています。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
84
*/
85
Result
BeginSetup
(
void
);
86
87
88
/*!
89
@brief セットアップの終了を宣言します。
90
@details inet モジュールのシングルトンなどを作成し終えた後に呼美出す必要があります。
91
この API 呼び出しにより、inet モジュールのシングルトンなどが消費する
92
メモリを確定し、ライブラリ内部でのメモリ管理を最適化します。
93
アプリケーションが inet モジュールのシングルトンを一つも作成しない場合であっても、
94
@ref BeginSetup とこの API は必ず呼び出す必要があります。
95
96
@return この API を適切なタイミングで呼び出していれば、成功の Result が返されます。この関数がエラーを返さないようにアプリケーションを実装する必要があります。
97
@retval ResultNotInitialized inet モジュールの初期化関数が呼ばれていません。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
98
@retval ResultInvalidState この関数を呼び出すタイミングが誤っています。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
99
*/
100
Result
EndSetup
(
void
);
101
102
103
/*!
104
@cond PRIVATE
105
@brief BeginSetup() ~ EndSetup()間の状態であるかどうかを返します。
106
@endcond
107
*/
108
bool
IsInSetupMode(
void
);
109
110
/*!
111
@brief (デバッグ用) inet のデバッグ用機能について設定します。
112
@details 本関数は inet のインスタンスが存在しない状態で呼出可能です。
113
DebugSetting 構造体の isEnableNatErrorEmulation を true に設定した場合、NATトラバーサルがエラーで失敗する設定となります。
114
本関数を呼び出さなかった場合、本関数が関連するデバッグ用機能は全て無効(使用しない)設定となります。
115
@attention 製品版 ROM では、本関数を呼び出さないように注意してください。
116
117
@return 関数の実行結果を返します。処理が成功した場合、IsSuccess() が真となる Result を返します。この関数は常に成功します。
118
*/
119
Result
SetDebugSetting
(
const
DebugSetting
& debugSetting);
120
121
/*!
122
@cond PRIVATE
123
@brief デバッグ用機能の設定を返します。
124
@endcond
125
*/
126
DebugSetting
* GetDebugSetting();
127
128
/*!
129
@cond PRIVATE
130
@endcond
131
*/
132
bool
IsBehindNat(
const
transport::StationLocation
& location);
133
134
/*!
135
@cond PRIVATE
136
@endcond
137
*/
138
bool
IsPublic(
const
transport::StationLocation
& location);
139
140
/*!
141
@cond PRIVATE
142
@endcond
143
*/
144
bool
IsGlobal(
const
transport::StationLocation
& location);
145
146
/*!
147
@cond PRIVATE
148
@endcond
149
*/
150
bool
IsEdmMapping(
const
transport::StationLocation
& location);
151
152
/*!
153
@cond PRIVATE
154
@endcond
155
*/
156
bool
IsEimMapping(
const
transport::StationLocation
& location);
157
}
158
}
159
}
// end of namespace nn::pia::inet
Include
nn
pia
inet
inet_Api.h
© 2016 Nintendo Co., Ltd. All rights reserved. 記載されている会社名、製品名等は、各社の登録商標または商標です。