diff --git a/services/tunnelbroker/src/Database/DatabaseEntitiesTools.h b/services/tunnelbroker/src/Database/DatabaseEntitiesTools.h --- a/services/tunnelbroker/src/Database/DatabaseEntitiesTools.h +++ b/services/tunnelbroker/src/Database/DatabaseEntitiesTools.h @@ -13,19 +13,10 @@ 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 diff --git a/services/tunnelbroker/src/Database/DatabaseEntitiesTools.cpp b/services/tunnelbroker/src/Database/DatabaseEntitiesTools.cpp deleted file mode 100644 --- 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