ATBTariffCalculator/CalculatorCInterface/local_git_repository.h

59 lines
1.7 KiB
C
Raw Normal View History

2024-03-21 16:57:02 +01:00
#ifndef LOCAL_GIT_REPOSITORY_H_INCLUDED
#define LOCAL_GIT_REPOSITORY_H_INCLUDED
#include <QByteArray>
#include <QString>
#include <QJsonDocument>
#include <QJsonArray>
#include <QJsonObject>
2024-03-27 08:40:16 +01:00
#include <QDir>
2024-03-28 16:45:46 +01:00
#include <QMap>
2024-03-21 16:57:02 +01:00
2024-03-28 16:45:46 +01:00
#include <git2.h>
class GitLibrary;
2024-03-21 16:57:02 +01:00
class LocalGitRepository {
2024-03-28 16:45:46 +01:00
friend class GitLibrary;
2024-03-21 16:57:02 +01:00
QString m_localRepository;
mutable QByteArray m_fileMenu;
mutable int32_t m_fileMenuSize;
2024-03-28 16:45:46 +01:00
git_repository *m_git_repository;
static QString repoRootDirectory;
static QMap<QString, LocalGitRepository *> localGitRepos;
protected: // force heap-based objects
LocalGitRepository(QString const &localRepository);
~LocalGitRepository();
2024-03-27 08:40:16 +01:00
2024-03-21 16:57:02 +01:00
public:
2024-03-27 08:40:16 +01:00
static void SetReposRootDirectory(QString s);
static QString GetReposRootDirectory();
2024-03-28 16:45:46 +01:00
static LocalGitRepository *GetInstance(QString const &localRepository);
static bool DestroyInstance(QString const &localRepository);
static void DestroyAllRepositories();
static QMap<QString, LocalGitRepository *> &GetLocalGitRepos();
QString localRepositoryName() const;
QString localRepositoryPath() const;
2024-03-21 16:57:02 +01:00
2024-03-28 16:45:46 +01:00
void SetGitRepository(git_repository *git_repo);
git_repository const *GetGitRepository() const;
git_repository *GetGitRepository();
2024-03-27 08:40:16 +01:00
2024-03-28 16:45:46 +01:00
static QString localRepositoryPath(QString const &localRepository);
2024-03-21 16:57:02 +01:00
2024-03-25 16:13:26 +01:00
QByteArray GetFileMenuInternal();
int32_t GetFileMenuSizeInternal() const;
QByteArray GetFileNameInternal(QString const &fileId);
2024-03-21 16:57:02 +01:00
int32_t GetFileSize(QString const &fileId);
2024-03-25 16:13:26 +01:00
QByteArray GetFileInternal(QString const &fileId);
2024-03-21 16:57:02 +01:00
2024-03-25 16:13:26 +01:00
bool SetFileInternal(QString const &fileId, QByteArray const &json);
2024-03-21 16:57:02 +01:00
};
#endif // LOCAL_GIT_REPOSITORY_H_INCLUDED