Commit 7e1c1a00 authored by knowledge4igor's avatar knowledge4igor

Move parser to Connection level

parent c5a6c77f
......@@ -133,6 +133,7 @@ private:
Queue<RequestData> requestsQueue;
TimerPool timerPool_;
Private::Parser<Http::Response> parser;
};
class ConnectionPool {
......
......@@ -415,7 +415,6 @@ Connection::hasTransport() const {
void
Connection::handleResponsePacket(const char* buffer, size_t totalBytes) {
Private::Parser<Http::Response> parser;
parser.feed(buffer, totalBytes);
if (parser.parse() == Private::State::Done) {
if (requestEntry) {
......@@ -425,6 +424,8 @@ Connection::handleResponsePacket(const char* buffer, size_t totalBytes) {
}
requestEntry->resolve(std::move(parser.response));
parser.reset();
auto onDone = requestEntry->onDone;
requestEntry.reset(nullptr);
......@@ -432,9 +433,6 @@ Connection::handleResponsePacket(const char* buffer, size_t totalBytes) {
if (onDone)
onDone();
}
} else {
// TODO: Do more specific error
requestEntry->reject(Error("Response problem"));
}
}
......
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