Commit 8ddd0d30 authored by knowledge4igor's avatar knowledge4igor

Code improvements: lambdas and tiny changes

parent 86df28c3
...@@ -38,13 +38,7 @@ struct Connection : public std::enable_shared_from_this<Connection> { ...@@ -38,13 +38,7 @@ struct Connection : public std::enable_shared_from_this<Connection> {
using OnDone = std::function<void()>; using OnDone = std::function<void()>;
Connection() Connection();
: fd(-1)
, requestEntry(nullptr)
{
state_.store(static_cast<uint32_t>(State::Idle));
connectionState_.store(NotConnected);
}
struct RequestData { struct RequestData {
...@@ -180,7 +174,6 @@ public: ...@@ -180,7 +174,6 @@ public:
: requestsQueue() : requestsQueue()
, connectionsQueue() , connectionsQueue()
, connections() , connections()
, requests()
, timeouts() , timeouts()
{ } { }
...@@ -188,7 +181,6 @@ public: ...@@ -188,7 +181,6 @@ public:
: requestsQueue() : requestsQueue()
, connectionsQueue() , connectionsQueue()
, connections() , connections()
, requests()
, timeouts() , timeouts()
{ } { }
...@@ -254,7 +246,6 @@ private: ...@@ -254,7 +246,6 @@ private:
PollableQueue<ConnectionEntry> connectionsQueue; PollableQueue<ConnectionEntry> connectionsQueue;
std::unordered_map<Fd, ConnectionEntry> connections; std::unordered_map<Fd, ConnectionEntry> connections;
std::unordered_map<Fd, RequestEntry> requests;
std::unordered_map<Fd, std::shared_ptr<Connection>> timeouts; std::unordered_map<Fd, std::shared_ptr<Connection>> timeouts;
void asyncSendRequestImpl(const RequestEntry& req, WriteStatus status = FirstTry); void asyncSendRequestImpl(const RequestEntry& req, WriteStatus status = FirstTry);
......
...@@ -348,6 +348,14 @@ Transport::handleTimeout(const std::shared_ptr<Connection>& connection) { ...@@ -348,6 +348,14 @@ Transport::handleTimeout(const std::shared_ptr<Connection>& connection) {
connection->handleTimeout(); connection->handleTimeout();
} }
Connection::Connection()
: fd(-1)
, requestEntry(nullptr)
{
state_.store(static_cast<uint32_t>(State::Idle));
connectionState_.store(NotConnected);
}
void void
Connection::connect(const Address& addr) Connection::connect(const Address& addr)
{ {
...@@ -799,7 +807,8 @@ Client::doRequest( ...@@ -799,7 +807,8 @@ Client::doRequest(
auto conn = pool.pickConnection(s.first); auto conn = pool.pickConnection(s.first);
if (conn == nullptr) { if (conn == nullptr) {
return Async::Promise<Response>([=](Async::Resolver& resolve, Async::Rejection& reject) { // TODO: C++14 - use capture move for s
return Async::Promise<Response>([this, s, request, timeout](Async::Resolver& resolve, Async::Rejection& reject) {
Guard guard(queuesLock); Guard guard(queuesLock);
auto data = std::make_shared<Connection::RequestData>(std::move(resolve), std::move(reject), request, timeout, nullptr); auto data = std::make_shared<Connection::RequestData>(std::move(resolve), std::move(reject), request, timeout, nullptr);
...@@ -820,7 +829,7 @@ Client::doRequest( ...@@ -820,7 +829,7 @@ Client::doRequest(
} }
if (!conn->isConnected()) { if (!conn->isConnected()) {
auto res = conn->asyncPerform(request, timeout, [=]() { auto res = conn->asyncPerform(request, timeout, [this, conn]() {
pool.releaseConnection(conn); pool.releaseConnection(conn);
processRequestQueue(); processRequestQueue();
}); });
...@@ -828,7 +837,7 @@ Client::doRequest( ...@@ -828,7 +837,7 @@ Client::doRequest(
return res; return res;
} }
return conn->perform(request, timeout, [=]() { return conn->perform(request, timeout, [this, conn]() {
pool.releaseConnection(conn); pool.releaseConnection(conn);
processRequestQueue(); processRequestQueue();
}); });
...@@ -860,7 +869,7 @@ Client::processRequestQueue() { ...@@ -860,7 +869,7 @@ Client::processRequestQueue() {
data->request, data->request,
data->timeout, data->timeout,
std::move(data->resolve), std::move(data->reject), std::move(data->resolve), std::move(data->reject),
[=]() { [this, conn]() {
pool.releaseConnection(conn); pool.releaseConnection(conn);
processRequestQueue(); processRequestQueue();
}); });
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment