Move network classes into xmrig namespace.
This commit is contained in:
parent
dbdcc14672
commit
ee667144e8
42 changed files with 481 additions and 332 deletions
|
@ -6,7 +6,7 @@
|
|||
* Copyright 2016 Jay D Dee <jayddee246@gmail.com>
|
||||
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
|
||||
* Copyright 2018 Lee Clagett <https://github.com/vtnerd>
|
||||
* Copyright 2018 SChernykh <https://github.com/SChernykh>
|
||||
* Copyright 2018-2019 SChernykh <https://github.com/SChernykh>
|
||||
* Copyright 2016-2019 XMRig <https://github.com/xmrig>, <support@xmrig.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
@ -132,7 +132,7 @@ void MultiWorker<N>::start()
|
|||
|
||||
for (size_t i = 0; i < N; ++i) {
|
||||
if (*reinterpret_cast<uint64_t*>(m_hash + (i * 32) + 24) < m_state.job.target()) {
|
||||
Workers::submit(JobResult(m_state.job.poolId(), m_state.job.id(), m_state.job.clientId(), *nonce(i), m_hash + (i * 32), m_state.job.diff(), m_state.job.algorithm()));
|
||||
Workers::submit(xmrig::JobResult(m_state.job.poolId(), m_state.job.id(), m_state.job.clientId(), *nonce(i), m_hash + (i * 32), m_state.job.diff(), m_state.job.algorithm()));
|
||||
}
|
||||
|
||||
*nonce(i) += 1;
|
||||
|
@ -149,7 +149,7 @@ void MultiWorker<N>::start()
|
|||
|
||||
|
||||
template<size_t N>
|
||||
bool MultiWorker<N>::resume(const Job &job)
|
||||
bool MultiWorker<N>::resume(const xmrig::Job &job)
|
||||
{
|
||||
if (m_state.job.poolId() == -1 && job.poolId() >= 0 && job.id() == m_pausedState.job.id()) {
|
||||
m_state = m_pausedState;
|
||||
|
@ -237,7 +237,7 @@ bool MultiWorker<N>::verify2(xmrig::Variant variant, const char *test_data)
|
|||
template<size_t N>
|
||||
void MultiWorker<N>::consumeJob()
|
||||
{
|
||||
Job job = Workers::job();
|
||||
xmrig::Job job = Workers::job();
|
||||
m_sequence = Workers::sequence();
|
||||
if (m_state.job == job) {
|
||||
return;
|
||||
|
@ -272,7 +272,7 @@ void MultiWorker<N>::consumeJob()
|
|||
|
||||
|
||||
template<size_t N>
|
||||
void MultiWorker<N>::save(const Job &job)
|
||||
void MultiWorker<N>::save(const xmrig::Job &job)
|
||||
{
|
||||
if (job.poolId() == -1 && m_state.job.poolId() >= 0) {
|
||||
m_pausedState = m_state;
|
||||
|
|
|
@ -48,11 +48,11 @@ protected:
|
|||
void start() override;
|
||||
|
||||
private:
|
||||
bool resume(const Job &job);
|
||||
bool resume(const xmrig::Job &job);
|
||||
bool verify(xmrig::Variant variant, const uint8_t *referenceValue);
|
||||
bool verify2(xmrig::Variant variant, const char *test_data);
|
||||
void consumeJob();
|
||||
void save(const Job &job);
|
||||
void save(const xmrig::Job &job);
|
||||
|
||||
inline uint32_t *nonce(size_t index)
|
||||
{
|
||||
|
@ -61,8 +61,8 @@ private:
|
|||
|
||||
struct State
|
||||
{
|
||||
alignas(16) uint8_t blob[Job::kMaxBlobSize * N];
|
||||
Job job;
|
||||
alignas(16) uint8_t blob[xmrig::Job::kMaxBlobSize * N];
|
||||
xmrig::Job job;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -45,12 +45,12 @@
|
|||
bool Workers::m_active = false;
|
||||
bool Workers::m_enabled = true;
|
||||
Hashrate *Workers::m_hashrate = nullptr;
|
||||
IJobResultListener *Workers::m_listener = nullptr;
|
||||
Job Workers::m_job;
|
||||
xmrig::IJobResultListener *Workers::m_listener = nullptr;
|
||||
xmrig::Job Workers::m_job;
|
||||
Workers::LaunchStatus Workers::m_status;
|
||||
std::atomic<int> Workers::m_paused;
|
||||
std::atomic<uint64_t> Workers::m_sequence;
|
||||
std::list<JobResult> Workers::m_queue;
|
||||
std::list<xmrig::JobResult> Workers::m_queue;
|
||||
std::vector<Handle*> Workers::m_workers;
|
||||
uint64_t Workers::m_ticks = 0;
|
||||
uv_async_t Workers::m_async;
|
||||
|
@ -60,10 +60,10 @@ uv_timer_t Workers::m_timer;
|
|||
xmrig::Controller *Workers::m_controller = nullptr;
|
||||
|
||||
|
||||
Job Workers::job()
|
||||
xmrig::Job Workers::job()
|
||||
{
|
||||
uv_rwlock_rdlock(&m_rwlock);
|
||||
Job job = m_job;
|
||||
xmrig::Job job = m_job;
|
||||
uv_rwlock_rdunlock(&m_rwlock);
|
||||
|
||||
return job;
|
||||
|
@ -139,7 +139,7 @@ void Workers::setEnabled(bool enabled)
|
|||
}
|
||||
|
||||
|
||||
void Workers::setJob(const Job &job, bool donate)
|
||||
void Workers::setJob(const xmrig::Job &job, bool donate)
|
||||
{
|
||||
uv_rwlock_wrlock(&m_rwlock);
|
||||
m_job = job;
|
||||
|
@ -225,7 +225,7 @@ void Workers::stop()
|
|||
}
|
||||
|
||||
|
||||
void Workers::submit(const JobResult &result)
|
||||
void Workers::submit(const xmrig::JobResult &result)
|
||||
{
|
||||
uv_mutex_lock(&m_mutex);
|
||||
m_queue.push_back(result);
|
||||
|
@ -300,7 +300,7 @@ void Workers::onReady(void *arg)
|
|||
|
||||
void Workers::onResult(uv_async_t *handle)
|
||||
{
|
||||
std::list<JobResult> results;
|
||||
std::list<xmrig::JobResult> results;
|
||||
|
||||
uv_mutex_lock(&m_mutex);
|
||||
while (!m_queue.empty()) {
|
||||
|
|
|
@ -38,35 +38,35 @@
|
|||
|
||||
class Handle;
|
||||
class Hashrate;
|
||||
class IJobResultListener;
|
||||
class IWorker;
|
||||
|
||||
|
||||
namespace xmrig {
|
||||
class Controller;
|
||||
class IJobResultListener;
|
||||
}
|
||||
|
||||
|
||||
class Workers
|
||||
{
|
||||
public:
|
||||
static Job job();
|
||||
static xmrig::Job job();
|
||||
static size_t hugePages();
|
||||
static size_t threads();
|
||||
static void printHashrate(bool detail);
|
||||
static void setEnabled(bool enabled);
|
||||
static void setJob(const Job &job, bool donate);
|
||||
static void setJob(const xmrig::Job &job, bool donate);
|
||||
static void start(xmrig::Controller *controller);
|
||||
static void stop();
|
||||
static void submit(const JobResult &result);
|
||||
static void submit(const xmrig::JobResult &result);
|
||||
|
||||
static inline bool isEnabled() { return m_enabled; }
|
||||
static inline bool isOutdated(uint64_t sequence) { return m_sequence.load(std::memory_order_relaxed) != sequence; }
|
||||
static inline bool isPaused() { return m_paused.load(std::memory_order_relaxed) == 1; }
|
||||
static inline Hashrate *hashrate() { return m_hashrate; }
|
||||
static inline uint64_t sequence() { return m_sequence.load(std::memory_order_relaxed); }
|
||||
static inline void pause() { m_active = false; m_paused = 1; m_sequence++; }
|
||||
static inline void setListener(IJobResultListener *listener) { m_listener = listener; }
|
||||
static inline bool isEnabled() { return m_enabled; }
|
||||
static inline bool isOutdated(uint64_t sequence) { return m_sequence.load(std::memory_order_relaxed) != sequence; }
|
||||
static inline bool isPaused() { return m_paused.load(std::memory_order_relaxed) == 1; }
|
||||
static inline Hashrate *hashrate() { return m_hashrate; }
|
||||
static inline uint64_t sequence() { return m_sequence.load(std::memory_order_relaxed); }
|
||||
static inline void pause() { m_active = false; m_paused = 1; m_sequence++; }
|
||||
static inline void setListener(xmrig::IJobResultListener *listener) { m_listener = listener; }
|
||||
|
||||
# ifndef XMRIG_NO_API
|
||||
static void threadsSummary(rapidjson::Document &doc);
|
||||
|
@ -103,12 +103,12 @@ private:
|
|||
static bool m_active;
|
||||
static bool m_enabled;
|
||||
static Hashrate *m_hashrate;
|
||||
static IJobResultListener *m_listener;
|
||||
static Job m_job;
|
||||
static xmrig::IJobResultListener *m_listener;
|
||||
static xmrig::Job m_job;
|
||||
static LaunchStatus m_status;
|
||||
static std::atomic<int> m_paused;
|
||||
static std::atomic<uint64_t> m_sequence;
|
||||
static std::list<JobResult> m_queue;
|
||||
static std::list<xmrig::JobResult> m_queue;
|
||||
static std::vector<Handle*> m_workers;
|
||||
static uint64_t m_ticks;
|
||||
static uv_async_t m_async;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue