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 "GitObjectManager.h"
6 #include "RepositoryInfo.h"
7 #include <optional>
8 #include <map>
9 #include <memory>
10 
11 typedef QList<Git::Tag> TagList;
12 typedef QList<Git::Branch> BranchList;
13 typedef QList<BranchLabel> BranchLabelList;
14 
17  std::map<Git::Hash, BranchList> branch_map;
18  std::map<Git::Hash, TagList> tag_map;
19  std::map<int, BranchLabelList> label_map;
20 
21  std::map<QString, Git::Diff> diff_cache;
23 
25 };
26 
28  struct D {
29  std::optional<Git::CommitItemList> commit_log;
30  std::optional<std::map<Git::Hash, BranchList>> branch_map;
31  std::optional<std::map<Git::Hash, TagList>> tag_map;
32  std::optional<std::map<int, BranchLabelList>> label_map;
33  };
34  std::shared_ptr<D> p;
36  : p(std::make_shared<D>())
37  {}
39  : p(std::make_shared<D>(*r.p))
40  {}
41 };
42 Q_DECLARE_METATYPE(CommitLogExchangeData)
43 
44 #endif // REPOSITORYMODEL_H
QList< Git::Branch > BranchList
Definition: RepositoryModel.h:12
QList< BranchLabel > BranchLabelList
Definition: RepositoryModel.h:13
QList< Git::Tag > TagList
Definition: RepositoryModel.h:11
Definition: GitObjectManager.h:40
Definition: Git.h:408
Definition: Git.h:144
Definition: RepositoryModel.h:28
std::optional< std::map< Git::Hash, TagList > > tag_map
Definition: RepositoryModel.h:31
std::optional< std::map< Git::Hash, BranchList > > branch_map
Definition: RepositoryModel.h:30
std::optional< Git::CommitItemList > commit_log
Definition: RepositoryModel.h:29
std::optional< std::map< int, BranchLabelList > > label_map
Definition: RepositoryModel.h:32
Definition: RepositoryModel.h:27
CommitLogExchangeData(CommitLogExchangeData const &r)
Definition: RepositoryModel.h:38
CommitLogExchangeData()
Definition: RepositoryModel.h:35
std::shared_ptr< D > p
Definition: RepositoryModel.h:34
Definition: RepositoryModel.h:15
std::map< QString, Git::Diff > diff_cache
Definition: RepositoryModel.h:21
Git::CommitItemList commit_log
Definition: RepositoryModel.h:16
std::map< Git::Hash, TagList > tag_map
Definition: RepositoryModel.h:18
Git::CommandCache git_command_cache
Definition: RepositoryModel.h:24
GitObjectCache object_cache
Definition: RepositoryModel.h:22
std::map< int, BranchLabelList > label_map
Definition: RepositoryModel.h:19
std::map< Git::Hash, BranchList > branch_map
Definition: RepositoryModel.h:17