summaryrefslogtreecommitdiffstats
path: root/logic/Env.h
diff options
context:
space:
mode:
Diffstat (limited to 'logic/Env.h')
-rw-r--r--logic/Env.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/logic/Env.h b/logic/Env.h
new file mode 100644
index 00000000..523c51f0
--- /dev/null
+++ b/logic/Env.h
@@ -0,0 +1,44 @@
+#pragma once
+
+#include <memory>
+#include <QString>
+
+class QNetworkAccessManager;
+class HttpMetaCache;
+
+#if defined(ENV)
+ #undef ENV
+#endif
+#define ENV (Env::getInstance())
+
+class Env
+{
+ friend class MultiMC;
+private:
+ Env();
+public:
+ static Env& getInstance();
+
+ // call when Qt stuff is being torn down
+ void destroy();
+
+ std::shared_ptr<QNetworkAccessManager> qnam()
+ {
+ return m_qnam;
+ }
+
+ std::shared_ptr<HttpMetaCache> metacache()
+ {
+ return m_metacache;
+ }
+
+ /// init the cache. FIXME: possible future hook point
+ void initHttpMetaCache(QString rootPath, QString staticDataPath);
+
+ /// Updates the application proxy settings from the settings object.
+ void updateProxySettings(QString proxyTypeStr, QString addr, int port, QString user, QString password);
+
+protected:
+ std::shared_ptr<QNetworkAccessManager> m_qnam;
+ std::shared_ptr<HttpMetaCache> m_metacache;
+};