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