CTR-Pia  5.4.3
Game Communication Engine
 全て クラス ネームスペース 関数 変数 型定義 列挙型 列挙型の値 ページ
inet_NexJoinRandomSessionSetting.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/session/session_JoinRandomSessionSetting.h>
21 #include <nn/pia/inet/inet_NexCreateSessionSetting.h>
22 #include <nn/pia/inet/inet_NexSessionSearchCriteria.h>
23 
24 namespace nn
25 {
26 namespace pia
27 {
28 namespace inet
29 {
30 /*!
31  @brief ランダムマッチメイク処理に関する設定を管理するクラスです。
32 
33  @see nn::pia::session::JoinRandomSessionSetting
34  */
36 {
37 public:
38  /*!
39  @brief デフォルトコンストラクタ。
40  */
42 
43  /*!
44  @brief デストラクタ。
45  */
47 
48  /*!
49  @brief ランダムマッチメイクのセッション作成時の設定を指定します。
50  @param[in] pSetting セッション作成時の設定。
51  @return セッション作成時の設定の指定に成功すれば、成功の Result が返されます。
52 
53  @retval nn::pia::ResultInvalidArgument 引数が NULL ポインタです。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
54  */
56 
57  /*!
58  @brief ランダムマッチメイクのセッション検索条件を指定します。
59  @param[in] pSearchCriteria セッション検索条件のリスト。
60  @param[in] searchCriteriaSize セッション検索条件のリストサイズ。SearchCriteriaListSizeMax 以下である必要があります。
61  @return セッション検索条件の指定に成功すれば、成功の Result が返されます。
62 
63  @retval nn::pia::ResultInvalidArgument 検索条件のリストが NULL ポインタ、検索条件が NexSessionSearchCriteria ではない、または検索条件のリストサイズが大きすぎます。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
64  */
65  virtual Result SetSessionSearchCriteria(const session::SessionSearchCriteria* pSearchCriteria, uint32_t searchCriteriaSize);
66 
67  /*!
68  @brief ブロックリストを設定します。
69  @param[in] isMyBlockListUsed 自分がブロックリストに登録しているユーザーをチェックするかどうか。デフォルトは true です。
70  @param[in] isOthersBlockListUsed 自分をブロックリストに登録しているユーザをチェックするかどうか。デフォルトは true です。
71  */
72  void SetBlockListOption(bool isMyBlockListUsed, bool isOthersBlockListUsed);
73 
74  /*!
75  @brief あいことばマッチメイク用のあいことばが重複するセッションを構築しないようにするかどうかを設定します。(NEX 4.2 以降で利用可能)
76  @param[in] isUniqueKeywordEnabled あいことばが重複するセッションを構築しないようにするかどうか。デフォルトは false です。
77  */
78  void SetMatchmakeUniqueKeyword(bool isUniqueKeywordEnabled);
79 
80  /*!
81  @brief 代入演算子です。
82  @param[in] rhs 代入するオブジェクトです。
83  @return 本オブジェクトへの参照。
84  */
86 
87  /*!
88  @brief 設定をコピーします。
89  @param[in] rhs コピー元のオブジェクトです。
90  */
91  void Copy(const NexJoinRandomSessionSetting& rhs);
92 
93  /*!
94  @brief コピーコンストラクタ。
95  @param[in] rhs コピー元のオブジェクトです。
96  */
98 
99  /*!
100  @brief 設定をリセットします。
101  */
102  virtual void Reset();
103 
104  /*!
105  @cond PRIVATE
106  @brief デバッグに有用な情報をプリント。
107  */
108  virtual void Trace(uint64_t flag) const;
109  //! @endcond
110 
111  /*!
112  @cond PRIVATE
113  */
114  virtual session::CreateSessionSetting* GetCreateSessionSetting();
115  virtual session::SessionSearchCriteria* GetSessionSearchCriteria(uint8_t index);
116  virtual const session::CreateSessionSetting* GetCreateSessionSetting() const;
117  virtual const session::SessionSearchCriteria* GetSessionSearchCriteria(uint8_t index) const;
118  virtual uint32_t GetSessionSearchCriteriaSize() const;
119  bool IsMyBlockListUsed() const;
120  bool IsOthersBlockListUsed() const;
121  bool IsMatchmakeUniqueKeywordEnabled() const;
122  //! @endcond
123 
124 protected:
125 
126  NexCreateSessionSetting m_CreateSessionSetting;
127  NexSessionSearchCriteria m_SessionSearchCriteria[SearchCriteriaListSizeMax];
128  uint32_t m_SessionSearchCriteriaSize;
129  bool m_IsMyBlockListUsed;
130  bool m_IsOthersBlockListUsed;
131  bool m_IsMatchmakeUniqueKeywordEnabled;
132 
133 private:
134 };
135 }
136 }
137 } // end of namespace nn::pia::inet
138 
139 #endif