CTR-Pia  5.4.3
Game Communication Engine
 全て クラス ネームスペース 関数 変数 型定義 列挙型 列挙型の値 ページ
session_ISessionInfo.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/session/session_Definitions.h>
17 
18 namespace nn
19 {
20 namespace pia
21 {
22 namespace session
23 {
24 /*!
25  @brief セッションの情報へのインターフェースです。
26  */
28 {
29 public:
30  /*!
31  @brief デストラクタ
32  */
33  virtual ~ISessionInfo()
34  {
35  }
36 
37  /*!
38  @brief セッションのゲームモードを取得します。
39  @details インターネット通信時はゲームモードの値を返します。<br />
40  ローカル通信時は通信モード識別用 ID を uint32_t にキャストして返します。
41  @return セッションのゲームモードを返します。
42  */
43  virtual uint32_t GetGameMode() const = 0;
44 
45  /*!
46  @brief セッションの ID を取得します。
47  @return セッションの ID を返します。
48  */
49  virtual uint32_t GetSessionId() const = 0;
50 
51  /*!
52  @brief セッションに参加している人数を取得します。
53  @return セッションに参加している人数を返します。
54  */
55  virtual uint16_t GetCurrentParticipantNum() const = 0;
56 
57  /*!
58  @brief セッションに参加できる最小人数を取得します。
59  @return セッションに参加できる最小人数を返します。
60  */
61  virtual uint16_t GetMinParticipantNum() const = 0;
62 
63  /*!
64  @brief セッションに参加できる最大人数を取得します。
65  @return セッションに参加できる最大人数を返します。
66  */
67  virtual uint16_t GetMaxParticipantNum() const = 0;
68 
69  /*!
70  @brief セッションが参加募集受付状態かどうかを取得します。
71  @return セッションが参加募集受付状態なら true, 参加募集締切状態なら false を返します。
72  */
73  virtual bool IsOpened() const = 0;
74 
75  /*!
76  @brief セッションのアプリケーション定義データを取得します。
77  @details セッションに設定したアプリケーション定義データを取得します。
78  @param[out] pBuffer セッションのアプリケーション定義データのコピー用バッファのポインタ。
79  @param[in] size セッションのアプリケーション定義データのコピー用バッファのサイズ。
80  @return 正常に情報を取得できた場合、成功の Result が返ります。
81  @retval ResultInvalidArgument バッファが NULL ポインタです。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
82  @retval ResultInvalidState アプリケーション定義データが設定されていません。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
83  @retval ResultBufferShortage 設定されているアプリケーション定義データのサイズがバッファのサイズよりも大きいため、コピーできません。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
84  */
85  virtual Result GetApplicationData(void* pBuffer, uint32_t size) const = 0;
86 
87  /*!
88  @brief セッションのアプリケーション定義データの長さを取得します。
89  @return セッションのアプリケーション定義データの長さが返ります。
90  */
91  virtual uint32_t GetApplicationDataSize() const = 0;
92 
93  /*!
94  @brief セッション情報をクリアします。
95  */
96  virtual void Clear() = 0;
97 
98  /*!
99  @brief デバッグに有用な情報をプリントします。
100  @param[in] flag トレースフラグの論理和。詳細は @ref TraceFlag 型を参照してください。
101  */
102  virtual void Trace(uint64_t flag) const = 0;
103 
104 protected:
105  /*!
106  @brief デフォルトコンストラクタ
107  */
108  ISessionInfo()
109  {
110  }
111 };
112 }
113 }
114 } // end of namespace session