1 #ifndef SYNCHRONIZEDTESTRESULT_H
2 #define SYNCHRONIZEDTESTRESULT_H
3 
4 #include <cppunit/TestResultCollector.h>
5 
6 
7 class SynchronizedTestResult : public CPPUNIT_NS::TestResultCollector
8 {
9 public:
10 
11   class SynchronizationObjectListener
12   {
13   public:
~SynchronizationObjectListener()14     virtual ~SynchronizationObjectListener() {}
locked()15     virtual void locked() {}
unlocked()16     virtual void unlocked() {}
17   };
18 
19   class ObservedSynchronizationObject : public CPPUNIT_NS::SynchronizedObject::SynchronizationObject
20   {
21   public:
ObservedSynchronizationObject(SynchronizationObjectListener * listener)22     ObservedSynchronizationObject( SynchronizationObjectListener *listener ) :
23         m_listener( listener )
24     {
25     }
26 
~ObservedSynchronizationObject()27     virtual ~ObservedSynchronizationObject()
28     {
29     }
30 
lock()31     virtual void lock()
32     {
33       m_listener->locked();
34     }
35 
unlock()36     virtual void unlock()
37     {
38       m_listener->unlocked();
39     }
40 
41   private:
42     SynchronizationObjectListener *m_listener;
43   };
44 
45 
SynchronizedTestResult(SynchronizationObjectListener * listener)46   SynchronizedTestResult( SynchronizationObjectListener *listener )
47   {
48     setSynchronizationObject( new ObservedSynchronizationObject( listener ) );
49   }
50 
~SynchronizedTestResult()51   virtual ~SynchronizedTestResult() {}
52 
53 };
54 
55 #endif  // SYNCHRONIZEDTESTRESULT_H
56