AM Daemon ライブラリリファレンス
Output.h
[詳解]
1 /// @file
2 /// @brief ID付けされた出力処理を行うMonostateクラス Output のヘッダ。
3 ///
4 /// Copyright(C)SEGA
5 
6 #ifndef AMDAEMON_OUTPUT_H
7 #define AMDAEMON_OUTPUT_H
8 
9 #include "amdaemon/env.h"
10 #include "amdaemon/OutputUnit.h"
11 #include "amdaemon/OutputId.h"
13 
14 #include <functional>
15 #include <vector>
16 #include <cstddef>
17 
18 namespace amdaemon
19 {
20 /// @addtogroup g_io
21 /// @{
22 
23  /// @brief ID付けされた出力処理を行うMonostateクラス。
24  ///
25  /// Core クラスのメンバ関数 Core#execute 呼び出しによって内容が更新される。
26  ///
27  /// このクラスを利用するためには
28  /// Daemonプロセスの設定ファイルに出力識別ID等の定義を行う必要がある。
29  ///
30  /// @ingroup g_common
31  class Output
32  {
33  public:
34  // 下記は暗黙の定義を用いる。
35  //Output() = default;
36  //‾Output() = default;
37  //Output(const Output&) = default;
38  //Output& operator=(const Output&) = default;
39 
40  /// @brief システムの出力処理インスタンスを取得する。
41  /// @return システムの出力処理インスタンス。
42  ///
43  /// プレイヤーに紐付かない出力がカテゴライズされる。
45 
46  /// @brief システムの出力処理インスタンスを取得する。
47  /// @return システムの出力処理インスタンス。
48  ///
49  /// プレイヤーに紐付かない出力がカテゴライズされる。
50  const OutputUnit& getSystem() const;
51 
52  /// @brief 有効プレイヤー数を取得する。
53  /// @return 有効プレイヤー数。
54  /// @see Core#getPlayerCount
55  ///
56  /// Core#getPlayerCount と同じ値を返す。
57  std::size_t getPlayerCount() const;
58 
59  /// @brief プレイヤーの出力処理インスタンスを取得する。
60  /// @param[in] playerIndex プレイヤーインデックス。
61  /// @return プレイヤーの出力処理インスタンス。
62  /// @see Player
63  ///
64  /// @exception Exception
65  /// 引数 playerIndex に有効プレイヤー数以上の値を指定した場合。
66  /// 有効プレイヤー数はメンバ関数 #getPlayerCount で取得できる。
67  OutputUnit& getPlayer(std::size_t playerIndex);
68 
69  /// @copydoc getPlayer
70  const OutputUnit& getPlayer(std::size_t playerIndex) const;
71 
72  /// @brief プレイヤーの出力処理インスタンス配列を取得する。
73  /// @return プレイヤーの出力処理インスタンス配列。
74  ///
75  /// 範囲for文や各種アルゴリズム関数に渡すことを想定している。
76  ///
77  /// - 有効プレイヤー数を知りたいだけならばメンバ関数 #getPlayerCount を用いること。
78  /// - 特定プレイヤーの処理を行いたいだけならばメンバ関数 #getPlayer を用いること。
79  std::vector<std::reference_wrapper<OutputUnit>> getPlayers()
80  {
81  return
82  ::amdaemon::util::toContainer<decltype(getPlayers())>(
84  [this](std::size_t i) -> OutputUnit& { return getPlayer(i); });
85  }
86 
87  /// @copydoc getPlayers
88  std::vector<std::reference_wrapper<const OutputUnit>> getPlayers() const
89  {
90  return
91  ::amdaemon::util::toContainer<decltype(getPlayers())>(
93  [this](std::size_t i) -> const OutputUnit& { return getPlayer(i); });
94  }
95  };
96 
97 /// @}
98 } // namespace amdaemon
99 
100 #endif // AMDAEMON_OUTPUT_H
カテゴリ単位のID付けされた出力処理を行うクラス。
Definition: OutputUnit.h:52
抽象出力の識別ID型 OutputId のヘッダ。
std::vector< std::reference_wrapper< const OutputUnit > > getPlayers() const
プレイヤーの出力処理インスタンス配列を取得する。
Definition: Output.h:88
std::size_t getPlayerCount() const
有効プレイヤー数を取得する。
Daemonライブラリの環境定義を行うヘッダ。
AM Daemon ライブラリクラス群の基底名前空間。
Definition: Log.h:13
コンテナクラス関連の便利処理を提供するヘッダ。
OutputUnit & getPlayer(std::size_t playerIndex)
プレイヤーの出力処理インスタンスを取得する。
OutputUnit & getSystem()
システムの出力処理インスタンスを取得する。
std::vector< std::reference_wrapper< OutputUnit > > getPlayers()
プレイヤーの出力処理インスタンス配列を取得する。
Definition: Output.h:79
ID付けされた出力処理を行うMonostateクラス。
Definition: Output.h:31
カテゴリ単位のID付けされた出力処理を行うクラス OutputUnit のヘッダ。