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/include/async_resolve.hpp b/include/async_resolve.hpp
index 563d816..c69fd87 100644
--- a/include/async_resolve.hpp
+++ b/include/async_resolve.hpp
@@ -20,6 +20,11 @@
 
     ~Resolver() = default;
 
+    Resolver(const Resolver&) = delete;
+    Resolver(Resolver&&) = delete;
+    Resolver& operator=(const Resolver&) = delete;
+    Resolver& operator=(Resolver&&) = delete;
+
     template <typename ResolveHandler>
     void asyncResolve(const std::string& host, const std::string& port,
                       ResolveHandler&& handler)
diff --git a/include/async_resp.hpp b/include/async_resp.hpp
index 8e9584c..607d168 100644
--- a/include/async_resp.hpp
+++ b/include/async_resp.hpp
@@ -24,6 +24,8 @@
 
     AsyncResp(const AsyncResp&) = delete;
     AsyncResp(AsyncResp&&) = delete;
+    AsyncResp& operator=(const AsyncResp&) = delete;
+    AsyncResp& operator=(AsyncResp&&) = delete;
 
     ~AsyncResp()
     {
diff --git a/include/ibm/locks.hpp b/include/ibm/locks.hpp
index fb8b396..8e04b84 100644
--- a/include/ibm/locks.hpp
+++ b/include/ibm/locks.hpp
@@ -128,6 +128,14 @@
 
   public:
     /*
+     * Explicitly deleted copy and move constructors
+     */
+    Lock(const Lock&) = delete;
+    Lock(Lock&&) = delete;
+    Lock& operator=(const Lock&) = delete;
+    Lock& operator=(Lock&&) = delete;
+
+    /*
      * This function implements the logic for acquiring a lock on a
      * resource if the incoming request is legitimate without any
      * conflicting requirements & without any conflicting requirement
diff --git a/include/openbmc_dbus_rest.hpp b/include/openbmc_dbus_rest.hpp
index 0b54c65..abcec1a 100644
--- a/include/openbmc_dbus_rest.hpp
+++ b/include/openbmc_dbus_rest.hpp
@@ -238,6 +238,11 @@
         }
     }
 
+    InProgressEnumerateData(const InProgressEnumerateData&) = delete;
+    InProgressEnumerateData(InProgressEnumerateData&&) = delete;
+    InProgressEnumerateData& operator=(const InProgressEnumerateData&) = delete;
+    InProgressEnumerateData& operator=(InProgressEnumerateData&&) = delete;
+
     const std::string objectPath;
     std::shared_ptr<GetSubTreeType> subtree;
     std::shared_ptr<bmcweb::AsyncResp> asyncResp;
@@ -484,6 +489,10 @@
 
         res.end();
     }
+    InProgressActionData(const InProgressActionData&) = delete;
+    InProgressActionData(InProgressActionData&&) = delete;
+    InProgressActionData& operator=(const InProgressActionData&) = delete;
+    InProgressActionData& operator=(InProgressActionData&&) = delete;
 
     void setErrorStatus(const std::string& desc)
     {
@@ -1805,6 +1814,11 @@
         }
     }
 
+    AsyncPutRequest(const AsyncPutRequest&) = delete;
+    AsyncPutRequest(AsyncPutRequest&&) = delete;
+    AsyncPutRequest& operator=(const AsyncPutRequest&) = delete;
+    AsyncPutRequest& operator=(AsyncPutRequest&&) = delete;
+
     void setErrorStatus(const std::string& desc)
     {
         setErrorResponse(asyncResp->res,
diff --git a/include/persistent_data.hpp b/include/persistent_data.hpp
index d7230cb..47bb8a9 100644
--- a/include/persistent_data.hpp
+++ b/include/persistent_data.hpp
@@ -43,6 +43,11 @@
         }
     }
 
+    ConfigFile(const ConfigFile&) = delete;
+    ConfigFile(ConfigFile&&) = delete;
+    ConfigFile& operator=(const ConfigFile&) = delete;
+    ConfigFile& operator=(ConfigFile&&) = delete;
+
     // TODO(ed) this should really use protobuf, or some other serialization
     // library, but adding another dependency is somewhat outside the scope of
     // this application for the moment
diff --git a/include/sessions.hpp b/include/sessions.hpp
index a05e47b..79e71ce 100644
--- a/include/sessions.hpp
+++ b/include/sessions.hpp
@@ -404,6 +404,9 @@
 
     SessionStore(const SessionStore&) = delete;
     SessionStore& operator=(const SessionStore&) = delete;
+    SessionStore(SessionStore&&) = delete;
+    SessionStore& operator=(const SessionStore&&) = delete;
+    ~SessionStore() = default;
 
     std::unordered_map<std::string, std::shared_ptr<UserSession>,
                        std::hash<std::string>,
diff --git a/include/vm_websocket.hpp b/include/vm_websocket.hpp
index 34ef82e..2a0353b 100644
--- a/include/vm_websocket.hpp
+++ b/include/vm_websocket.hpp
@@ -32,6 +32,11 @@
 
     ~Handler() = default;
 
+    Handler(const Handler&) = delete;
+    Handler(Handler&&) = delete;
+    Handler& operator=(const Handler&) = delete;
+    Handler& operator=(Handler&&) = delete;
+
     void doClose()
     {
         // boost::process::child::terminate uses SIGKILL, need to send SIGTERM