QObjectCleanupHandler Class

Home | All Classes | Main Classes | Annotated | Grouped Classes | Functions |

# QObjectCleanupHandler Class Reference

The QObjectCleanupHandler class watches the lifetime of multiple QObjects. More...

`#include <qobjectcleanuphandler.h>`

Inherits QObject.

List of all member functions.

## Public Members

- QObjectCleanupHandler ()
- ~QObjectCleanupHandler ()
- QObject * add ( QObject * object )
- void remove ( QObject * object )
- bool isEmpty () const
- void clear ()

## Detailed Description

The QObjectCleanupHandler class watches the lifetime of multiple QObjects.

A QObjectCleanupHandler is useful whenever you need to know when a number of QObjects that are owned by someone else has been deleted. This is e.g. important when referencing memory in an application that has been allocated in a shared library.

Example:

      class FactoryComponent : public FactoryInterface, public QLibraryInterface
      {
      public:
         ...

         QObject *createObject();

         bool init();
         void cleanup();
         bool canUnload() const;

      private:
         QObjectCleanupHandler objects;
      };

      // allocate a new object, and add it to the cleanup handler
      QObject *FactoryComponent::createObject()
      {
          return objects.add( new QObject() );
      }

      // QLibraryInterface implementation
      bool FactoryComponent::init()
      {
          return TRUE;
      }

      void FactoryComponent::cleanup()
      {
      }

      // it is only safe to unload the library when all QObject's have been destroyed
      bool FactoryComponent::canUnload() const
      {
          return objects.isEmpty();
      }

See also Object Model.

## Member Function Documentation

### QObjectCleanupHandler::QObjectCleanupHandler ()

Constructs an empty QObjectCleanupHandler.

### QObjectCleanupHandler::~QObjectCleanupHandler ()

Destroys the cleanup handler. All objects in this cleanup handler will be deleted.

### QObject * QObjectCleanupHandler::add ( QObject * object )

Adds object to this cleanup handler and returns the pointer to the object.

### void QObjectCleanupHandler::clear ()

Deletes all objects in this cleanup handler. The cleanup handler becomes empty.

### bool QObjectCleanupHandler::isEmpty () const

Returns TRUE if this cleanup handler is empty or all objects in this cleanup handler have been destroyed, otherwise return FALSE.

### void QObjectCleanupHandler::remove ( QObject * object )

Removes the object from this cleanup handler. The object will not be destroyed.

This file is part of the Qt toolkit. Copyright © 1995-2002 Trolltech. All Rights Reserved.