MXS-2446 Provide access to used urls

Makes it possible to later verify that results are for the
urls one expects them to be.
This commit is contained in:
Johan Wikman
2019-07-02 12:23:18 +03:00
parent 1d4d05be6f
commit 26a4f0d859
2 changed files with 28 additions and 2 deletions

View File

@ -172,6 +172,8 @@ public:
virtual long wait_no_more_than() const = 0; virtual long wait_no_more_than() const = 0;
virtual const std::vector<Result>& results() const = 0; virtual const std::vector<Result>& results() const = 0;
virtual const std::vector<std::string>& urls() const = 0;
}; };
/** /**
@ -258,6 +260,16 @@ public:
return m_sImp->results(); return m_sImp->results();
} }
/**
* The URLs the async operation was invoked with.
*
* @return Vector of urls.
*/
const std::vector<std::string>& urls() const
{
return m_sImp->urls();
}
public: public:
Async(const std::shared_ptr<Imp>& sImp) Async(const std::shared_ptr<Imp>& sImp)
: m_sImp(sImp) : m_sImp(sImp)

View File

@ -197,14 +197,20 @@ public:
return 0; return 0;
} }
const std::vector<Result>& results() const const vector<Result>& results() const
{ {
return m_results; return m_results;
} }
const vector<string>& urls() const
{
return m_urls;
}
private: private:
Async::status_t m_status; Async::status_t m_status;
vector<Result> m_results; vector<Result> m_results;
vector<string> m_urls;
}; };
class HttpImp : public Async::Imp class HttpImp : public Async::Imp
@ -248,6 +254,8 @@ public:
{ {
mxb_assert(m_status == Async::ERROR); mxb_assert(m_status == Async::ERROR);
m_urls = urls;
m_results.reserve(urls.size()); m_results.reserve(urls.size());
m_errbufs.reserve(urls.size()); m_errbufs.reserve(urls.size());
@ -417,11 +425,16 @@ public:
return m_wait_no_more_than; return m_wait_no_more_than;
} }
const std::vector<Result>& results() const const vector<Result>& results() const
{ {
return m_results; return m_results;
} }
const vector<string>& urls() const
{
return m_urls;
}
private: private:
void update_timeout() void update_timeout()
{ {
@ -441,6 +454,7 @@ private:
unordered_map<CURL*, Context> m_curls; unordered_map<CURL*, Context> m_curls;
int m_still_running; int m_still_running;
long m_wait_no_more_than; long m_wait_no_more_than;
vector<string> m_urls;
}; };
} }