CTR-Pia  5.4.3
Game Communication Engine
 全て クラス ネームスペース 関数 変数 型定義 列挙型 列挙型の値 ページ
local_LdnNetworkFactory.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 
18 #if NN_PIA_NINTENDOSDK
19 
20 #include <nn/pia/local/local_LocalNetworkFactory.h>
21 
22 namespace nn
23 {
24 namespace pia
25 {
26 namespace local
27 {
28 
29 
30 /*!
31  @class nn::pia::local::LdnNetworkFactory
32  @brief LDN ライブラリ(ローカル通信)を利用したネットワークに必要なクラスを生成するためのクラスです(ファクトリパターン)。
33 
34  @details @ref nn::pia::transport::Transport や @ref nn::pia::session::Session に、LdnNetworkFactory クラスを設定することで
35  LocalFacade に合わせたネットワーク関連処理(送受信、セッション管理など)が行われるようになります。
36 
37  @see nn::pia::transport::Transport::Setting, nn::pia::session::Session::Setting
38  */
39 class LdnNetworkFactory : public nn::pia::local::LocalNetworkFactory
40 {
41 public:
42  /*!
43  @name 初期化終了処理
44  @{
45  */
46 
47  /*!
48  @brief デフォルトコンストラクタです。
49  */
50  LdnNetworkFactory(void);
51 
52 
53  /*!
54  @brief デストラクタです。
55  */
56  virtual ~LdnNetworkFactory(void);
57 
58  /*!
59  end of name 初期化終了処理
60  @}
61  */
62 
63  /*!
64  @cond PRIVATE
65  */
66 
67  virtual transport::NetworkFactory* CreateSelf();
68 
69  /*!
70  @brief InputStream を生成します。
71  */
72  virtual nn::pia::common::IPacketInput* CreateInputStream();
73 
74  /*!
75  @brief OutputStream を生成します。
76  */
77  virtual nn::pia::common::IPacketOutput* CreateOutputStream();
78 
79  virtual Result CreateProtocols();
80 
81  /*!
82  @brief 最大参加可能ステーション数を返します。
83  */
84  virtual uint16_t GetMaxStationNum() const;
85 
86  /*!
87  @brief ネットワーク層におけるパケットのヘッダ部分の合計サイズを返します。単位はバイトです。
88  */
89  virtual uint32_t GetHeaderSize() const;
90 
91  /*!
92  @brief デバッグに有用な情報をプリントします。
93 
94  @param[in] flag トレースフラグの論理和。詳細は@ref TraceFlag 型を参照してください。
95  */
96  virtual void Trace(uint64_t flag) const;
97 
98  /*!
99  @brief Session 用 IMatchmakeSession を生成します。
100  */
101  virtual session::IMatchmakeSession* CreateMatchmakeSession();
102 
103  virtual session::ISessionInfoList* CreateSessionInfoList(uint16_t browseSessionInfoListNum);
104 
105  virtual uint16_t GetBrowseSessionInfoListSizeMax() const;
106 
107  virtual uint8_t GetBrowseCommunityInfoListSizeMax() const;
108 
109  virtual bool IsRecentPlayRecordPermitted() const;
110  virtual bool IsMultiplayerPermitted() const;
111 
112  /*!
113  @brief MTU の最大値(UDP、IPv4 のヘッダのようなネットワーク層のヘッダサイズを含む)です。
114  */
115  virtual uint32_t GetMtuSizeMax() const;
116 
117  /*!
118  @brief MTU の最小値(UDP、IPv4 のヘッダのようなネットワーク層のヘッダサイズを含む)です。
119  */
120  virtual uint32_t GetMtuSizeMin() const;
121 
122  /* 自動マッチメイク機能用 */
123 
124 
125  /*!
126  @endcond
127  */
128 
129 protected:
130 private:
131 };
132 }
133 }
134 } // end of namespace nn::pia::local
135 #endif