Commit 1506ad92 authored by Dennis Jenkins's avatar Dennis Jenkins

Declared CacheDirective single-argument constructor as 'explicit'.

The rest is fallout / fix ups due to that.
parent f6973e50
...@@ -160,7 +160,7 @@ public: ...@@ -160,7 +160,7 @@ public:
, data() , data()
{ } { }
CacheDirective(Directive directive); explicit CacheDirective(Directive directive);
CacheDirective(Directive directive, std::chrono::seconds delta); CacheDirective(Directive directive, std::chrono::seconds delta);
Directive directive() const { return directive_; } Directive directive() const { return directive_; }
......
...@@ -289,6 +289,9 @@ public: ...@@ -289,6 +289,9 @@ public:
: directives_(directives) : directives_(directives)
{ } { }
explicit CacheControl(Http::CacheDirective directive); explicit CacheControl(Http::CacheDirective directive);
explicit CacheControl(Http::CacheDirective::Directive directive):
CacheControl(Http::CacheDirective(directive))
{ }
void parseRaw(const char* str, size_t len) override; void parseRaw(const char* str, size_t len) override;
void write(std::ostream& os) const override; void write(std::ostream& os) const override;
...@@ -296,6 +299,9 @@ public: ...@@ -296,6 +299,9 @@ public:
std::vector<Http::CacheDirective> directives() const { return directives_; } std::vector<Http::CacheDirective> directives() const { return directives_; }
void addDirective(Http::CacheDirective directive); void addDirective(Http::CacheDirective directive);
void addDirective(Http::CacheDirective::Directive directive) {
addDirective(Http::CacheDirective(directive));
}
void addDirectives(const std::vector<Http::CacheDirective>& directives); void addDirectives(const std::vector<Http::CacheDirective>& directives);
private: private:
...@@ -425,6 +431,9 @@ public: ...@@ -425,6 +431,9 @@ public:
explicit ContentType(const Mime::MediaType& mime) explicit ContentType(const Mime::MediaType& mime)
: mime_(mime) : mime_(mime)
{ } { }
explicit ContentType(std::string raw_mime_str)
: ContentType(Mime::MediaType(raw_mime_str))
{ }
void parseRaw(const char* str, size_t len) override; void parseRaw(const char* str, size_t len) override;
void write(std::ostream& os) const override; void write(std::ostream& os) const override;
......
...@@ -60,9 +60,11 @@ TEST(headers_test, accept) ...@@ -60,9 +60,11 @@ TEST(headers_test, accept)
Pistache::Http::Header::Accept a4; Pistache::Http::Header::Accept a4;
ASSERT_THROW(a4.parse("text/*;q=0.4, text/html;q=0.3,"), std::runtime_error); ASSERT_THROW(a4.parse("text/*;q=0.4, text/html;q=0.3,"), std::runtime_error);
/* Shameless dummy comment to work around syntax highlighting bug in nano... */
Pistache::Http::Header::Accept a5; Pistache::Http::Header::Accept a5;
ASSERT_THROW(a5.parse("text/*;q=0.4, text/html;q=0.3, "), std::runtime_error); ASSERT_THROW(a5.parse("text/*;q=0.4, text/html;q=0.3, "), std::runtime_error);
/* Shameless dummy comment to work around syntax highlighting bug in nano... */
} }
TEST(headers_test, allow) TEST(headers_test, allow)
...@@ -220,7 +222,10 @@ TEST(headers_test, cache_control) ...@@ -220,7 +222,10 @@ TEST(headers_test, cache_control)
oss.str(""); oss.str("");
Pistache::Http::Header::CacheControl cc12; Pistache::Http::Header::CacheControl cc12;
cc12.addDirectives({Pistache::Http::CacheDirective::Public, Pistache::Http::CacheDirective(Pistache::Http::CacheDirective::MaxAge, std::chrono::seconds(600))}); cc12.addDirectives({
Pistache::Http::CacheDirective(Pistache::Http::CacheDirective::Public),
Pistache::Http::CacheDirective(Pistache::Http::CacheDirective::MaxAge, std::chrono::seconds(600))
});
cc12.write(oss); cc12.write(oss);
ASSERT_TRUE(oss.str() == "public, max-age=600"); ASSERT_TRUE(oss.str() == "public, max-age=600");
oss.str(""); oss.str("");
...@@ -228,7 +233,7 @@ TEST(headers_test, cache_control) ...@@ -228,7 +233,7 @@ TEST(headers_test, cache_control)
Pistache::Http::Header::CacheControl cc13; Pistache::Http::Header::CacheControl cc13;
std::vector<Pistache::Http::CacheDirective> cd; std::vector<Pistache::Http::CacheDirective> cd;
cd.push_back(Pistache::Http::CacheDirective::Public); cd.push_back(Pistache::Http::CacheDirective(Pistache::Http::CacheDirective::Public));
cd.push_back(Pistache::Http::CacheDirective(Pistache::Http::CacheDirective::MaxAge, std::chrono::seconds(600))); cd.push_back(Pistache::Http::CacheDirective(Pistache::Http::CacheDirective::MaxAge, std::chrono::seconds(600)));
cc13.addDirectives(cd); cc13.addDirectives(cd);
......
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