template class Poco::AbstractDelegate

Overview

Base class for Delegate and Expire. More…

#include <AbstractDelegate.h>

template <class TArgs>
class AbstractDelegate
{
public:
    // construction

    AbstractDelegate();
    AbstractDelegate(const AbstractDelegate&);

    // methods

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

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

    virtual
    AbstractDelegate*
    clone() const = 0;

    virtual
    void
    disable() = 0;

    virtual
    const AbstractDelegate*
    unwrap() const;
};

// direct descendants

template <class TArgs>
class AbstractPriorityDelegate;

template <
    class TObj,
    class TArgs,
    bool withSender = true
    >
class Delegate;

template <
    class TObj,
    class TArgs
    >
class Delegate<TObj, TArgs, false>;

template <class TArgs>
class Expire;

template <
    class TArgs,
    bool hasSender = true,
    bool senderIsConst = true
    >
class FunctionDelegate;

template <
    class TArgs,
    bool senderIsConst
    >
class FunctionDelegate<TArgs, false, senderIsConst>;

template <class TArgs>
class FunctionDelegate<TArgs, true, false>;

Detailed Documentation

Base class for Delegate and Expire.

Methods

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.

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

Compares the AbstractDelegate with the other one for equality.

virtual
AbstractDelegate*
clone() const = 0

Returns a deep copy of the AbstractDelegate.

virtual
void
disable() = 0

Disables the delegate, which is done prior to removal.

virtual
const AbstractDelegate*
unwrap() const

Returns the unwrapped delegate.

Must be overridden by decorators like Expire.