CppUnit project page | FAQ | CppUnit home page

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- File List
- File Members

# 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

| hosts this site. |  | Send comments to: CppUnit Developers