---
name: "qobjectcleanuphandler"
section: "3qt"
platform: "linux"
package: "qt3-doc"
version: "3:3.3.8b-7"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/qobjectcleanuphandler"
---

# qobjectcleanuphandler(3qt)

Watches the lifetime of multiple QObjects

## NAME

QObjectCleanupHandler - Watches the lifetime of multiple QObjects

## SYNOPSIS

`#include <qobjectcleanuphandler.h>`

Inherits QObject.

### Public Members

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

## 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.

## SEE ALSO

**http://doc.trolltech.com/qobjectcleanuphandler.html** **http://www.trolltech.com/faq/tech.html**

## COPYRIGHT

Copyright 1992-2007 Trolltech ASA, http://www.trolltech.com.  See the license file included in the distribution for a complete license statement.

## AUTHOR

Generated automatically from the source code.

## BUGS

If you find a bug in Qt, please report it as described in **http://doc.trolltech.com/bughowto.html**. Good bug reports help us to help you. Thank you.

The definitive Qt documentation is provided in HTML format; it is located at $QTDIR/doc/html and can be read using Qt Assistant or with a web browser. This man page is provided as a convenience for those users who prefer man pages, although this format is not officially supported by Trolltech.

If you find errors in this manual page, please report them to **qt-bugs@trolltech.com**. Please include the name of the manual page (qobjectcleanuphandler.3qt) and the Qt version (3.3.8).
