#ifndef UNITTEST_XMLTESTREPORTER_H
 
#define UNITTEST_XMLTESTREPORTER_H
 
 
 
#include "Config.h"
 
#ifndef UNITTEST_NO_DEFERRED_REPORTER
 
 
 
#include "DeferredTestReporter.h"
 
 
 
#include <iosfwd>
 
 
 
namespace UnitTest
 
{
 
 
 
   class UNITTEST_LINKAGE XmlTestReporter : public DeferredTestReporter
 
   {
 
   public:
 
      explicit XmlTestReporter(std::ostream& ostream);
 
 
 
      virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed);
 
 
 
   private:
 
      XmlTestReporter(XmlTestReporter const&);
 
      XmlTestReporter& operator=(XmlTestReporter const&);
 
 
 
      void AddXmlElement(std::ostream& os, char const* encoding);
 
      void BeginResults(std::ostream& os, int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed);
 
      void EndResults(std::ostream& os);
 
      void BeginTest(std::ostream& os, DeferredTestResult const& result);
 
      void AddFailure(std::ostream& os, DeferredTestResult const& result);
 
      void EndTest(std::ostream& os, DeferredTestResult const& result);
 
 
 
      std::ostream& m_ostream;
 
   };
 
 
 
}
 
 
 
#endif
 
#endif