CTR-Pia  5.4.3
Game Communication Engine
 全て クラス ネームスペース 関数 変数 型定義 列挙型 列挙型の値 ページ
lan_LanUpdateSessionSetting.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/lan/lan_Definitions.h>
17 
18 #include <nn/pia/lan/lan_LanSessionTypes.h>
19 
20 #include <nn/pia/common/common_FixedString.h>
21 #include <nn/pia/session/session_UpdateSessionSetting.h>
22 
23 namespace nn
24 {
25 namespace pia
26 {
27 namespace lan
28 {
29 /*!
30  @brief セッションの条件更新処理に関する情報を管理するクラスです。
31  @details 更新する値を指定した設定のみ更新されます。更新しない設定について、指定は不要です。
32 
33  @see session::UpdateSessionSetting
34  */
36 {
37 public:
38  enum ModificationFlag
39  {
40  ModificationFlag_MinParticipant = ModificationFlag_ApplicationData + 1,
41  ModificationFlag_MaxParticipant,
42  ModificationFlag_SessionType,
43  ModificationFlag_Attribute0,
44  ModificationFlag_Attribute1,
45  ModificationFlag_Attribute2,
46  ModificationFlag_Attribute3,
47  ModificationFlag_Attribute4,
48  ModificationFlag_Attribute5
49  };
50 
51  /*!
52  @brief デフォルトコンストラクタ。
53  */
55 
56  /*!
57  @brief デストラクタ。
58  */
59  virtual ~LanUpdateSessionSetting();
60 
61  /*!
62  @brief セッションの最小参加人数を指定します。
63  @param[in] min 作成するセッションに指定する最小参加人数。
64  */
65  void SetMinParticipantNum(uint16_t min);
66 
67  /*!
68  @cond PRIVATE
69  */
70  uint16_t GetMinParticipantNum() const;
71  bool IsSetMinParticipantNum() const;
72  //! @endcond
73 
74  /*!
75  @brief セッションの最大参加人数を指定します。
76  @param[in] max 作成するセッションに指定する最大参加人数。
77  */
78  void SetMaxParticipantNum(uint16_t max);
79 
80  /*!
81  @cond PRIVATE
82  */
83  uint16_t GetMaxParticipantNum() const;
84  bool IsSetMaxParticipantNum() const;
85  //! @endcond
86 
87  /*!
88  @brief セッションのセッションタイプを指定します。
89  @param[in] sessionType セッションタイプ。
90  */
91  void SetSessionType(LanSessionType sessionType);
92 
93  /*!
94  @cond PRIVATE
95  */
96  LanSessionType GetSessionType() const;
97  bool IsSetSessionType() const;
98  //! @endcond
99 
100  /*!
101  @brief セッションの属性を指定します。
102  @param[in] index セッションに指定する属性のインデックス。LanAttributeSizeMax 以下である必要があります。
103  @param[in] value セッションに指定する属性の値。
104  @return セッションの属性の指定に成功すれば、成功の Result が返されます。
105  @retval nn::pia::ResultInvalidArgument 属性のインデックスが範囲外です。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
106  */
107  Result SetAttribute(uint32_t index, uint32_t value);
108 
109  /*!
110  @cond PRIVATE
111  */
112  uint32_t GetAttribute(uint32_t index) const;
113  bool IsSetAttribute(uint32_t index) const;
114  //! @endcond
115 
116  /*!
117  @brief アプリケーション定義のデータを指定します。
118  @details inet::ApplicationDataBufferSizeMax を超えないサイズを指定する必要があります。
119  @param[in] pData セッションに指定するアプリケーション定義データのバッファ。
120  @param[in] size セッションに指定するアプリケーション定義データのサイズ。LanApplicationDataBufferSizeMax 以下である必要があります。
121  @return アプリケーション定義データの設定に成功すれば、成功の Result が返されます。
122 
123  @retval nn::pia::ResultInvalidArgument バッファが NULL ポインタ、または指定したデータサイズが大きすぎます。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
124  */
125  virtual Result SetApplicationData(const void* pData, uint32_t size);
126 
127  /*!
128  @cond PRIVATE
129  @brief 指定したアプリケーション定義のデータを取得します。
130  @param[in] pDataBuf 指定したアプリケーション定義データのコピー用バッファ。
131  @param[in] dataBufSize コピー用バッファのサイズ。
132  @return アプリケーション定義データの取得に成功すれば、成功の Result が返されます。
133 
134  @retval nn::pia::ResultInvalidArgument バッファが NULL ポインタです。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
135  @retval nn::pia::ResultInvalidState アプリケーション定義データが設定されていません。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
136  @retval nn::pia::ResultBufferShortage 設定されているアプリケーション定義データのサイズがバッファのサイズよりも大きいため、コピーできません。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
137  */
138  virtual Result GetApplicationData(void* pDataBuf, uint32_t dataBufSize) const;
139  //! @endcond
140 
141  /*!
142  @cond PRIVATE
143  @brief 指定したアプリケーション定義のデータサイズを取得します。
144  @return アプリケーション定義データサイズが返されます。
145  */
146  virtual uint32_t GetApplicationDataSize() const;
147  //! @endcond
148 
149  /*!
150  @brief 設定をリセットします。
151  */
152  virtual void Reset();
153 
154  /*!
155  @brief 設定をコピーします。
156  @param[in] rhs コピー元のオブジェクトです。
157  */
158  void Copy(const LanUpdateSessionSetting& rhs);
159 
160  /*!
161  @brief コピーコンストラクタ。
162  @param[in] rhs コピー元のオブジェクトです。
163  */
165 
166  /*!
167  @brief 代入演算子です。
168  @param[in] rhs 代入するオブジェクトです。
169  @return 本オブジェクトへの参照。
170  */
172 
173  /*!
174  @cond PRIVATE
175  @brief デバッグに有用な情報をプリント。
176  */
177  virtual void Trace(uint64_t flag) const;
178  //! @endcond
179 
180 
181 protected:
182  uint16_t m_MinParticipantNum;
183  uint16_t m_MaxParticipantNum;
184  LanSessionType m_SessionType;
185  uint32_t m_Attribute[LanAttributeSizeMax];
186  uint8_t m_ApplicationDataBuffer[LanApplicationDataBufferSizeMax];
187  uint32_t m_ApplicationDataSize;
188 
189 private:
190 };
191 }
192 }
193 } // end of namespace nn::pia::lan