aboutsummaryrefslogtreecommitdiff
path: root/launcher/FileSystem.h
diff options
context:
space:
mode:
authorRachel Powers <508861+Ryex@users.noreply.github.com>2023-02-08 12:36:15 -0800
committerRachel Powers <508861+Ryex@users.noreply.github.com>2023-03-20 14:56:32 -0700
commit8ba51c790098ec9ebe3d2ef686f823b61c8a3645 (patch)
treeb6926d21f6bffa404961314a012392973c8f9a6b /launcher/FileSystem.h
parent6d160a7b7e31034c7a657f30003562c20f9b9c21 (diff)
downloadPrismLauncher-8ba51c790098ec9ebe3d2ef686f823b61c8a3645.tar.gz
PrismLauncher-8ba51c790098ec9ebe3d2ef686f823b61c8a3645.tar.bz2
PrismLauncher-8ba51c790098ec9ebe3d2ef686f823b61c8a3645.zip
refactor: make complete list of links to make and send that.
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
Diffstat (limited to 'launcher/FileSystem.h')
-rw-r--r--launcher/FileSystem.h35
1 files changed, 25 insertions, 10 deletions
diff --git a/launcher/FileSystem.h b/launcher/FileSystem.h
index b15d1685..2e739298 100644
--- a/launcher/FileSystem.h
+++ b/launcher/FileSystem.h
@@ -133,13 +133,22 @@ struct LinkPair {
QString dst;
};
-class ExternalLinkFileProcess : public QThread
-{
+struct LinkResult {
+ QString src;
+ QString dst;
+ QString err_msg;
+ int err_value;
+};
+
+class ExternalLinkFileProcess : public QThread {
Q_OBJECT
public:
- ExternalLinkFileProcess(QString server, QObject* parent = nullptr) : QThread(parent), m_server(server) {}
+ ExternalLinkFileProcess(QString server, bool useHardLinks, QObject* parent = nullptr)
+ : QThread(parent), m_server(server), m_useHardLinks(useHardLinks)
+ {}
- void run() override {
+ void run() override
+ {
runLinkFile();
emit processExited();
}
@@ -150,6 +159,8 @@ class ExternalLinkFileProcess : public QThread
private:
void runLinkFile();
+ bool m_useHardLinks = false;
+
QString m_server;
};
@@ -200,19 +211,21 @@ class create_link : public QObject {
bool operator()(bool dryRun = false) { return operator()(QString(), dryRun); }
- bool runPrivlaged() { return runPrivlaged(QString()); }
- bool runPrivlaged(const QString& offset);
+ void runPrivlaged() { runPrivlaged(QString()); }
+ void runPrivlaged(const QString& offset);
int totalLinked() { return m_linked; }
signals:
- void fileLinked(const QString& relativeName);
- void linkFailed(const QString& srcName, const QString& dstName, std::error_code err);
- void finishedPrivlaged();
+ void fileLinked(const QString& srcName, const QString& dstName);
+ void linkFailed(const QString& srcName, const QString& dstName, const QString& err_msg, int err_value);
+ void finishedPrivlaged(bool gotResults);
+ void finished();
private:
bool operator()(const QString& offset, bool dryRun = false);
- bool make_link(const QString& src_path, const QString& dst_path, const QString& offset, bool dryRun);
+ void make_link_list(const QString& offset);
+ bool make_links();
private:
bool m_useHardLinks = false;
@@ -221,6 +234,8 @@ class create_link : public QObject {
bool m_recursive = true;
QList<LinkPair> m_path_pairs;
+ QList<LinkResult> m_path_results;
+ QList<LinkPair> m_links_to_make;
int m_linked;
bool m_debug = false;