18 #ifndef CONNECTIONFACTORY_HPP_ 19 #define CONNECTIONFACTORY_HPP_ 41 TEST_VIRTUAL std::unique_ptr<C>
get(std::string
name =
"unknown");
43 const std::chrono::nanoseconds &timeout);
46 std::shared_ptr<Filter> filter_;
66 template <
class C,
class AP,
class PQ>
68 std::shared_ptr<Filter> filter,
bool mirror)
69 : filter_(
std::move(filter)), mirror_(mirror)
71 if (filter_ ==
nullptr)
73 throw std::invalid_argument(
"Given filter pointer is null.");
86 template <
class C,
class AP,
class PQ>
89 return std::make_unique<C>(
90 name, filter_, mirror_,
91 std::make_unique<AP>(),
92 std::make_unique<PQ>([
this]()
108 template <
class C,
class AP,
class PQ>
110 const std::chrono::nanoseconds &timeout)
112 return semaphore_.wait_for(timeout);
116 #endif // CONNECTIONFACTORY_HPP_ std::string name(unsigned long id)
TEST_VIRTUAL std::unique_ptr< C > get(std::string name="unknown")
TEST_VIRTUAL ~ConnectionFactory()=default
ConnectionFactory(std::shared_ptr< Filter > filter, bool mirror=false)
TEST_VIRTUAL bool wait_for_packet(const std::chrono::nanoseconds &timeout)