forked from Mandelhoff/AmoveoMinerGpuCuda
/
poolApi.h
65 lines (50 loc) · 1.19 KB
/
poolApi.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#pragma once
#include <string>
#include <vector>
using namespace std;
using namespace utility; // Common utilities like string conversions
class WorkData
{
private:
unsigned char ctx[0x70];
bool newWork = false;
public:
vector<unsigned char> bhash;
vector<unsigned char> nonce;
int blockDifficulty;
int shareDifficulty;
std::mutex mutexNewWork;
//std::mutex mutexCtx;
public:
WorkData() {
bhash = vector<unsigned char>(32);
nonce = vector<unsigned char>(15);
}
bool HasNewWork() { return newWork; }
void clearNewWork()
{
mutexNewWork.lock();
newWork = false;
mutexNewWork.unlock();
}
void getCtx(unsigned char * pCtx) {
//mutexCtx.lock();
memcpy(pCtx, ctx, 0x70);
//mutexCtx.unlock();
}
void setCtx(unsigned char * pCtx)
{
//mutexCtx.lock();
memcpy(ctx, pCtx, 0x70);
//mutexCtx.unlock();
mutexNewWork.lock();
newWork = true;
mutexNewWork.unlock();
}
};
class PoolApi
{
public:
void GetWork(string_t poolUrl, WorkData * pMinerThreadData, string minerPublicKeyBase64, int gPoolType);
void SubmitWork(string_t poolUrl, string nonceBase64, string minerPublicKeyBase64);
};