AM Daemon ライブラリリファレンス
RequestState.h
[詳解]
1 /// @file
2 /// @brief Daemonプロセスへの処理要求状態を保持するクラス RequestState のヘッダ。
3 ///
4 /// Copyright(C)SEGA
5 
6 #ifndef AMDAEMON_REQUESTSTATE_H
7 #define AMDAEMON_REQUESTSTATE_H
8 
9 #include "amdaemon/env.h"
10 
11 #include <memory>
12 
13 namespace amdaemon
14 {
15  /// @brief Daemonプロセスへの処理要求状態を保持するクラス。
16  /// @see Backup, CanTarget, Aime#sendLog
17  ///
18  /// このクラスの有効なインスタンスをアプリ側で直接生成することはできない。
19  /// Daemonプロセスへ処理要求を行う各種関数の戻り値として取得できる。
20  ///
21  /// コピーおよびムーブはほぼオーバヘッド無く可能である。
22  /// 内部状態はコピーしたインスタンス間で共有される。
23  ///
24  /// @code
25  /// void func(std::vector<amdaemon::BackupRecord>& records)
26  /// {
27  /// amdaemon::Backup backup;
28  /// amdaemon::RequestState state = backup.setupRecords(records);
29  ///
30  /// // ほぼオーバヘッドなくコピー可能
31  /// // temp と state は同じ処理要求状態を共有する
32  /// amdaemon::RequestState temp = state;
33  ///
34  /// // …後略…
35  /// }
36  /// @endcode
38  {
39  public:
40  // 内部情報構造体の前方宣言。
41  struct InnerInfo;
42 
43  /// @brief コンストラクタ。
44  ///
45  /// 無効な処理要求状態として初期化される。
46  RequestState();
47 
48  /// @brief コンストラクタ。
49  /// @note アプリ側からは利用できない。
50  explicit RequestState(const InnerInfo&);
51 
52  /// @brief コピーコンストラクタ。
53  /// @param[in] src コピー元。
54  RequestState(const RequestState& src);
55 
56  /// @brief ムーブコンストラクタ。
57  /// @param[in] src ムーブ元。
59 
60  /// デストラクタ。
62 
63  /// @brief コピー代入演算子のオーバロード。
64  /// @param[in] r 右辺値。
65  /// @return 自身の参照。
67 
68  /// @brief ムーブ代入演算子のオーバロード。
69  /// @param[in] r 右辺値。
70  /// @return 自身の参照。
72 
73  /// @brief 要求が有効であるか否かを取得する。
74  /// @retval true 要求が有効である場合。
75  /// @retval false 要求が無効である場合。
76  bool valid() const;
77 
78  /// @brief 要求がDaemonプロセスへ送信済みであるか否かを取得する。
79  /// @retval true 送信済みである場合。
80  /// @retval false 未送信であるか、要求が無効である場合。
81  ///
82  /// 処理要求元が非同期で動作している場合、
83  /// この関数が true を返してもまだ処理完了していない可能性がある。
84  /// 処理完了済みか否かはメンバ関数 #isDone で取得できる。
85  bool isSent() const;
86 
87  /// @brief 要求が処理完了済みであるか否かを取得する。
88  /// @retval true 処理完了済みである場合。
89  /// @retval false 処理未完了であるか、要求が無効である場合。
90  bool isDone() const;
91 
92  /// @brief 要求が処理成功したか否かを取得する。
93  /// @retval true 処理成功した場合。
94  /// @retval false 処理失敗したか、処理未完了であるか、要求が無効である場合。
95  ///
96  /// メンバ関数 #isDone が false を返す状態の場合、この関数も必ず false を返す。
97  bool isSucceeded() const;
98 
99  private:
100  class Impl;
101 
102  /// pimpl インスタンス。
103  std::shared_ptr<Impl> _impl;
104  };
105 } // namespace amdaemon
106 
107 #endif // AMDAEMON_REQUESTSTATE_H
bool isSent() const
要求がDaemonプロセスへ送信済みであるか否かを取得する。
RequestState & operator=(const RequestState &r)
コピー代入演算子のオーバロード。
bool isSucceeded() const
要求が処理成功したか否かを取得する。
Daemonプロセスへの処理要求状態を保持するクラス。
Definition: RequestState.h:37
Daemonライブラリの環境定義を行うヘッダ。
bool valid() const
要求が有効であるか否かを取得する。
AM Daemon ライブラリクラス群の基底名前空間。
Definition: Log.h:13
bool isDone() const
要求が処理完了済みであるか否かを取得する。
‾RequestState()
デストラクタ。
RequestState()
コンストラクタ。