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