CTR-Pia  5.4.3
Game Communication Engine
 全て クラス ネームスペース 関数 変数 型定義 列挙型 列挙型の値 ページ
inet_NexSessionSearchCriteria.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_InetAddress.h>
24 #include <nn/pia/session/session_SessionSearchCriteria.h>
25 
26 #if NN_PIA_CTR
27 #pragma diag_suppress 1300 //n1769 ARMCC 用プラグマ。
28 #endif
29 #include <RendezVous/Services/Jugem/Matchmake/src/Common/MatchmakeParam.h>
30 #include <RendezVous/Services/Jugem/Matchmake/src/Common/MatchmakeSessionSearchCriteria.h>
31 #include <RendezVous/Core/src/Common/ResultRange.h>
32 #if NN_PIA_CTR
33 #pragma diag_warning 1300 //n1769 ARMCC 用プラグマ。
34 #endif
35 
36 
37 namespace nn
38 {
39 namespace pia
40 {
41 namespace inet
42 {
43 
44 /*!
45  @brief セッションを検索する際に使用する検索条件のクラスです。
46  @details 検索結果として得られるセッションの最大数は SetResultRange で指定する値になりますが、
47  nn::pia::session::Session::CreateInstance 呼び出し時に指定する
48  nn::pia::session::Session::Setting 構造体の browsedSessionInfoListNum 以下の値を
49  指定する必要があります。
50 
51  @see nn::pia::session::SessionSearchCriteria
52  */
54 {
55 public:
56  /*!
57  @cond PRIVATE
58  @brief 検索条件として指定した項目の示すビットマスクの各ビットに対応する項目
59  */
60  enum NexCondMask
61  {
62  NexCondMask_MinParticipation = 0, //!< 最小参加人数
63  NexCondMask_MaxParticipation, //!< 最大参加人数
64  NexCondMask_OpenedOnly, //!< 参加受付状態のセッションのみかどうか
65  NexCondMask_VacantOnly, //!< 空きがあるセッションのみかどうか
66  NexCondMask_GameMode, //!< ゲームモード
67  NexCondMask_SessionType, //!< セッションタイプ
68  NexCondMask_Attribute, //!< 属性
69  NexCondMask_ExcludeNonHost = NexCondMask_Attribute + AttributeSizeMax, //!< ホストの存在しないセッションを除外するかどうか
70  NexCondMask_ExcludeUserPassword, //!< ユーザーパスワード設定のセッションを除外するかどうか
71  NexCondMask_RandomSessionSelectionMethod, //!< ランダムマッチメイク実行時に参加するセッションの選択方法
72  NexCondMask_ScoreBasedSettingIndex, //!< スコア換算方法の設定インデックス(スコアベースマッチメイク使用時)
73  NexCondMask_ScoreBasedRatingValue, //!< レーティング値(スコアベースマッチメイク使用時)
74  NexCondMask_ScoreBasedDisconnectionRate, //!< 切断率(スコアベースマッチメイク使用時)
75  NexCondMask_ScoreBasedViolationRate, //!< 違反率(スコアベースマッチメイク使用時)
76  NexCondMask_ScoreBasedCountryCode, //!< 国コード(スコアベースマッチメイク使用時)
77  NexCondMask_ScoreBasedGeoIp, //!< 位置情報(スコアベースマッチメイク使用時)
78  NexCondMask_ScoreBasedOverrideIp, //!< デバッグ用IPアドレス(スコアベースマッチメイク使用時)
79  NexCondMask_Community, //!< 関連コミュニティ
80  NexCondMask_MatchmakeKeyword, //!< あいことば
81  NexCondMask_AdditionalParamString, //!< 追加文字列パラメータ(スコアベースマッチメイク使用時)
82  NexCondMask_AdditionalParamValue = NexCondMask_AdditionalParamString + AdditionalParamStringSizeMax, //!< 追加パラメータ(スコアベースマッチメイク使用時)
83  NexCondMask_Max = NexCondMask_AdditionalParamValue + AdditionalParamKeySizeMax
84  };
85  //! @endcond
86 
87  /*!
88  @brief デフォルトコンストラクタ。
89  */
91 
92  /*!
93  @brief デストラクタ。
94  */
95  virtual ~NexSessionSearchCriteria();
96 
97  /*!
98  @brief 検索結果の取得範囲を指定します。
99  @details offset に 0xFFFFFFFF を指定すると、検索結果をランダムに並び替えた上で指定されたエントリー数を取得するように振る舞います。
100  @param[in] offset 検索条件にマッチしたエントリーリストから検索結果として取得するエントリー群の開始位置。
101  @param[in] size 検索条件にマッチしたエントリーリストから検索結果として取得するエントリー数。
102  session::Session::Setting 構造体の browsedSessionInfoListNum 以下、かつSearchCriteriaResultSizeMax 以下の値である必要があります。
103 
104  @return 処理に成功すれば、成功の Result が返されます。失敗した場合、以下の Result を返します。
105  @retval nn::pia::ResultInvalidArgument 引数の値が範囲外です。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
106  */
107  virtual Result SetResultRange(uint32_t offset, uint32_t size);
108 
109  /*!
110  @brief 検索条件に最小参加人数を指定します。
111  @param[in] min 検索条件に指定する最小参加人数。
112  */
113  void SetMinParticipantNum(uint16_t min);
114 
115  /*!
116  @brief 検索条件に最小参加人数を範囲指定します。
117  @param[in] min 検索条件に指定する最小参加人数の範囲の下限。
118  @param[in] max 検索条件に指定する最小参加人数の範囲の上限。
119  */
120  void SetMinParticipantNumRange(uint16_t min, uint16_t max);
121 
122  /*!
123  @brief 検索条件に最大参加人数を指定します。
124  @param[in] max 検索条件に指定する最大参加人数。
125  */
126  void SetMaxParticipantNum(uint16_t max);
127 
128  /*!
129  @brief 検索条件に最大参加人数を範囲指定します。
130  @param[in] min 検索条件に指定する最大参加人数の範囲の下限。
131  @param[in] max 検索条件に指定する最大参加人数の範囲の上限。
132  */
133  void SetMaxParticipantNumRange(uint16_t min, uint16_t max);
134 
135  /*!
136  @brief 検索条件に参加受付状態のセッションのみを検索するか指定します。
137  @param[in] bOpenedOnly 参加受付状態のセッションのみを検索する場合は true を指定します。
138  */
139  void SetOpenedOnly(bool bOpenedOnly);
140 
141  /*!
142  @brief 検索条件に空きがあるセッションのみを検索するか指定します。
143  @param[in] bVacantOnly 空きがあるセッションのみを検索する場合は true を指定します。
144  */
145  void SetVacantOnly(bool bVacantOnly);
146 
147  /*!
148  @brief 検索条件にゲームモードを指定します。
149  @details ゲームモードの指定は必須となります。指定しないまま、セッションの非同期処理を呼び出すとエラーを返します。
150  @param[in] gameMode 検索条件に指定するゲームモード。
151  */
152  void SetGameMode(uint32_t gameMode);
153 
154  /*!
155  @brief 検索条件にセッションタイプを指定します。
156  @details 指定しなかった場合、デフォルト値(SessionType_Anybody)が指定されます。
157  @param[in] sessionType 検索条件に指定するセッションタイプ。
158  */
159  void SetSessionType(SessionType sessionType);
160 
161  /*!
162  @brief 1つの属性に対して検索時に使用する値を指定します。
163  @details 設定されなかったインデックスの属性に対しては任意の値を検索対象とします。
164  @param[in] index 指定する属性のインデックス。AttributeSizeMax 以下である必要があります。
165  @param[in] value 指定する属性の値。
166  @return セッションの属性の指定に成功すれば、成功の Result が返されます。
167  @retval nn::pia::ResultInvalidArgument 属性のインデックスが範囲外です。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
168  */
169  Result SetAttribute(uint32_t index, uint32_t value);
170 
171  /*!
172  @brief 1つの属性に対して検索時に使用する値を複数指定します。
173  @details 設定されなかったインデックスの属性に対しては任意の値を検索対象とします。
174  @param[in] index 指定する属性のインデックス。AttributeSizeMax 以下である必要があります。
175  @param[in] value 指定する属性の値のリスト。
176  @param[in] attributeNum 指定する属性の値の個数。AttributeArraySizeMax 以下である必要があります。
177  @return セッションの属性の指定に成功すれば、成功の Result が返されます。
178  @retval nn::pia::ResultInvalidArgument 属性のインデックスが範囲外、値のリストが NULL、または値の個数が多すぎます。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
179  */
180  Result SetAttribute(uint32_t index, const uint32_t* value, uint32_t attributeNum);
181 
182  /*!
183  @brief 1つの属性に対して検索時に使用する値を範囲指定します。
184  @details 設定されなかったインデックスの属性に対しては任意の値を検索対象とします。
185  @param[in] index 指定する属性のインデックス。AttributeSizeMax 以下である必要があります。
186  @param[in] min 指定する属性の値の下限。
187  @param[in] max 指定する属性の値の上限。
188  @return セッションの属性の指定に成功すれば、成功の Result が返されます。
189  @retval nn::pia::ResultInvalidArgument 属性のインデックスが範囲外、または下限値が上限値よりも大きい値になっています。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
190  */
191  Result SetAttributeRange(uint32_t index, uint32_t min, uint32_t max);
192 
193  /*!
194  @brief ランダムマッチメイク実行時に参加するセッションの選択方法を指定します。
195  @param[in] selectionMethod 指定するセッションの選択方法。
196  */
197  void SetRandomSessionSelectionMethod(SelectionMethod selectionMethod);
198 
199  /*!
200  @brief ホストが存在しないセッションを検索対象から外すかどうか指定します。(デフォルトは対象から外します)
201  @param[in] bExclude ホストが存在しないセッションを検索対象から外す場合は true を指定します。
202  */
203  void SetExcludeNonHostPrincipalId(bool bExclude);
204 
205  /*!
206  @brief ユーザパスワードが設定されたセッションを検索対象から外すかどうか指定します。(デフォルトは対象から外します)
207  @param[in] bExclude ユーザパスワードが設定されたセッションを検索対象から外す場合は true を指定します。
208  */
209  void SetExcludeUserPasswordSet(bool bExclude);
210 
211  /*!
212  @brief スコアベースマッチメイク指定時に、比較に使用するスコア換算方法の設定インデックスを設定します。
213  @details 設定インデックスをセットしていない場合は 0 が使用されます。
214  @param[in] settingIndex スコア換算設定のインデックス
215  */
216  void SetScoreSettingIndex(uint32_t settingIndex);
217 
218  /*!
219  @brief スコアベースマッチメイク指定時に、比較に使用するレーティング値を設定します。
220  @details セットしない場合はレーティング値の差に関するスコアがデフォルトスコアとして評価されます。
221  @param[in] ratingValue レーティング値
222  */
223  void SetRatingValue(uint32_t ratingValue);
224 
225  /*!
226  @brief スコアベースマッチメイク指定時に、比較に使用する切断率を設定します。
227  @details セットしない場合は切断率の差に関するスコアがデフォルトスコアとして評価されます。
228  @param[in] disconnectionRate 切断率
229  */
230  void SetDisconnectionRate(uint32_t disconnectionRate);
231 
232  /*!
233  @brief スコアベースマッチメイク指定時に、比較に使用する違反率を設定します。
234  @details セットしない場合は違反率の差に関するスコアがデフォルトスコアとして評価されます。
235  @param[in] violationRate 違反率
236  */
237  void SetViolationRate(uint32_t violationRate);
238 
239  /*!
240  @brief スコアベースマッチメイク指定時に、比較に位置情報 (緯度経度、国コード) を使用するかどうかを設定します。
241  @details 位置情報を使うかどうかをセットしない場合は距離の比較に関するスコアがデフォルトスコアとして評価されます。
242  @param[in] use 位置情報を使用するかどうか
243  */
244  void SetUseGeoIp(bool use);
245 
246  /*!
247  @if NIN_DOC
248  @brief スコアベースマッチメイク指定時に、比較に使用する国コードを設定します。国コードはISO 3166-1 alpha-2 によるアルファベット 2 文字(大文字)の国コードを設定します。
249  @details @ref SetUseGeoIp で位置情報を使用しない設定をした場合、もしくは位置情報を使用する設定をしたが位置情報を得られなかった場合に使用する国コードをセットします。
250  位置情報が得られた場合はここで指定した国コードは使用されません。
251  国コードをセットしない場合は @ref SetUseGeoIp で位置情報を使用しない設定をした場合、もしくは位置情報を使用する設定をしたが位置情報を得られなかった場合、
252  国コードの比較に関するスコアがデフォルトスコアとして評価されます。
253  @param[in] countryCode 国コード。ISO 3166-1 alpha-2 によるアルファベット 2 文字(大文字)の文字列である必要があります。
254  @return 国コードの指定に成功すれば、成功の Result が返されます。
255 
256  @retval nn::pia::ResultInvalidArgument 国コードの文字列長が 2 以外、または国コードに指定した文字種が不正です。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
257  @endif
258  */
259  Result SetCountryCode(const common::String& countryCode);
260 
261  /*!
262  @if CTR_DOC
263  @brief スコアベースマッチメイク指定時に、比較に使用する国コードを設定します。国コードはプラットフォームで定義された値を設定します。
264  @details @ref SetUseGeoIp で位置情報を使用しない設定をした場合、もしくは位置情報を使用する設定をしたが位置情報を得られなかった場合に使用する国コードをセットします。
265  位置情報が得られた場合はここで指定した国コードは使用されません。
266  国コードをセットしない場合は @ref SetUseGeoIp で位置情報を使用しない設定をした場合、もしくは位置情報を使用する設定をしたが位置情報を得られなかった場合、
267  国コードの比較に関するスコアがデフォルトスコアとして評価されます。
268  @param[in] countryCode 国コード
269  @endif
270  @if CAFE_DOC
271  @brief スコアベースマッチメイク指定時に、比較に使用する国コードを設定します。国コードはプラットフォームで定義された値を設定します。
272  @details @ref SetUseGeoIp で位置情報を使用しない設定をした場合、もしくは位置情報を使用する設定をしたが位置情報を得られなかった場合に使用する国コードをセットします。
273  位置情報が得られた場合はここで指定した国コードは使用されません。
274  国コードをセットしない場合は @ref SetUseGeoIp で位置情報を使用しない設定をした場合、もしくは位置情報を使用する設定をしたが位置情報を得られなかった場合、
275  国コードの比較に関するスコアがデフォルトスコアとして評価されます。
276  @param[in] countryCode 国コード
277  @endif
278  */
279  void SetCountryCode(uint32_t countryCode);
280 
281  /*!
282  @brief スコアベースマッチメイク指定時に、比較に使用するデバッグ用の IP アドレスを設定します。
283  @details 自身の IP アドレスの代わりにこの IP アドレスを使用して GeoIP による位置情報を取得します。 デバッグ用にのみ使用可能です。
284  @param[in] ipAddress 代わりに使用する IP アドレス
285  @return IP アドレスの指定に成功すれば、成功の Result が返されます。
286 
287  @retval nn::pia::ResultInvalidArgument IP アドレスが不正です。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
288  */
290 
291  /*!
292  @brief 関連付けるコミュニティの ID を設定します。
293  @details inet::NexCreateSessionSetting::SetCommunityId で同じコミュニティ ID を指定して作成されたセッションを検索の対象とします。
294  */
295  void SetCommunityId(uint32_t gid);
296 
297  /*!
298  @brief あいことばマッチメイク用のあいことばを設定します。
299  @param[in] keyword 設定するあいことばマッチメイク用のあいことば。あいことばの文字列は SessionMatchmakeKeywordLength 以下である必要があります。
300  @return あいことばの指定に成功すれば、成功の Result が返されます。
301 
302  @retval nn::pia::ResultInvalidArgument 文字列が NULL、文字コードが不正、またはあいことばの最大長を超えています。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
303  */
305 
306  /*!
307  @cond PRIVATE
308  @brief スコアベースマッチメイク指定時に、比較に使用するパラメータを設定します。
309  @param[in] index パラメータのインデックス。AdditionalParamKeySizeMax 以下である必要があります。
310  @param[in] keyString パラメータの名前。AdditionalParamKeyLength 以下である必要があります。
311  @param[in] value パラメータの値
312  @return パラメータの指定に成功すれば、成功の Result が返されます。
313 
314  @retval nn::pia::ResultInvalidArgument パラメータのインデックスが範囲外、またはパラメータの名前の文字列が NULL、文字コードが不正、最大文字列長を超えています。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
315  */
316  Result SetAdditionalScoreBasedParameterValue(uint32_t index, const common::String& keyString, const ParamVariant& value);
317  //! @endcond
318 
319  /*!
320  @cond PRIVATE
321  @brief スコアベースマッチメイク指定時に、比較に使用するパラメータを設定します。
322  @param[in] index パラメータのインデックス。AdditionalParamStringSizeMax 以下である必要があります。
323  @param[in] keyString パラメータの名前。AdditionalParamKeyLength 以下である必要があります。
324  @param[in] value パラメータの文字列。AdditionalParamStringLength 以下である必要があります。
325  @return パラメータの指定に成功すれば、成功の Result が返されます。
326 
327  @retval nn::pia::ResultInvalidArgument パラメータのインデックスが範囲外、またはパラメータの名前やパラメータの文字列が NULL、文字コードが不正、最大文字列長を超えています。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
328  */
329  Result SetAdditionalScoreBasedParameterString(uint32_t index, const common::String& keyString, const common::String& value);
330  //! @endcond
331 
332  /*!
333  @cond PRIVATE
334  */
335  const common::String* GetAdditionalScoreBasedParameterValueKey(uint32_t index) const;
336  const ParamVariant& GetAdditionalScoreBasedParameterValue(uint32_t index) const;
337  bool IsSetAdditionalScoreBasedParameterValue(uint32_t index) const;
338  const common::String* GetAdditionalScoreBasedParameterStringKey(uint32_t index) const;
339  const common::String* GetAdditionalScoreBasedParameterString(uint32_t index) const;
340  bool IsSetAdditionalScoreBasedParameterString(uint32_t index) const;
341  //! @endcond
342 
343  /*!
344  @cond PRIVATE
345  @brief 検索条件として設定した項目のビットマスクを取得します。
346  @defails ビットマスクの各ビットに対応する項目は enum NexCondMask で定義されています。
347  @return 検索条件として設定した項目のビットマスクが返されます。
348  */
349  uint32_t GetCondMask() const;
350  //! @endcond
351 
352  /*!
353  @brief 代入演算子です。
354  @param[in] rhs 代入するオブジェクトです。
355  @return 本オブジェクトへの参照。
356  */
358 
359  /*!
360  @brief 設定をコピーします。
361  @param[in] rhs コピー元のオブジェクトです。
362  */
363  void Copy(const NexSessionSearchCriteria& rhs);
364 
365  /*!
366  @brief コピーコンストラクタ。
367  @param[in] rhs コピー元のオブジェクトです。
368  */
370 
371  /*!
372  @cond PRIVATE
373  @brief 設定されている情報を NEX の検索条件/検索範囲クラスに変換します。
374  */
375  Result ConvertToNexMatchmakeSessionSearchCriteria(
376  nn::nex::MatchmakeSessionSearchCriteria* pCriteria,
377  nn::nex::InetAddress* pNexInetAddress,
378  nn::nex::MatchmakeParam* pMatchmakeParam,
379  nn::nex::ResultRange* pResultRange,
380  uint8_t reportNum = 2) const;
381  //! @endcond
382 
383  /*!
384  @cond PRIVATE
385  @brief デバッグに有用な情報をプリント。
386  */
387  virtual void Trace(uint64_t flag) const;
388  //! @endcond
389 
390  /*!
391  @brief 設定をリセットします。
392  */
393  virtual void Reset();
394 
395  /*!
396  @cond PRIVATE
397  @brief 最低限設定が必要な項目が設定されているかチェックします。
398  */
399  bool IsValid() const;
400  //! @endcond
401 
402  /*!
403  @cond PRIVATE
404  */
405  uint32_t GetGameMode() const;
406  bool IsSetGameMode() const;
407  SessionType GetSessionType() const;
408  bool IsSetSessionType() const;
409  const uint32_t* GetAttributeList(uint32_t index) const;
410  uint32_t GetAttributeListSize(uint32_t index) const;
411  uint32_t GetAttributeRangeMin(uint32_t index) const;
412  uint32_t GetAttributeRangeMax(uint32_t index) const;
413  bool IsAttributeRangeUsed(uint32_t index) const;
414  bool IsSetAttribute(uint32_t index) const;
415  bool IsExcludeNonHostPrincipalId() const;
416  bool IsSetExcludeNonHostPrincipalId() const;
417  bool IsExcludeUserPasswordSet() const;
418  bool IsSetExcludeUserPasswordSet() const;
419  SelectionMethod GetRandomSessionSelectionMethod() const;
420  bool IsSetRandomSessionSelectionMethod() const;
421  uint32_t GetScoreBasedSettingIndex() const;
422  bool IsSetScoreBasedSettingIndex() const;
423  uint32_t GetScoreBasedRatingValue() const;
424  bool IsSetScoreBasedRatingValue() const;
425  uint32_t GetScoreBasedDisconnectionRate() const;
426  bool IsSetScoreBasedDisconnectionRate() const;
427  uint32_t GetScoreBasedViolationRate() const;
428  bool IsSetScoreBasedViolationRate() const;
429 #if NN_PIA_ENABLE_ISO_COUNTRY_CODE
430  const common::String* GetScoreBasedCountryCode() const;
431 #else
432  uint32_t GetScoreBasedCountryCode() const;
433 #endif
434  bool IsSetScoreBasedCountryCode() const;
435  bool IsScoreBasedGeoIpUsed() const;
436  bool IsSetScoreBasedUseGeoIp() const;
437  const common::InetAddress& GetOverrideIpAddress() const;
438  uint32_t GetCommunityId() const;
439  bool IsSetCommunityId() const;
440  bool IsOpenedOnly() const;
441  bool IsSetOpenedOnly() const;
442  bool IsVacantOnly() const;
443  bool IsSetVacantOnly() const;
444  uint16_t GetMinParticipantRangeMin() const;
445  uint16_t GetMinParticipantRangeMax() const;
446  bool IsSetMinParticipantNum() const;
447  uint16_t GetMaxParticipantRangeMin() const;
448  uint16_t GetMaxParticipantRangeMax() const;
449  bool IsSetMaxParticipantNum() const;
450  const common::String& GetSessionMatchmakeKeyword() const;
451  bool IsSetSessionMatchmakeKeyword() const;
452  //! @endcond
453 
454 private:
455  uint32_t m_GameMode;
456  SessionType m_SessionType;
457  uint32_t m_AttributeList[AttributeSizeMax][AttributeArraySizeMax];
458  uint32_t m_AttributeSizeList[AttributeSizeMax];
459  uint32_t m_AttributeRangeMin[AttributeSizeMax];
460  uint32_t m_AttributeRangeMax[AttributeSizeMax];
461  bool m_bAttributeRangeUsed[AttributeSizeMax];
462  bool m_bExcludeNonHostPrincipalId;
463  bool m_bExcludeUserPasswordSet;
464  SelectionMethod m_SelectionMethod;
465 
466  uint32_t m_ScoreBasedSettingIndex;
467  uint32_t m_ScoreBasedRatingValue;
468  uint32_t m_ScoreBasedDisconnectionRate;
469  uint32_t m_ScoreBasedViolationRate;
470 #if NN_PIA_ENABLE_ISO_COUNTRY_CODE
471  common::FixedString<CountryCodeLengthMax> m_ScoreBasedCountryCode;
472 #else
473  uint32_t m_ScoreBasedCountryCode;
474 #endif
475  bool m_IsScoreBasedGeoIpUsed;
476 
477  common::InetAddress m_IpAddress;
478  uint32_t m_CommunityId;
479 
480  uint16_t m_MinParticipantsRangeMax;
481  uint16_t m_MinParticipantsRangeMin;
482  uint16_t m_MaxParticipantsRangeMax;
483  uint16_t m_MaxParticipantsRangeMin;
484  bool m_bOpenedOnly;
485  bool m_bVacantOnly;
486 
487  common::FixedString<AdditionalParamKeyLength> m_AdditionalParamValueKey[AdditionalParamKeySizeMax];
488  struct ParamVariant m_AdditionalParamValue[AdditionalParamKeySizeMax];
489 
490  common::FixedString<AdditionalParamKeyLength> m_AdditionalParamStringKey[AdditionalParamStringSizeMax];
491  common::FixedString<AdditionalParamStringLength> m_AdditionalParamString[AdditionalParamStringSizeMax];
492 
494 
495  uint32_t m_SetCondMask;
496 };
497 }
498 }
499 } // end of namespace nn::pia::inet
500 
501 #endif