CppUnit project page FAQ CppUnit home page

Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages
include / cppunit

SynchronizedObject.h

Go to the documentation of this file.
00001 #ifndef CPPUNIT_SYNCHRONIZEDOBJECT_H
00002 #define CPPUNIT_SYNCHRONIZEDOBJECT_H
00003 
00004 #include <cppunit/Portability.h>
00005 
00006 
00007 CPPUNIT_NS_BEGIN
00008 
00009 
00022 class CPPUNIT_API SynchronizedObject
00023 {
00024 public:
00027 class SynchronizationObject
00028 {
00029 public:
00030 SynchronizationObject() {}
00031 virtual ~SynchronizationObject() {}
00032 
00033 virtual void lock() {}
00034 virtual void unlock() {}
00035 };
00036 
00039 SynchronizedObject( SynchronizationObject *syncObject =0 );
00040 
00042 virtual ~SynchronizedObject();
00043 
00044 protected:
00047 class ExclusiveZone
00048 {
00049 SynchronizationObject *m_syncObject;
00050 
00051 public:
00052 ExclusiveZone( SynchronizationObject *syncObject ) 
00053 : m_syncObject( syncObject ) 
00054 { 
00055 m_syncObject->lock(); 
00056 }
00057 
00058 ~ExclusiveZone() 
00059 { 
00060 m_syncObject->unlock (); 
00061 }
00062 };
00063 
00064 virtual void setSynchronizationObject( SynchronizationObject *syncObject );
00065 
00066 protected:
00067 SynchronizationObject *m_syncObject;
00068 
00069 private:
00071 SynchronizedObject( const SynchronizedObject &copy );
00072 
00074 void operator =( const SynchronizedObject &copy );
00075 };
00076 
00077 
00078 CPPUNIT_NS_END
00079 
00080 #endif // CPPUNIT_SYNCHRONIZEDOBJECT_H

SourceForge Logo hosts this site. Send comments to:
CppUnit Developers

AltStyle によって変換されたページ (->オリジナル) /