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 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();
}
/**
* The URLs the async operation was invoked with.
*
* @return Vector of urls.
*/
const std::vector<std::string>& urls() const
{
return m_sImp->urls();
}
public:
Async(const std::shared_ptr<Imp>& sImp)
: m_sImp(sImp)

View File

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