CTR-Pia  5.4.3
Game Communication Engine
 全て クラス ネームスペース 関数 変数 型定義 列挙型 列挙型の値 ページ
local_LocalNetworkSetting.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/local/local_Definitions.h>
17 #include <nn/pia/session/session_SessionStationInfo.h>
18 
19 namespace nn
20 {
21 namespace pia
22 {
23 namespace common
24 {
25 class StationAddress;
26 }
27 }
28 } // end of namespace nn::pia::local
29 
30 namespace nn
31 {
32 namespace pia
33 {
34 namespace local
35 {
36 
37 static const uint8_t LocalNetworkVersion = 1; //!< PiaLocal で扱うネットワークのバージョンです。
38 
39 #if NN_PIA_CTR
40 static const uint8_t StationMaxEntry = 12; //!< 最大接続台数です。ローカルネットワークホストも接続台数に含まれる点に注意してください。
41 static const uint32_t ScanNetworkNumMax = 16; //!< ネットワーク探索をした際に、1度に保持できる探索結果の最大数です。
42 #elif NN_PIA_NINTENDOSDK
43 static const uint8_t StationMaxEntry = 8; //!< 最大接続台数です。ローカルネットワークホストも接続台数に含まれる点に注意してください。
44 static const uint32_t ScanNetworkNumMax = 24; //!< ネットワーク探索をした際に、1度に保持できる探索結果の最大数です。
45 #else
46 static const uint8_t StationMaxEntry = 8; //!< 最大接続台数です。ローカルネットワークホストも接続台数に含まれる点に注意してください。
47 static const uint32_t ScanNetworkNumMax = 24; //!< ネットワーク探索をした際に、1度に保持できる探索結果の最大数です。
48 #endif
49 
50 /*!
51 @cond PRIVATE
52 @brief ローカルネットワークの状態更新イベント。
53  */
54 enum LocalUpdateEvent
55 {
56  LocalUpdateEvent_Unknown = 0, //!< 下記に定義している以外の未知の状態です。正常に動作している限りこの状態になることはありません。
57  LocalUpdateEvent_Disconnected, //!< ローカルネットワークからの切断イベントです。
58  LocalUpdateEvent_MigrationStarted //!< ホストマイグレーション処理を開始した状態です。
59 };
60 
61 typedef void (*LocalUpdateEventCallback)(LocalUpdateEvent e, common::StationAddress address, void* pParam);
62 //! @endcond
63 
64 /*!
65 @cond PRIVATE
66  */
67 enum LocalNetworkType
68 {
69  LocalNetworkType_Uds = 0,
70  LocalNetworkType_Ldn
71 };
72 //! @endcond
73 
74 /*!
75  @brief ローカルネットワークの設定用クラスです。
76 
77  @details アプリケーションが本クラスのインスタンスを作成することはありません。
78  本クラスを継承したクラスを使用してください。
79 
80  @if CTR_DOC
81  @see nn::pia::local::UdsNetworkSetting
82  @elseif NIN_DOC
83  @see nn::pia::local::LdnNetworkSetting
84  @endif
85  */
87 {
88 protected:
91  {
92  }
93 
94  virtual ~LocalNetworkSetting()
95  {
96  }
97 
98 public:
99  virtual LocalNetworkType GetLocalNetworkType() const = 0;
100 
101  //n1589:todo1:delete isAroundNetworkSearchEnabled
102  bool isAroundNetworkSearchEnabled; //!< @cond CTR_DOC アラウンドネットワークサーチ機能の有効/無効切替。trueならば有効、falseならば無効になります。 @endcond
103 };
104 
105 
106 /*!
107  @cond PRIVATE
108  @brief ローカルネットワーク作成時の設定用クラスです。
109 
110  @details アプリケーションが本クラスのインスタンスを作成することはありません。
111  本クラスを継承したクラスを使用してください。
112 
113  @if CTR_DOC
114  @see nn::pia::local::UdsCreateNetworkSetting
115  @elseif NIN_DOC
116  @see nn::pia::local::LdnCreateNetworkSetting
117  @endif
118  */
119 class LocalCreateNetworkSetting : public nn::pia::common::RootObject
120 {
121 protected:
122  LocalCreateNetworkSetting()
123  {
124  }
125 
126  virtual ~LocalCreateNetworkSetting()
127  {
128  }
129 
130 public:
131  virtual uint8_t* GetApplicationDataPtr() = 0;
132  virtual uint32_t GetApplicationDataSize() const = 0;
133  virtual void AddApplicationDataSize(uint32_t size) = 0;
134 };
135 //! @endcond
136 
137 
138 /*!
139  @cond PRIVATE
140  @brief ローカルネットワークについての情報を保持するクラスです。
141 
142  @details アプリケーションが本クラスのインスタンスを作成することはありません。
143  本クラスを継承したクラスを使用してください。
144 
145  @if CTR_DOC
146  @see nn::pia::local::UdsNetworkDescription
147  @elseif NIN_DOC
148  @see nn::pia::local::LdnNetworkDescription
149  @endif
150  */
151 class LocalNetworkDescription : public nn::pia::common::RootObject
152 {
153 public:
154  virtual uint16_t GetCurrentParticipantNum() const = 0;
155  virtual uint16_t GetMaxParticipantNum() const = 0;
156  virtual bool IsOpened() const = 0;
157  virtual uint16_t GetChannel() const = 0;
158  virtual void GetBssid(uint8_t* pBssidBuffer) const = 0;
159  virtual uint32_t GetGameMode() const = 0;
160 
161 protected:
162  LocalNetworkDescription()
163  {
164  }
165 
166  virtual ~LocalNetworkDescription()
167  {
168  }
169 
170 public:
171  virtual void Copy(const LocalNetworkDescription* description) = 0;
172 };
173 //! @endcond
174 
175 
176 /*!
177  @cond PRIVATE
178  @brief ローカルネットワークへ接続時の設定用クラスです。
179 
180  @details アプリケーションが本クラスのインスタンスを作成することはありません。
181  本クラスを継承したクラスを使用してください。
182  @if CTR_DOC
183  @see nn::pia::local::UdsConnectNetworkSetting
184  @elseif NIN_DOC
185  @see nn::pia::local::LdnConnectNetworkSetting
186  @endif
187  */
188 class LocalConnectNetworkSetting : public nn::pia::common::RootObject
189 {
190 protected:
191  LocalConnectNetworkSetting()
192  : pLocalNetworkDescription(NULL),
193  hashedSessionUserPassword(0)
194  {
195  }
196 
197 public:
198  const LocalNetworkDescription* pLocalNetworkDescription; //!< 接続先ネットワークの情報です。
199  uint32_t hashedSessionUserPassword;
200 };
201 //! @endcond
202 
203 /*!
204  @cond PRIVATE
205  @brief ローカルネットワーク探索時の設定用クラスです。
206 
207  @details アプリケーションが本クラスのインスタンスを作成することはありません。
208  本クラスを継承したクラスを使用してください。
209  @if CTR_DOC
210  @see nn::pia::local::UdsScanNetworkSetting
211  @elseif NIN_DOC
212  @see nn::pia::local::LdnScanNetworkSetting
213  @endif
214  */
215 class LocalScanNetworkSetting : public nn::pia::common::RootObject
216 {
217 protected:
218  LocalScanNetworkSetting()
219  {
220  }
221 public:
222 };
223 //! @endcond
224 
225 /*!
226 @cond PRIVATE
227 以下はライブラリ内部向けの宣言です。
228 */
229 
230 class LocalBeaconSystemData : public nn::pia::common::RootObject
231 {
232 public:
233  uint32_t sessionId; //!< ホストマイグレーション前後で変わらない、セッション ID
234  uint32_t hashedUserPassword; //!< ハッシュ化したユーザーパスワード
235  uint8_t networkVersion; //!< ローカルネットワークバージョン
236  uint8_t reserved[3];
237 
238 protected:
239  LocalBeaconSystemData()
240  : sessionId(0),
241  hashedUserPassword(0),
242  networkVersion(LocalNetworkVersion)
243  {
244  memset(reserved, 0, sizeof(reserved));
245  }
246 };
247 
248 
249 /*!
250 ここまでライブラリ内部向けの宣言です。
251 @endcond
252 */
253 
254 
255 /*!
256  @brief ローカルネットワークに接続しているステーションについての情報を保持するクラスです。
257 
258  @details アプリケーションが本クラスのインスタンスを作成することはありません。
259  本クラスを継承したクラスを使用してください。
260  @if CTR_DOC
261  @see nn::pia::local::UdsStationInfo
262  @elseif NIN_DOC
263  @see nn::pia::local::LdnStationInfo
264  @endif
265  */
266 //n1589:memo:StationInfoRoleのみ持つ
268 {
269 protected:
272  {
273  }
274  virtual ~LocalStationInfo()
275  {
276  }
277 };
278 }
279 }
280 } // end of namespace nn::pia::local