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 have been deleted. This is important, for example, 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 if 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-2007 Trolltech. All Rights Reserved.