# Poco

# template < class TArgs >

# class AbstractDelegate

Library: Foundation
Package: Events
Header: Poco/AbstractDelegate.h

## Description

Base class for Delegate and Expire.

## Member Summary

Member Functions: clone, disable, equals, notify, unwrap

## Constructors

### AbstractDelegate

AbstractDelegate();

### AbstractDelegate

AbstractDelegate(
const AbstractDelegate & del
);

## Destructor

### ~AbstractDelegate

virtual ~AbstractDelegate();

## Member Functions

### clone

virtual AbstractDelegate * clone() const = 0;

Returns a deep copy of the AbstractDelegate.

### disable

virtual void disable() = 0;

Disables the delegate, which is done prior to removal.

### equals

virtual bool equals(
const AbstractDelegate & other
) const = 0;

Compares the AbstractDelegate with the other one for equality.

### notify

virtual bool notify(
const void * sender,
TArgs & arguments
) = 0;

Invokes the delegate's callback function. Returns true if successful, or false if the delegate has been disabled or has expired.

### unwrap

virtual const AbstractDelegate * unwrap() const;

Returns the unwrapped delegate. Must be overridden by decorators like Expire.