Unverified Commit ea1ed4c0 authored by Dennis Jenkins's avatar Dennis Jenkins Committed by GitHub

Merge pull request #697 from hyperxor/hide_parserbase_internal_details

Hide ParserBase internal details
parents 1b57112a 72c63be6
......@@ -527,7 +527,7 @@ private:
class ParserBase {
public:
ParserBase() : buffer(), cursor(&buffer), allSteps(), currentStep(0) {}
ParserBase();
ParserBase(const ParserBase &other) = delete;
ParserBase(ParserBase &&other) = default;
......@@ -535,18 +535,19 @@ public:
bool feed(const char *data, size_t len);
virtual void reset();
virtual ~ParserBase() {}
virtual ~ParserBase() = default;
State parse();
ArrayStreamBuf<char> buffer;
StreamCursor cursor;
protected:
static constexpr size_t StepsCount = 3;
std::array<std::unique_ptr<Step>, StepsCount> allSteps;
size_t currentStep;
size_t currentStep = 0;
private:
ArrayStreamBuf<char> buffer;
StreamCursor cursor;
};
template <typename Message> class Parser;
......
......@@ -464,6 +464,8 @@ State BodyStep::parseTransferEncoding(
return State::Done;
}
ParserBase::ParserBase() : cursor(&buffer) {}
State ParserBase::parse() {
State state;
do {
......@@ -675,8 +677,7 @@ void ResponseWriter::setMime(const Mime::MediaType &mime) {
auto ct = response_.headers().tryGet<Header::ContentType>();
if (ct) {
ct->setMime(mime);
}
else {
} else {
response_.headers().add(std::make_shared<Header::ContentType>(mime));
}
}
......@@ -711,8 +712,7 @@ Async::Promise<ssize_t> ResponseWriter::sendImpl(Code code, const char *data,
auto contentType = headers().tryGet<Header::ContentType>();
if (contentType) {
contentType->setMime(mime);
}
else {
} else {
headers().add(std::make_shared<Header::ContentType>(mime));
}
}
......
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