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