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