Add IClient and BaseClient.

This commit is contained in:
XMRig 2019-04-10 18:29:33 +07:00
parent 1bd8d63508
commit 9a6944d694
16 changed files with 291 additions and 146 deletions

View file

@ -157,7 +157,7 @@ void xmrig::DonateStrategy::tick(uint64_t now)
}
void xmrig::DonateStrategy::onActive(IStrategy *, Client *client)
void xmrig::DonateStrategy::onActive(IStrategy *, IClient *client)
{
if (isActive()) {
return;
@ -173,7 +173,7 @@ void xmrig::DonateStrategy::onPause(IStrategy *)
}
void xmrig::DonateStrategy::onClose(Client *, int failures)
void xmrig::DonateStrategy::onClose(IClient *, int failures)
{
if (failures == 2 && m_controller->config()->pools().proxyDonate() == Pools::PROXY_DONATE_AUTO) {
m_proxy->deleteLater();
@ -184,7 +184,7 @@ void xmrig::DonateStrategy::onClose(Client *, int failures)
}
void xmrig::DonateStrategy::onLogin(Client *, rapidjson::Document &doc, rapidjson::Value &params)
void xmrig::DonateStrategy::onLogin(IClient *, rapidjson::Document &doc, rapidjson::Value &params)
{
auto &allocator = doc.GetAllocator();
@ -203,7 +203,7 @@ void xmrig::DonateStrategy::onLogin(Client *, rapidjson::Document &doc, rapidjso
}
void xmrig::DonateStrategy::onLoginSuccess(Client *client)
void xmrig::DonateStrategy::onLoginSuccess(IClient *client)
{
if (isActive()) {
return;
@ -227,14 +227,14 @@ xmrig::Client *xmrig::DonateStrategy::createProxy()
}
IStrategy *strategy = m_controller->network()->strategy();
if (!strategy->isActive() || !strategy->client()->has<Client::EXT_CONNECT>()) {
if (!strategy->isActive() || !strategy->client()->hasExtension(IClient::EXT_CONNECT)) {
return nullptr;
}
const Client *client = strategy->client();
m_tls = client->has<Client::EXT_TLS>();
m_tls = client->hasExtension(IClient::EXT_TLS);
Pool pool(client->ip(), client->port(), m_userId, client->pool().password(), 0, true, client->isTLS());
Pool pool(client->ip(), client->pool().port(), m_userId, client->pool().password(), 0, true, client->isTLS());
pool.setAlgo(client->pool().algorithm());
Client *proxy = new Client(-1, Platform::userAgent(), this);
@ -251,7 +251,7 @@ void xmrig::DonateStrategy::idle(double min, double max)
}
void xmrig::DonateStrategy::setJob(Client *client, const Job &job)
void xmrig::DonateStrategy::setJob(IClient *client, const Job &job)
{
if (isActive()) {
m_listener->onJob(this, client, job);
@ -259,7 +259,7 @@ void xmrig::DonateStrategy::setJob(Client *client, const Job &job)
}
void xmrig::DonateStrategy::setResult(Client *client, const SubmitResult &result, const char *error)
void xmrig::DonateStrategy::setResult(IClient *client, const SubmitResult &result, const char *error)
{
m_listener->onResultAccepted(this, client, result, error);
}

View file

@ -51,13 +51,13 @@ public:
~DonateStrategy() override;
protected:
inline bool isActive() const override { return state() == STATE_ACTIVE; }
inline Client *client() const override { return m_proxy ? m_proxy : m_strategy->client(); }
inline void onJob(IStrategy *, Client *client, const Job &job) override { setJob(client, job); }
inline void onJobReceived(Client *client, const Job &job, const rapidjson::Value &) override { setJob(client, job); }
inline void onResultAccepted(Client *client, const SubmitResult &result, const char *error) override { setResult(client, result, error); }
inline void onResultAccepted(IStrategy *, Client *client, const SubmitResult &result, const char *error) override { setResult(client, result, error); }
inline void resume() override {}
inline bool isActive() const override { return state() == STATE_ACTIVE; }
inline Client *client() const override { return m_proxy ? m_proxy : m_strategy->client(); }
inline void onJob(IStrategy *, IClient *client, const Job &job) override { setJob(client, job); }
inline void onJobReceived(IClient *client, const Job &job, const rapidjson::Value &) override { setJob(client, job); }
inline void onResultAccepted(IClient *client, const SubmitResult &result, const char *error) override { setResult(client, result, error); }
inline void onResultAccepted(IStrategy *, IClient *client, const SubmitResult &result, const char *error) override { setResult(client, result, error); }
inline void resume() override {}
int64_t submit(const JobResult &result) override;
void connect() override;
@ -65,12 +65,12 @@ protected:
void stop() override;
void tick(uint64_t now) override;
void onActive(IStrategy *strategy, Client *client) override;
void onActive(IStrategy *strategy, IClient *client) override;
void onPause(IStrategy *strategy) override;
void onClose(Client *client, int failures) override;
void onLogin(Client *client, rapidjson::Document &doc, rapidjson::Value &params) override;
void onLoginSuccess(Client *client) override;
void onClose(IClient *client, int failures) override;
void onLogin(IClient *client, rapidjson::Document &doc, rapidjson::Value &params) override;
void onLoginSuccess(IClient *client) override;
void onTimer(const Timer *timer) override;
@ -87,8 +87,8 @@ private:
Client *createProxy();
void idle(double min, double max);
void setJob(Client *client, const Job &job);
void setResult(Client *client, const SubmitResult &result, const char *error);
void setJob(IClient *client, const Job &job);
void setResult(IClient *client, const SubmitResult &result, const char *error);
void setState(State state);
bool m_tls;