Enable cppcoreguidelines-special-member-functions checks
Part of enforcing cpp core guidelines involves explicitly including all
constructors required on a non-trivial class. We were missing quite a
few. In all cases, the copy/move/and operator= methods are simply
deleted.
Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: Ie8d6e8bf2bc311fa21a9ae48b0d61ee5c1940999
diff --git a/http/app.hpp b/http/app.hpp
index b4ccd95..8dcec48 100644
--- a/http/app.hpp
+++ b/http/app.hpp
@@ -44,6 +44,11 @@
this->stop();
}
+ App(const App&) = delete;
+ App(App&&) = delete;
+ App& operator=(const App&) = delete;
+ App& operator=(const App&&) = delete;
+
template <typename Adaptor>
void handleUpgrade(const Request& req, Response& res, Adaptor&& adaptor)
{
diff --git a/http/http_connection.hpp b/http/http_connection.hpp
index 6de2bf7..77886c5 100644
--- a/http/http_connection.hpp
+++ b/http/http_connection.hpp
@@ -81,6 +81,11 @@
<< connectionCount;
}
+ Connection(const Connection&) = delete;
+ Connection(Connection&&) = delete;
+ Connection& operator=(const Connection&) = delete;
+ Connection& operator=(Connection&&) = delete;
+
void prepareMutualTls()
{
std::error_code error;
diff --git a/http/http_request.hpp b/http/http_request.hpp
index 4567314..be1c2a2 100644
--- a/http/http_request.hpp
+++ b/http/http_request.hpp
@@ -46,7 +46,10 @@
}
Request(const Request&) = delete;
+ Request(const Request&&) = delete;
Request& operator=(const Request&) = delete;
+ Request& operator=(const Request&&) = delete;
+ ~Request() = default;
boost::beast::http::verb method() const
{
diff --git a/http/http_response.hpp b/http/http_response.hpp
index a983d4a..08b76f2 100644
--- a/http/http_response.hpp
+++ b/http/http_response.hpp
@@ -39,6 +39,10 @@
Response() : stringResponse(response_type{})
{}
+ ~Response() = default;
+
+ Response(const Response&) = delete;
+ Response(Response&&) = delete;
Response& operator=(const Response& r) = delete;
Response& operator=(Response&& r) noexcept
diff --git a/http/logging.hpp b/http/logging.hpp
index 0121729..e2bfdb1 100644
--- a/http/logging.hpp
+++ b/http/logging.hpp
@@ -62,6 +62,11 @@
}
}
+ Logger(const Logger&) = delete;
+ Logger(Logger&&) = delete;
+ Logger& operator=(const Logger&) = delete;
+ Logger& operator=(const Logger&&) = delete;
+
//
template <typename T>
Logger& operator<<([[maybe_unused]] T const& value)
diff --git a/http/routing.hpp b/http/routing.hpp
index 06f2a09..a7c0ced 100644
--- a/http/routing.hpp
+++ b/http/routing.hpp
@@ -34,6 +34,11 @@
virtual ~BaseRule() = default;
+ BaseRule(const BaseRule&) = delete;
+ BaseRule(BaseRule&&) = delete;
+ BaseRule& operator=(const BaseRule&) = delete;
+ BaseRule& operator=(const BaseRule&&) = delete;
+
virtual void validate() = 0;
std::unique_ptr<BaseRule> upgrade()
{
diff --git a/http/websocket.hpp b/http/websocket.hpp
index 30a9b9f..74bce58 100644
--- a/http/websocket.hpp
+++ b/http/websocket.hpp
@@ -29,6 +29,11 @@
req(reqIn.req), userName{std::move(user)}, userdataPtr(nullptr)
{}
+ Connection(const Connection&) = delete;
+ Connection(Connection&&) = delete;
+ Connection& operator=(const Connection&) = delete;
+ Connection& operator=(const Connection&&) = delete;
+
virtual void sendBinary(const std::string_view msg) = 0;
virtual void sendBinary(std::string&& msg) = 0;
virtual void sendText(const std::string_view msg) = 0;