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