CTR-Pia  5.4.3
Game Communication Engine
 全て クラス ネームスペース 関数 変数 型定義 列挙型 列挙型の値 ページ
local_LocalSessionSearchCriteria.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 #include <nn/pia/local/local_LocalSessionTypes.h>
18 #include <nn/pia/session/session_SessionSearchCriteria.h>
19 
20 namespace nn
21 {
22 namespace pia
23 {
24 namespace local
25 {
26 // 先行宣言
27 class LocalScanNetworkSetting;
28 class LocalNetworkDescription;
29 
30 /*!
31  @brief LocalFacade を利用したネットワークのセッションを検索する際に使用する検索条件の基底クラスです。
32 
33  @details アプリケーションが本クラスのインスタンスを作成することはありません。
34  本クラスを継承したクラスを使用してください。
35 
36  @if CTR_DOC
37  @see nn::pia::local::UdsSessionSearchCriteria
38  @elseif NIN_DOC
39  @see nn::pia::local::LdnSessionSearchCriteria
40  @endif
41  */
43 {
44 public:
45  // デストラクタ。
47  {
48  }
49 
50  virtual const LocalScanNetworkSetting* GetLocalScanNetworkSetting() const = 0;
51 
52  /*!
53  @brief 検索条件に最大参加人数を指定します。
54  @param[in] max 検索条件に指定する最大参加人数。
55  */
56  void SetMaxParticipantNum(uint16_t max)
57  {
58  m_MaxParticipantsRangeMax = max;
59  m_MaxParticipantsRangeMin = max;
60  }
61 
62  /*!
63  @brief 検索条件に最大参加人数を範囲指定します。
64  @param[in] min 検索条件に指定する最大参加人数の範囲の下限。
65  @param[in] max 検索条件に指定する最大参加人数の範囲の上限。
66  */
67  void SetMaxParticipantNumRange(uint16_t min, uint16_t max)
68  {
69  m_MaxParticipantsRangeMax = max;
70  m_MaxParticipantsRangeMin = min;
71  };
72 
73  /*!
74  @brief 検索条件に参加受付状態のセッションのみを検索するか指定します。
75  @param[in] bOpenedOnly 参加受付状態のセッションのみを検索する場合は true を指定します。
76  */
77  void SetOpenedOnly(bool bOpenedOnly)
78  {
79  m_bOpenedOnly = bOpenedOnly;
80  }
81 
82  /*!
83  @brief 検索条件に空きがあるセッションのみを検索するか指定します。
84  @param[in] bVacantOnly 空きがあるセッションのみを検索する場合は true を指定します。
85  */
86  void SetVacantOnly(bool bVacantOnly)
87  {
88  m_bVacantOnly = bVacantOnly;
89  }
90 
91  /*!
92  @cond PRIVATE
93  */
94  virtual bool IsHit(const LocalNetworkDescription* pDescription) const = 0;
95  //!@endcond
96 
97  /*!
98  @brief 設定をリセットします。
99  */
100  virtual void Reset()
101  {
103  m_MaxParticipantsRangeMax = InvalidParticipantsNum;
104  m_MaxParticipantsRangeMin = InvalidParticipantsNum;
105  m_bOpenedOnly = true;
106  m_bVacantOnly = false;
107  }
108 
109  // デバッグに有用な情報をプリント。
110  virtual void Trace(uint64_t flag) const
111  {
112  NN_PIA_UNUSED(flag);
113  }
114 
115 protected:
116  // コンストラクタ。
117  LocalSessionSearchCriteria()
118  : session::SessionSearchCriteria(),
119  m_MaxParticipantsRangeMax(InvalidParticipantsNum),
120  m_MaxParticipantsRangeMin(InvalidParticipantsNum),
121  m_bOpenedOnly(true),
122  m_bVacantOnly(false)
123  {
124  }
125 
126  void Copy(const LocalSessionSearchCriteria& rhs)
127  {
128  session::SessionSearchCriteria::Copy(rhs);
129  m_MaxParticipantsRangeMax = rhs.m_MaxParticipantsRangeMax;
130  m_MaxParticipantsRangeMin = rhs.m_MaxParticipantsRangeMin;
131  m_bOpenedOnly = rhs.m_bOpenedOnly;
132  m_bVacantOnly = rhs.m_bVacantOnly;
133  }
134 
135  bool IsHitCommon(const LocalNetworkDescription* pDescription) const;
136 
137  uint16_t m_MaxParticipantsRangeMax;
138  uint16_t m_MaxParticipantsRangeMin;
139  bool m_bOpenedOnly;
140  bool m_bVacantOnly;
141 
142 private:
143  NN_PIA_DISALLOW_COPY(LocalSessionSearchCriteria);
144 };
145 }
146 }
147 } // end of namespace nn::pia::local