Guitar
RepositoryModel.h
Go to the documentation of this file.
1 #ifndef REPOSITORYMODEL_H
2 #define REPOSITORYMODEL_H
3 
4 #include "BranchLabel.h"
5 #include "GitRunner.h"
6 
7 typedef QList<GitTag> TagList;
8 typedef QList<GitBranch> BranchList;
9 typedef QList<BranchLabel> BranchLabelList;
10 
12  std::mutex *mutex_ = nullptr;
13 
15  std::map<GitHash, BranchList> branch_map;
16  std::map<GitHash, TagList> tag_map;
17  std::map<int, BranchLabelList> label_map;
18 
19  std::map<QString, GitDiff> diff_cache;
20 
22 
23  RepositoryData(std::mutex *mutex)
24  : mutex_(mutex)
25  {}
26 };
27 
29  struct D {
30  std::optional<GitCommitItemList> commit_log;
31  std::optional<std::map<GitHash, BranchList>> branch_map;
32  std::optional<std::map<GitHash, TagList>> tag_map;
33  std::optional<std::map<int, BranchLabelList>> label_map;
34  };
35  std::shared_ptr<D> p;
37  : p(std::make_shared<D>())
38  {}
40  : p(std::make_shared<D>(*r.p))
41  {}
42 };
43 Q_DECLARE_METATYPE(CommitLogExchangeData)
44 
45 #endif // REPOSITORYMODEL_H
QList< BranchLabel > BranchLabelList
Definition: RepositoryModel.h:9
QList< GitBranch > BranchList
Definition: RepositoryModel.h:8
QList< GitTag > TagList
Definition: RepositoryModel.h:7
Definition: GitTypes.h:142
Definition: GitRunner.h:14
Definition: GitTypes.h:67
Definition: RepositoryModel.h:29
std::optional< std::map< GitHash, TagList > > tag_map
Definition: RepositoryModel.h:32
std::optional< std::map< int, BranchLabelList > > label_map
Definition: RepositoryModel.h:33
std::optional< GitCommitItemList > commit_log
Definition: RepositoryModel.h:30
std::optional< std::map< GitHash, BranchList > > branch_map
Definition: RepositoryModel.h:31
Definition: RepositoryModel.h:28
CommitLogExchangeData(CommitLogExchangeData const &r)
Definition: RepositoryModel.h:39
CommitLogExchangeData()
Definition: RepositoryModel.h:36
std::shared_ptr< D > p
Definition: RepositoryModel.h:35
Definition: RepositoryModel.h:11
std::map< GitHash, TagList > tag_map
Definition: RepositoryModel.h:16
std::map< QString, GitDiff > diff_cache
Definition: RepositoryModel.h:19
GitRunner git_runner
Definition: RepositoryModel.h:21
std::mutex * mutex_
Definition: RepositoryModel.h:12
std::map< GitHash, BranchList > branch_map
Definition: RepositoryModel.h:15
GitCommitItemList commit_log
Definition: RepositoryModel.h:14
RepositoryData(std::mutex *mutex)
Definition: RepositoryModel.h:23
std::map< int, BranchLabelList > label_map
Definition: RepositoryModel.h:17