diff --git a/services/tunnelbroker/src/Database/DatabaseEntitiesTools.cpp b/services/tunnelbroker/src/Database/DatabaseEntitiesTools.cpp deleted file mode 100644 index 505a37f7e..000000000 --- a/services/tunnelbroker/src/Database/DatabaseEntitiesTools.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include "DatabaseEntitiesTools.h" - -namespace comm { -namespace network { -namespace database { - -template <> -std::shared_ptr createItemByType() { - return std::make_shared(); -} - -template <> -std::shared_ptr createItemByType() { - return std::make_shared(); -} - -template <> std::shared_ptr createItemByType() { - return std::make_shared(); -} - -template <> std::shared_ptr createItemByType() { - return std::make_shared(); -} - -} // namespace database -} // namespace network -} // namespace comm diff --git a/services/tunnelbroker/src/Database/DatabaseEntitiesTools.h b/services/tunnelbroker/src/Database/DatabaseEntitiesTools.h index 38011b0ae..5c2c22452 100644 --- a/services/tunnelbroker/src/Database/DatabaseEntitiesTools.h +++ b/services/tunnelbroker/src/Database/DatabaseEntitiesTools.h @@ -1,31 +1,22 @@ #pragma once #include "DeviceSessionItem.h" #include "Item.h" #include "MessageItem.h" #include "PublicKeyItem.h" #include "SessionSignItem.h" #include namespace comm { namespace network { namespace database { template std::shared_ptr createItemByType() { - throw std::runtime_error("invalid Item type"); + static_assert(std::is_base_of::value, "T must inherit from Item"); + return std::make_shared(); } -template <> -std::shared_ptr createItemByType(); - -template <> -std::shared_ptr createItemByType(); - -template <> std::shared_ptr createItemByType(); - -template <> std::shared_ptr createItemByType(); - } // namespace database } // namespace network } // namespace comm