CTR-Pia  5.4.3
Game Communication Engine
 全て クラス ネームスペース 関数 変数 型定義 列挙型 列挙型の値 ページ
inet_NexCreateCommunitySetting.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_CreateCommunitySetting.h>
25 
26 namespace nn
27 {
28 namespace pia
29 {
30 namespace inet
31 {
32 /*!
33  @brief コミュニティ作成処理に関する設定を管理するクラスです。
34 
35  @see session::CreateCommunitySetting
36  */
38 {
39 public:
40  /*!
41  @brief デフォルトコンストラクタ。
42  */
44 
45  /*!
46  @brief デストラクタ。
47  */
49 
50  /*!
51  @brief コピーコンストラクタ。
52  @param[in] rhs コピー元のオブジェクトです。
53  */
55 
56  /*!
57  @cond PRIVATE
58  @brief 指定した項目の示すビットマスクの各ビットに対応する項目
59  */
60  enum NexCreateCommunitySettingMask
61  {
62  NexCreateCommunitySettingMask_StartDate = 0, //!< 開始日時
63  NexCreateCommunitySettingMask_EndDate, //!< 終了日時
64  NexCreateCommunitySettingMask_Description, //!< 説明文字列
65  NexCreateCommunitySettingMask_Attribute, //!< 属性
66  NexCreateCommunitySettingMask_ApplicationData = NexCreateCommunitySettingMask_Attribute + AttributeSizeMax, //!< アプリケーション定義データ
67  NexCreateCommunitySettingMask_CommunityUserPassword //!< ユーザーパスワード
68  };
69  //! @endcond
70 
71  /*!
72  @brief 構築するコミュニティの参加可能開始日時を指定します。
73  @param[in] startDate 構築するコミュニティの参加可能開始日時。
74  @return コミュニティの参加可能開始日時の指定に成功すれば、成功の Result が返されます。
75  @retval nn::pia::ResultInvalidArgument 日時が不正です。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
76  */
78 
79  /*!
80  @cond PRIVATE
81  */
82  const common::DateTime& GetParticipaitonStartDate() const;
83  bool IsSetParticipationStartDate() const;
84  //! @endcond
85 
86  /*!
87  @brief 構築するコミュニティの参加可能終了日時を指定します。
88  @param[in] endDate 構築するコミュニティの参加可能終了日時。
89  @return コミュニティの参加可能終了日時の指定に成功すれば、成功の Result が返されます。
90  @retval nn::pia::ResultInvalidArgument 日時が不正です。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
91  */
93 
94  /*!
95  @cond PRIVATE
96  */
97  const common::DateTime& GetParticipaitonEndDate() const;
98  bool IsSetParticipationEndDate() const;
99  //! @endcond
100 
101  /*!
102  @brief 構築するコミュニティに説明文字列を指定します。
103  @param[in] description 構築するコミュニティに指定する説明文字列。文字列の長さは DescriptionLengthMax 以下である必要があります。
104  @return 説明文字列のコピーに成功すれば、成功の Result が返されます。
105  @retval nn::pia::ResultInvalidArgument バッファが NULL ポインタ、または説明文字列の最大長を超えています。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
106  */
107  Result SetDescription(const common::String& description);
108 
109  /*!
110  @cond PRIVATE
111  */
112  const common::String& GetDescription() const;
113  bool IsSetDescription() const;
114  //! @endcond
115 
116  /*!
117  @brief 構築するコミュニティに属性を指定します。
118  @param[in] index 構築するコミュニティに指定する属性のインデックス。AttributeSizeMax 以下である必要があります。
119  @param[in] value 構築するコミュニティに指定する属性の値。
120  @return セッションの属性の指定に成功すれば、成功の Result が返されます。
121  @retval nn::pia::ResultInvalidArgument 属性のインデックスが範囲外です。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
122  */
123  Result SetAttribute(uint32_t index, uint32_t value);
124 
125  /*!
126  @cond PRIVATE
127  */
128  uint32_t GetAttribute(uint32_t index) const;
129  bool IsSetAttribute(uint32_t index) const;
130  //! @endcond
131 
132  /*!
133  @brief アプリケーション定義のデータを指定します。
134  @param[in] pData 構築するコミュニティに指定するアプリケーション定義データのバッファ。
135  @param[in] size 構築するコミュニティに指定するアプリケーション定義データのサイズ。ApplicationDataBufferSizeMax 以下である必要があります。
136  @return アプリケーション定義データの設定に成功すれば、成功の Result が返されます。
137 
138  @retval nn::pia::ResultInvalidArgument バッファが NULL ポインタ、または指定したデータサイズが大きすぎます。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
139  */
140  Result SetApplicationData(const void* pData, uint32_t size);
141 
142  /*!
143  @cond PRIVATE
144  @brief 指定したアプリケーション定義のデータを取得します。
145  @param[in] pDataBuf 指定したアプリケーション定義データのコピー用バッファ。
146  @param[in] dataBufSize コピー用バッファのサイズ。
147  @return アプリケーション定義データの取得に成功すれば、成功の Result が返されます。
148 
149  @retval nn::pia::ResultInvalidArgument バッファが NULL ポインタです。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
150  @retval nn::pia::ResultInvalidState アプリケーション定義データが設定されていません。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
151  @retval nn::pia::ResultBufferShortage 設定されているアプリケーション定義データのサイズがバッファのサイズよりも大きいため、コピーできません。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
152  */
153  Result GetApplicationData(void* pDataBuf, uint32_t dataBufSize) const;
154  //! @endcond
155 
156  /*!
157  @cond PRIVATE
158  @brief 指定したアプリケーション定義のデータサイズを取得します。
159  @return アプリケーション定義データサイズが返されます。
160  */
161  uint32_t GetApplicationDataSize() const;
162  //! @endcond
163 
164  /*!
165  @cond PRIVATE
166  @brief
167  */
168  void CopyApplicationDataToVector(void* pVectorTmp) const;
169  bool IsSetApplicationData() const;
170  //! @endcond
171 
172  /*!
173  @brief 作成したコミュニティにユーザーパスワードを設定します。
174  @param[in] userPassword 設定するユーザーパスワード。パスワードの文字列は SessionUserPasswordLengthMax 以下である必要があります。
175  @return ユーザーパスワードの指定に成功すれば、成功の Result が返されます。
176 
177  @retval nn::pia::ResultInvalidArgument 文字列が NULL、文字コードが不正、またはユーザーパスワードの最大長を超えています。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
178  */
179  Result SetCommunityUserPassword(const common::String& userPassword);
180 
181  /*!
182  @cond PRIVATE
183  */
184  const common::String& GetCommunityUserPassword() const;
185  bool IsSetCommunityUserPassword() const;
186  //! @endcond
187 
188  /*!
189  @brief 代入演算子です。
190  @param[in] rhs 代入するオブジェクトです。
191  @return 本オブジェクトへの参照。
192  */
194 
195  /*!
196  @brief 設定をコピーします。
197  @param[in] rhs コピー元のオブジェクトです。
198  */
199  void Copy(const NexCreateCommunitySetting& rhs);
200 
201  /*!
202  @brief 設定をリセットします。
203  */
204  virtual void Reset();
205 
206  /*!
207  @cond PRIVATE
208  @brief デバッグに有用な情報をプリント。
209  */
210  void Trace(uint64_t flag) const;
211  //! @endcond
212 
213 protected:
214  common::DateTime m_StartDateTime;
215  common::DateTime m_EndDateTime;
217  uint32_t m_Attribute[AttributeSizeMax];
218  uint8_t m_ApplicationDataBuffer[ApplicationDataBufferSizeMax];
219  uint32_t m_ApplicationDataSize;
221 
222  uint32_t m_SetCondMask;
223 
224 private:
225 };
226 }
227 }
228 } // end of namespace nn::pia::inet
229 
230 #endif