CTR-Pia  5.4.3
Game Communication Engine
 全て クラス ネームスペース 関数 変数 型定義 列挙型 列挙型の値 ページ
local_LdnCreateSessionSetting.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 #pragma once
14 
15 #include <nn/pia/local/local_Definitions.h>
16 
17 #if NN_PIA_NINTENDOSDK
18 
19 #include <nn/pia/local/local_LocalCreateSessionSetting.h>
20 #include <nn/pia/local/local_LdnNetworkSetting.h>
21 
22 namespace nn
23 {
24 namespace pia
25 {
26 namespace local
27 {
28 /*!
29  @brief LDN ライブラリ(ローカル通信)を利用したネットワークの CreateSession に関する設定を管理するクラスです。
30  */
31 class LdnCreateSessionSetting : public LocalCreateSessionSetting
32 {
33 public:
34  /*!
35  @brief デフォルトコンストラクタ。
36  */
37  LdnCreateSessionSetting();
38 
39  /*!
40  @brief デストラクタ。
41  */
42  virtual ~LdnCreateSessionSetting();
43 
44  /*!
45  @brief 設定をコピーします。
46  @param[in] rhs コピー元のオブジェクトです。
47  */
48  void Copy(const LdnCreateSessionSetting& rhs);
49 
50  /*!
51  @brief 代入演算子です。
52  @param[in] rhs 代入するオブジェクトです。
53  @return 本オブジェクトへの参照。
54  */
55  LdnCreateSessionSetting& operator=(const LdnCreateSessionSetting& rhs);
56 
57  /*!
58  @brief コピーコンストラクタ。。
59  @param[in] rhs コピー元のオブジェクトです。
60  */
61  LdnCreateSessionSetting(const LdnCreateSessionSetting& rhs);
62 
63 
64  /*!
65  @cond PRIVATE
66  */
67  virtual const LocalCreateNetworkSetting* GetLocalCreateNetworkSetting() const
68  {
69  return &m_LdnCreateNetworkSetting;
70  }
71  //! @endcond
72 
73  /*!
74  @brief 作成するセッションの最大参加人数を指定します。
75  @param[in] max 作成するセッションに指定する最大参加人数。@ref StationMaxEntry 以下である必要があります。
76  */
77  virtual void SetMaxParticipantNum(uint16_t max)
78  {
79  m_MaxParticipantNum = max;
80  m_LdnCreateNetworkSetting.maxEntry = max;
81  }
82 
83  /*!
84  @brief 作成するセッションのローカル通信識別子を指定します。指定するローカル通信識別子はアプリケーション管理データに登録されている必要があります。
85  @param[in] localCommunicationId ローカル通信識別子です。
86  */
87  void SetLocalCommunicationId(uint64_t localCommunicationId)
88  {
89  m_LdnCreateNetworkSetting.localCommunicationId = localCommunicationId;
90  }
91 
92  /*!
93  @brief 作成するセッションのシーン識別子を指定します。
94  @param[in] sceneId シーン識別子です。
95  */
96  void SetSceneId(uint16_t sceneId)
97  {
98  m_LdnCreateNetworkSetting.sceneId = sceneId;
99  }
100 
101  /*!
102  @brief 作成するセッションの通信に使用するチャンネルを指定します。
103  @param[in] channel 通信に使用するチャンネルです。0(自動), 1,6,11ch のいずれかを指定する必要があります。製品機で指定した場合は無視され、常に 0(自動)になります。開発機では 5GHz 帯の 36,40,44,48ch も指定できます。
104  */
105  void SetChannel(int16_t channel)
106  {
107  m_LdnCreateNetworkSetting.channel = channel;
108  }
109 
110  /*!
111  @brief 無線レイヤの暗号化に使用する暗号鍵とそのサイズを設定します。
112 
113  @details 暗号鍵のサイズは、@ref LdnWirelessCryptoKeySizeMin 以上、@ref LdnWirelessCryptoKeySizeMax 以下にする必要があります。
114 
115  @param[in] pWirelessCryptoKey 無線レイヤの暗号化に使用する暗号鍵です。
116  @param[in] wirelessCryptoKeySize 無線レイヤの暗号化に使用する暗号鍵のサイズです。
117 
118  @return 成功すれば、 IsSuccess() が true を返す Result が返されます。
119 
120  @retval ResultInvalidArgument 引数の指定が不正です。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
121  */
122  virtual Result SetWirelessCryptoKey(const char* pWirelessCryptoKey, uint8_t wirelessCryptoKeySize);
123 
124  /*!
125  @brief アプリケーション定義のデータを指定します。
126 
127  @details データのサイズは、@ref LdnBeaconApplicationDataSizeMax 以下にする必要があります。
128 
129  @param[in] pData 構築するセッションに指定するアプリケーション定義データのバッファ。
130  @param[in] size 構築するセッションに指定するアプリケーション定義データのサイズ。
131  @return アプリケーション定義データの設定に成功すれば、成功の Result が返されます。
132 
133  @retval nn::pia::ResultInvalidArgument バッファが NULL ポインタ、または指定したデータサイズが大きすぎます。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
134  */
135  virtual Result SetApplicationData(const void* pData, uint32_t size);
136 
137  /*!
138  @cond PRIVATE
139  @brief 指定したアプリケーション定義のデータを取得します。
140  @param[in] pDataBuf 指定したアプリケーション定義データのコピー用バッファ。
141  @param[in] dataBufSize コピー用バッファのサイズ。
142  @return アプリケーション定義データの取得に成功すれば、成功の Result が返されます。
143 
144  @retval nn::pia::ResultInvalidArgument バッファが NULL ポインタです。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
145  @retval nn::pia::ResultInvalidState アプリケーション定義データが設定されていません。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
146  @retval nn::pia::ResultBufferShortage 設定されているアプリケーション定義データのサイズがバッファのサイズよりも大きいため、コピーできません。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
147  */
148  virtual Result GetApplicationData(void* pDataBuf, uint32_t dataBufSize) const;
149  //! @endcond
150 
151  /*!
152  @cond PRIVATE
153  @brief 指定したアプリケーション定義のデータサイズを取得します。
154  @return アプリケーション定義データサイズが返されます。
155  */
156  virtual uint32_t GetApplicationDataSize() const;
157  //! @endcond
158 
159  /*!
160  @cond PRIVATE
161  @brief アプリケーション定義を指定したかどうかを取得します。
162  @return アプリケーション定義を指定したかどうかが返されます。
163  */
164  virtual bool IsSetApplicationData() const;
165  //! @endcond
166 
167  /*!
168  @brief 設定をリセットします。
169  */
170  virtual void Reset();
171 
172  // デバッグに有用な情報をプリント。
173  virtual void Trace(uint64_t flag) const;
174 
175 protected:
176  LdnCreateNetworkSetting m_LdnCreateNetworkSetting;
177  bool m_IsApplicationDataSet;
178 
179 private:
180 };
181 }
182 }
183 } // end of namespace nn::pia::local
184 #endif