#ifndef DATABASE_SERVICE_HPP #define DATABASE_SERVICE_HPP #include #include #include #include class DatabaseService { public: static DatabaseService& getInstance(boost::asio::io_context& io_context, std::size_t pool_size); private: std::shared_ptr getConnection(); //retrive a connection from the connection pool DatabaseService(boost::asio::io_context& io_context, std::size_t pool_size = 4); ~DatabaseService(); DatabaseService(DatabaseService const&); void operator=(DatabaseService const&); boost::asio::io_context& io_context_; std::size_t pool_size_; std::vector> connection_pool_; std::size_t current_index_ = 0; //index used for round robin selection }; #endif