1 #ifndef CPPUNIT_SYNCHRONIZEDOBJECT_H
2 #define CPPUNIT_SYNCHRONIZEDOBJECT_H
4 #include <cppunit/Portability.h>
10 /*! \brief Base class for synchronized object.
12 * Synchronized object are object which members are used concurrently by mutiple
15 * This class define the class SynchronizationObject which must be subclassed
16 * to implement an actual lock.
18 * Each instance of this class holds a pointer on a lock object.
20 * See src/msvc6/MfcSynchronizedObject.h for an example.
22 class CPPUNIT_API SynchronizedObject
25 /*! \brief Abstract synchronization object (mutex)
27 class SynchronizationObject
30 SynchronizationObject() {}
31 virtual ~SynchronizationObject() {}
33 virtual void lock() {}
34 virtual void unlock() {}
37 /*! Constructs a SynchronizedObject object.
39 SynchronizedObject( SynchronizationObject *syncObject =0 );
42 virtual ~SynchronizedObject();
45 /*! \brief Locks a synchronization object in the current scope.
49 SynchronizationObject *m_syncObject;
52 ExclusiveZone( SynchronizationObject *syncObject )
53 : m_syncObject( syncObject )
60 m_syncObject->unlock ();
64 virtual void setSynchronizationObject( SynchronizationObject *syncObject );
67 SynchronizationObject *m_syncObject;
70 /// Prevents the use of the copy constructor.
71 SynchronizedObject( const SynchronizedObject © );
73 /// Prevents the use of the copy operator.
74 void operator =( const SynchronizedObject © );
80 #endif // CPPUNIT_SYNCHRONIZEDOBJECT_H