#ifndef LOCAL_GIT_REPOSITORY_H_INCLUDED #define LOCAL_GIT_REPOSITORY_H_INCLUDED #include #include #include #include #include #include #include #include class GitLibrary; class LocalGitRepository { friend class GitLibrary; QString m_localRepository; mutable QByteArray m_fileMenu; mutable int32_t m_fileMenuSize; git_repository *m_git_repository; static QString repoRootDirectory; static QMap localGitRepos; protected: // force heap-based objects LocalGitRepository(QString const &localRepository); ~LocalGitRepository(); public: static void SetReposRootDirectory(QString s); static QString GetReposRootDirectory(); static LocalGitRepository *GetInstance(QString const &localRepository); static bool DestroyInstance(QString const &localRepository); static void DestroyAllRepositories(); static QMap &GetLocalGitRepos(); QString localRepositoryName() const; QString localRepositoryPath() const; void SetGitRepository(git_repository *git_repo); git_repository const *GetGitRepository() const; git_repository *GetGitRepository(); static QString localRepositoryPath(QString const &localRepository); QByteArray GetFileMenuInternal(); int32_t GetFileMenuSizeInternal() const; QByteArray GetFileNameInternal(QString const &fileId); int32_t GetFileSize(QString const &fileId); QByteArray GetFileInternal(QString const &fileId); bool SetFileInternal(QString const &fileId, QByteArray const &json); }; #endif // LOCAL_GIT_REPOSITORY_H_INCLUDED