CTR-Pia  5.4.3
Game Communication Engine
 全て クラス ネームスペース 関数 変数 型定義 列挙型 列挙型の値 ページ
inet_NexUpdateCommunitySetting.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 
18 #if NN_PIA_ENABLE_NEX
19 
20 #include <nn/pia/inet/inet_NexSessionTypes.h>
21 
22 #include <nn/pia/common/common_FixedString.h>
23 #include <nn/pia/common/common_DateTime.h>
24 #include <nn/pia/session/session_UpdateCommunitySetting.h>
25 
26 namespace nn
27 {
28 namespace pia
29 {
30 namespace inet
31 {
32 /*!
33  @brief コミュニティ設定の更新処理に関する情報を管理するクラスです。
34  @details 更新する値を指定した設定のみ更新されます。更新しない設定について、指定は不要です。
35 
36  @see session::UpdateCommunitySetting
37  */
39 {
40 public:
41  /*!
42  @cond PRIVATE
43  @brief 指定した項目の示すビットマスクの各ビットに対応する項目
44  */
45  enum NexUpdateCommunitySettingMask
46  {
47  NexUpdateCommunitySettingMask_MinParticipant = 0, //!< 最小参加人数
48  NexUpdateCommunitySettingMask_MaxParticipant, //!< 最大参加人数
49  NexUpdateCommunitySettingMask_StartDate, //!< 開始日時
50  NexUpdateCommunitySettingMask_EndDate, //!< 終了日時
51  NexUpdateCommunitySettingMask_Description, //!< 説明文字列
52  NexUpdateCommunitySettingMask_Attribute, //!< 属性
53  NexUpdateCommunitySettingMask_ApplicationData, //!< アプリケーション定義データ
54  NexUpdateCommunitySettingMask_CommunityUserPassword //!< ユーザーパスワード
55  };
56  //! @endcond
57 
58  /*!
59  @brief デフォルトコンストラクタ。
60  */
62 
63  /*!
64  @brief デストラクタ。
65  */
67 
68  /*!
69  @brief コミュニティの最小参加人数を指定します。
70  @param[in] min 作成するコミュニティに指定する最小参加人数。
71  */
72  void SetMinParticipantNum(uint16_t min);
73 
74  /*!
75  @brief コミュニティの最大参加人数を指定します。
76  @param[in] max 作成するコミュニティに指定する最大参加人数。
77  */
78  void SetMaxParticipantNum(uint16_t max);
79 
80  /*!
81  @brief コミュニティの属性を一括して指定します。
82  @param[in] attributes 属性の配列。配列のサイズは @ref AttributeSizeMax である必要があります。
83  */
84  void SetAttributes(const uint32_t attributes[nn::pia::inet::AttributeSizeMax]);
85 
86  /*!
87  @brief コミュニティのユーザーパスワードを指定します。
88  @param[in] userPassword 設定するユーザーパスワード。パスワードの文字列は CommunityUserPasswordLengthMax 以下である必要があります。
89  @return ユーザーパスワードの指定に成功すれば、成功の Result が返されます。
90  @retval nn::pia::ResultInvalidArgument 文字列が NULL、文字コードが不正、またはユーザーパスワードの最大長を超えています。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
91  */
92  Result SetCommunityUserPassword(const common::String& userPassword);
93 
94  /*!
95  @brief アプリケーション定義のデータを指定します。
96  @details inet::ApplicationDataBufferSizeMax を超えないサイズを指定する必要があります。
97  @param[in] pData コミュニティに指定するアプリケーション定義データのバッファ。
98  @param[in] size コミュニティに指定するアプリケーション定義データのサイズ。ApplicationDataBufferSizeMax 以下である必要があります。
99  @return アプリケーション定義データの指定に成功すれば、成功の Result が返されます。
100 
101  @retval nn::pia::ResultInvalidArgument バッファが NULL ポインタ、または指定したデータサイズが大きすぎます。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
102  */
103  Result SetApplicationData(const void* pData, uint32_t size);
104 
105  /*!
106  @brief コミュニティの開始日時の更新日時を指定します。
107  @param[in] startDate コミュニティの参加可能開始日時。
108  @return コミュニティの参加可能開始日時の指定に成功すれば、成功の Result が返されます。
109  @retval nn::pia::ResultInvalidArgument 日時が不正です。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
110  */
112 
113  /*!
114  @brief コミュニティの参加終了日時の更新日時を指定します。
115  @param[in] endDate コミュニティの参加終了日時。
116  @return コミュニティの参加終了日時の指定に成功すれば、成功の Result が返されます。
117  @retval nn::pia::ResultInvalidArgument 日時が不正です。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
118  */
120 
121  /*!
122  @brief コミュニティの説明文字列を更新します。
123  @param[in] description 更新後のコミュニティの説明文字列。文字列の長さは DescriptionLengthMax 以下である必要があります。
124  @return 説明文字列のコピーに成功すれば、成功の Result が返されます。
125  @retval nn::pia::ResultInvalidArgument バッファが NULL ポインタ、または説明文字列の最大長を超えています。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
126  */
127  Result SetDescription(const common::String& description);
128 
129  /*!
130  @brief 更新するコミュニティIDを指定します。
131  @param[in] communityId 更新するコミュニティID。
132  */
133  void SetCommunityId(uint32_t communityId);
134 
135  /*!
136  @brief 代入演算子です。
137  @param[in] rhs 代入するオブジェクトです。
138  @return 本オブジェクトへの参照。
139  */
141 
142  /*!
143  @brief 設定をコピーします。
144  @param[in] rhs コピー元のオブジェクトです。
145  */
146  void Copy(const NexUpdateCommunitySetting& rhs);
147 
148  /*!
149  @brief コピーコンストラクタ。
150  @param[in] rhs コピー元のオブジェクトです。
151  */
153 
154  /*!
155  @brief 設定をリセットします。
156  */
157  virtual void Reset();
158 
159  /*!
160  @cond PRIVATE
161  @brief デバッグに有用な情報をプリント。
162  */
163  virtual void Trace(uint64_t flag) const;
164  //! @endcond
165 
166  /*!
167  @cond PRIVATE
168  */
169  uint32_t GetCommunityId() const;
170  bool IsSetCommunityId() const;
171  uint16_t GetMinParticipantNum() const;
172  bool IsSetMinParticipantNum() const;
173  uint16_t GetMaxParticipantNum() const;
174  bool IsSetMaxParticipantNum() const;
175  Result GetApplicationData(void* pDataBuf, uint32_t dataBufSize) const;
176  bool IsSetApplicationData() const;
177  uint32_t GetApplicationDataSize() const;
178 
179  uint32_t GetAttribute(uint32_t index) const;
180  bool IsSetAttribute() const;
181 
182  const common::String& GetDescription() const;
183  bool IsSetDescription() const;
184 
185  const common::String& GetCommunityUserPassword() const;
186  bool IsSetCommunityUserPassword() const;
187 
188  const common::DateTime& GetParticipaitonStartDate() const;
189  bool IsSetParticipationStartDate() const;
190  const common::DateTime& GetParticipaitonEndDate() const;
191  bool IsSetParticipationEndDate() const;
192 
193  void CopyApplicationDataToVector(void* pVectorTmp) const;
194  bool IsValid() const;
195  //! @endcond
196 
197 protected:
198  uint32_t m_CommunityId;
199  uint16_t m_MinParticipantNum;
200  uint16_t m_MaxParticipantNum;
201  uint32_t m_Attribute[AttributeSizeMax];
202  uint8_t m_ApplicationDataBuffer[ApplicationDataBufferSizeMax];
203  uint32_t m_ApplicationDataSize;
206  common::DateTime m_StartTime;
207  common::DateTime m_EndTime;
208  uint32_t m_Mask;
209 private:
210 };
211 }
212 }
213 } // end of namespace nn::pia::inet
214 
215 #endif