1 #ifndef UNITTEST_COMPOSITETESTREPORTER_H
2 #define UNITTEST_COMPOSITETESTREPORTER_H
3 
4 #include "TestReporter.h"
5 
6 namespace UnitTest {
7 
8 class UNITTEST_LINKAGE CompositeTestReporter : public TestReporter
9 {
10 public:
11     CompositeTestReporter();
12 
13 	int GetReporterCount() const;
14     bool AddReporter(TestReporter* reporter);
15     bool RemoveReporter(TestReporter* reporter);
16 
17     virtual void ReportTestStart(TestDetails const& test);
18     virtual void ReportFailure(TestDetails const& test, char const* failure);
19     virtual void ReportTestFinish(TestDetails const& test, float secondsElapsed);
20     virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed);
21 
22 private:
23 	enum { kMaxReporters = 16 };
24 	TestReporter* m_reporters[kMaxReporters];
25 	int m_reporterCount;
26 
27 	// revoked
28 	CompositeTestReporter(const CompositeTestReporter&);
29 	CompositeTestReporter& operator =(const CompositeTestReporter&);
30 };
31 
32 }
33 
34 #endif
35