aboutsummaryrefslogtreecommitdiffstats
path: root/src/repository.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/repository.h')
-rw-r--r--src/repository.h43
1 files changed, 39 insertions, 4 deletions
diff --git a/src/repository.h b/src/repository.h
index 7779bdf..cd50cdc 100644
--- a/src/repository.h
+++ b/src/repository.h
@@ -26,18 +26,53 @@
class Repository
{
public:
- struct Branch
+ class Transaction
{
- QString branchFrom;
- bool isCreated;
- };
+ Q_DISABLE_COPY(Transaction)
+ friend class Repository;
+ struct FileProperties {
+ int mode;
+ int mark;
+ };
+
+ Repository *repository;
+ QByteArray branchRef;
+ QByteArray svnprefix;
+ QByteArray author;
+ QByteArray log;
+ uint datetime;
+ int revnum;
+ QStringList deletedFiles;
+ QHash<QString, FileProperties> modifiedFiles;
+
+ public:
+ ~Transaction();
+ void commit();
+
+ void setAuthor(const QByteArray &author);
+ void setDateTime(uint dt);
+ void setLog(const QByteArray &log);
+
+ void deleteFile(const QString &path);
+ QIODevice *addFile(const QString &path, int mode, qint64 length);
+ };
Repository(const Rules::Repository &rule);
~Repository();
+ Transaction *newTransaction(const QString &branch, const QString &svnprefix, int revnum);
+
private:
+ struct Branch
+ {
+ QString branchFrom;
+ bool isCreated;
+ };
+
QHash<QString, Branch> branches;
QProcess fastImport;
+
+ Q_DISABLE_COPY(Repository)
};
#endif