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