Guitar
CommitDetailGetter.h
Go to the documentation of this file.
1 
2 #ifndef COMMITDETAILGETTER_H
3 #define COMMITDETAILGETTER_H
4 
5 #include "GitHash.h"
6 #include <QObject>
7 #include <condition_variable>
8 #include <map>
9 #include <mutex>
10 #include <thread>
11 
12 class GitRunner;
13 
14 class CommitDetailGetter : public QObject {
15  Q_OBJECT
16 public:
17  struct Data {
18  char sign_verify = 0;
19  };
20 private:
21  static constexpr int num_threads = 1;
22 
23  struct Private;
25 
26 
27  struct Request {
28  bool done = false;
29  bool busy = false;
32 
33  explicit operator bool () const
34  {
35  return done;
36  }
37  };
38 public:
40  virtual ~CommitDetailGetter();
41  void start(GitRunner const &git);
42  void stop();
43 private:
44  Data _query(const GitHash &id, bool request_if_not_found, bool lock);
45 public:
46  Data query(const GitHash &id, bool request_if_not_found);
47 signals:
48  void ready();
49 };
50 
51 #endif // COMMITDETAILGETTER_H
static std::string git(std::string const &gitcommand, std::string const &dir, std::string const &cmd)
HEADとの差分を取得する内部実装。
Definition: CommitMessageGenerator.cpp:148
Definition: CommitDetailGetter.h:14
static constexpr int num_threads
Definition: CommitDetailGetter.h:21
Private * m
Definition: CommitDetailGetter.h:23
virtual ~CommitDetailGetter()
Definition: CommitDetailGetter.cpp:21
CommitDetailGetter()
Definition: CommitDetailGetter.cpp:16
void stop()
CommitDetailGetter::stop.
Definition: CommitDetailGetter.cpp:104
Data _query(const GitHash &id, bool request_if_not_found, bool lock)
CommitDetailGetter::query.
Definition: CommitDetailGetter.cpp:131
Data query(const GitHash &id, bool request_if_not_found)
Definition: CommitDetailGetter.cpp:184
void start(GitRunner const &git)
CommitDetailGetter::start.
Definition: CommitDetailGetter.cpp:33
Definition: GitHash.h:9
Definition: GitRunner.h:21
Definition: CommitDetailGetter.h:17
char sign_verify
Definition: CommitDetailGetter.h:18
Definition: CommitDetailGetter.cpp:5
Definition: CommitDetailGetter.h:27
Data data
Definition: CommitDetailGetter.h:31
GitHash id
Definition: CommitDetailGetter.h:30
bool done
Definition: CommitDetailGetter.h:28
bool busy
Definition: CommitDetailGetter.h:29