pool/stratum/remote.h
2015-07-02 20:58:24 +02:00

96 lines
1.5 KiB
C++

#define YAAMP_REMOTE_CLOSED 0
#define YAAMP_REMOTE_SUBSCRIBE 1
#define YAAMP_REMOTE_AUTHORIZE 2
#define YAAMP_REMOTE_EXTRANONCE 3
#define YAAMP_REMOTE_READY 4
#define YAAMP_REMOTE_RESET 5
#define YAAMP_REMOTE_TERMINATE 6
class YAAMP_SUBMIT;
class YAAMP_RENTER: public YAAMP_OBJECT
{
public:
double balance;
int updated;
};
class YAAMP_REMOTE: public YAAMP_OBJECT
{
public:
bool touch;
// bool allocated;
bool kill;
// bool reset_balance;
int status;
int updated;
YAAMP_RENTER *renter;
pthread_t thread;
YAAMP_SOCKET *sock;
char jobid[32];
char nonce1[32];
int nonce2size;
char nonce1_next[32];
int nonce2size_next;
double difficulty_actual;
double difficulty_next;
double difficulty_written;
double price;
double speed;
double speed_avg;
// char session_id[1024];
char host[1024];
int port;
char username[1024];
char password[1024];
YAAMP_JOB *job;
YAAMP_SUBMIT *submit_last;
};
inline void remote_delete(YAAMP_OBJECT *object)
{
YAAMP_REMOTE *remote = (YAAMP_REMOTE *)object;
object_delete(remote->job);
socket_close(remote->sock);
pthread_detach(remote->thread);
delete remote;
}
bool remote_can_mine(YAAMP_REMOTE *remote);
void remote_sort();
bool remote_connected(YAAMP_REMOTE *remote);
void remote_close(YAAMP_REMOTE *remote);
void *remote_thread(void *p);
void remote_create_job(YAAMP_REMOTE *remote, json_value *json_params);
void remote_submit(YAAMP_CLIENT *client, YAAMP_JOB *job, YAAMP_JOB_VALUES *submitvalues, char *extranonce2, char *ntime, char *nonce);