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


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.


Copyright © 2002 TrolltechTrademarks
Qt version 3.0.3