AM Daemon ライブラリリファレンス
UsbIOGeneralOutput.h
[詳解]
1 /// @file
2 /// @brief USB I/O の汎用出力処理を行うクラス UsbIOGeneralOutput のヘッダ。
3 ///
4 /// Copyright(C)SEGA
5 
6 #ifndef AMDAEMON_USBIOGENERALOUTPUT_H
7 #define AMDAEMON_USBIOGENERALOUTPUT_H
8 
9 #include "amdaemon/env.h"
10 #include "amdaemon/RequestState.h"
11 
12 #include <cstdint>
13 #include <cstddef>
14 
15 namespace amdaemon
16 {
17 /// @addtogroup g_usbio
18 /// @{
19 
20  // 内部クラスの前方宣言
21  class InnerIndexHolder;
22 
23  /// @brief USB I/O の汎用出力処理を行うクラス。
24  /// @see UsbIO, UsbIONode
25  ///
26  /// このクラスのインスタンスをアプリ側で直接生成することはできない。
27  /// UsbIONode クラスのメンバ関数 UsbIONode#getGeneralOutput から取得すること。
29  {
30  public:
31  /// 最大有効ビット数。
32  static const std::size_t MaxBitCount = 64;
33 
34  public:
35  /// @brief コンストラクタ。
36  /// @note アプリ側からは利用できない。
37  explicit UsbIOGeneralOutput(InnerIndexHolder);
38 
39  // 下記は暗黙の定義を用いる。
40  //‾UsbIOGeneralOutput();
41 
42  /// @brief 出力するビット列を設定する。
43  /// @param[in] bits 出力するビット列。
44  /// @param[in] forceUpdate
45  /// 値が変化しない場合も更新要求するならば true 。既定値は false 。
46  /// @return 要求状態値。更新不要ならば無効値。
47  ///
48  /// この関数を呼び出しても即座に出力されるわけではない。
49  /// 反映状況は戻り値の要求状態値で確認できる。
50  ///
51  /// 引数 forceUpdate が false かつ値が変化しない場合、更新不要と判断される。
52  /// その場合、戻り値の要求状態値は無効値となる。
53  ///
54  /// この関数を同一フレーム内で複数回呼びだした場合、
55  /// 最後の呼び出し時に指定した値のみが反映される。
56  RequestState setBits(std::uint64_t bits, bool forceUpdate = false);
57 
58  /// @brief 出力するビット列をリセットする。
59  /// @param[in] forceUpdate
60  /// 値が変化しない場合も更新要求するならば true 。既定値は false 。
61  /// @return 要求状態値。
62  ///
63  /// メンバ関数 #setBits を第1引数値 0 で呼び出すことと同義。
64  RequestState resetBits(bool forceUpdate = false)
65  {
66  return this->setBits(0, forceUpdate);
67  }
68 
69  /// @brief 出力するビット値を設定する。
70  /// @param[in] bitIndex ビットインデックス。
71  /// @param[in] on ビットを立てるならば true 。下ろすならば false 。
72  /// @param[in] forceUpdate
73  /// 値が変化しない場合も更新要求するならば true 。既定値は false 。
74  /// @return 要求状態値。
75  ///
76  /// @exception Exception
77  /// 引数 bitIndex に #MaxBitCount 以上の値を指定した場合。
78  ///
79  /// この関数を呼び出しても即座に出力されるわけではない。
80  /// 反映状況は戻り値の要求状態値で確認できる。
81  ///
82  /// 引数 forceUpdate が false かつ値が変化しない場合、更新不要と判断される。
83  /// その場合、戻り値の要求状態値は無効値となる。
84  ///
85  /// この関数を同一フレーム内で同一ビットインデックスに対して複数回呼びだした場合、
86  /// 最後の呼び出し時に指定した値のみが反映される。
87  /// 異なるビットインデックスに対して呼びだした場合はマージされる。
88  RequestState setBit(std::size_t bitIndex, bool on, bool forceUpdate = false);
89 
90  /// @brief 現在設定されているビット列を取得する。
91  /// @return 現在設定されているビット列。
92  ///
93  /// 現在ライブラリ内で保持しているビット列を返す。
94  /// 起動直後などは、実デバイスにこの値が設定されているとは限らない。
95  std::uint64_t getCurrentBits() const;
96 
97  private:
98  std::size_t _nodeIndex; ///< ノードインデックス。
99 
100  private:
101  // コピー禁止
102  UsbIOGeneralOutput(const UsbIOGeneralOutput&); // 宣言のみ
103  UsbIOGeneralOutput& operator=(const UsbIOGeneralOutput&); // 宣言のみ
104  };
105 
106 /// @}
107 } // namespace amdaemon
108 
109 #endif // AMDAEMON_USBIOGENERALOUTPUT_H
UsbIOGeneralOutput(InnerIndexHolder)
コンストラクタ。
RequestState resetBits(bool forceUpdate=false)
出力するビット列をリセットする。
Definition: UsbIOGeneralOutput.h:64
std::uint64_t getCurrentBits() const
現在設定されているビット列を取得する。
Daemonプロセスへの処理要求状態を保持するクラス。
Definition: RequestState.h:37
RequestState setBits(std::uint64_t bits, bool forceUpdate=false)
出力するビット列を設定する。
Daemonライブラリの環境定義を行うヘッダ。
RequestState setBit(std::size_t bitIndex, bool on, bool forceUpdate=false)
出力するビット値を設定する。
AM Daemon ライブラリクラス群の基底名前空間。
Definition: Log.h:13
Daemonプロセスへの処理要求状態を保持するクラス RequestState のヘッダ。
USB I/O の汎用出力処理を行うクラス。
Definition: UsbIOGeneralOutput.h:28
static const std::size_t MaxBitCount
最大有効ビット数。
Definition: UsbIOGeneralOutput.h:32