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