summaryrefslogtreecommitdiffstats
path: root/xmrstak/jconf.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'xmrstak/jconf.hpp')
-rw-r--r--xmrstak/jconf.hpp74
1 files changed, 74 insertions, 0 deletions
diff --git a/xmrstak/jconf.hpp b/xmrstak/jconf.hpp
new file mode 100644
index 0000000..934d6f8
--- /dev/null
+++ b/xmrstak/jconf.hpp
@@ -0,0 +1,74 @@
+#pragma once
+#include <stdlib.h>
+#include <string>
+#include "Environment.hpp"
+#include "Params.hpp"
+
+class jconf
+{
+public:
+ static jconf* inst()
+ {
+ auto& env = xmrstak::Environment::inst();
+ if(env.pJconfConfig == nullptr)
+ env.pJconfConfig = new jconf;
+ return env.pJconfConfig;
+ };
+
+ bool parse_config(const char* sFilename = xmrstak::Params::inst().configFile.c_str());
+
+ struct thd_cfg {
+ bool bDoubleMode;
+ bool bNoPrefetch;
+ long long iCpuAff;
+ };
+
+ enum slow_mem_cfg {
+ always_use,
+ no_mlck,
+ print_warning,
+ never_use,
+ unknown_value
+ };
+
+ bool GetTlsSetting();
+ bool TlsSecureAlgos();
+ const char* GetTlsFingerprint();
+
+ const char* GetPoolAddress();
+ const char* GetPoolPwd();
+ const char* GetWalletAddress();
+
+ uint64_t GetVerboseLevel();
+ uint64_t GetAutohashTime();
+
+ const char* GetOutputFile();
+
+ uint64_t GetCallTimeout();
+ uint64_t GetNetRetry();
+ uint64_t GetGiveUpLimit();
+
+ uint16_t GetHttpdPort();
+
+ bool DaemonMode();
+
+ bool PreferIpv4();
+
+
+ bool NiceHashMode();
+
+ inline bool HaveHardwareAes() { return bHaveAes; }
+
+ static void cpuid(uint32_t eax, int32_t ecx, int32_t val[4]);
+
+ slow_mem_cfg GetSlowMemSetting();
+
+private:
+ jconf();
+
+ bool check_cpu_features();
+ struct opaque_private;
+ opaque_private* prv;
+
+ bool bHaveAes;
+};
OpenPOWER on IntegriCloud