1 #pragma once
2 
3 #include "rapidcheck/detail/TestListener.h"
4 
5 namespace rc {
6 namespace detail {
7 
8 /// Listener which broadcasts to other listeners.
9 class MulticastTestListener : public TestListener {
10 public:
11   using Listeners = std::vector<std::unique_ptr<TestListener>>;
12 
13   explicit MulticastTestListener(Listeners listeners);
14   void onTestCaseFinished(const CaseDescription &description) override;
15   void onShrinkTried(const CaseDescription &shrink, bool accepted) override;
16   void onTestFinished(const TestMetadata &metadata,
17                       const TestResult &result) override;
18 
19 private:
20   Listeners m_listeners;
21 };
22 
23 } // namespace detail
24 } // namespace rc
25