template class Poco::NotificationStrategy

Overview

The interface that all notification strategies must implement. Moreā€¦

#include <NotificationStrategy.h>

template <
    class TArgs,
    class TDelegate
    >
class NotificationStrategy
{
public:
    // typedefs

    typedef TDelegate* DelegateHandle;

    // methods

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

    virtual
    DelegateHandle
    add(const TDelegate& delegate) = 0;

    virtual
    void
    remove(const TDelegate& delegate) = 0;

    virtual
    void
    remove(DelegateHandle delegateHandle) = 0;

    virtual
    void
    clear() = 0;

    virtual
    bool
    empty() const = 0;
};

// direct descendants

template <
    class TArgs,
    class TDelegate
    >
class DefaultStrategy;

template <
    class TArgs,
    class TDelegate
    >
class PriorityStrategy;

Detailed Documentation

The interface that all notification strategies must implement.

Note: Event is based on policy-driven design, so every strategy implementation must provide all the methods from this interface (otherwise: compile errors) but does not need to inherit from NotificationStrategy.

Methods

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

Sends a notification to all registered delegates.

virtual
DelegateHandle
add(const TDelegate& delegate) = 0

Adds a delegate to the strategy.

virtual
void
remove(const TDelegate& delegate) = 0

Removes a delegate from the strategy, if found.

Does nothing if the delegate has not been added.

virtual
void
remove(DelegateHandle delegateHandle) = 0

Removes a delegate from the strategy, if found.

Does nothing if the delegate has not been added.

virtual
void
clear() = 0

Removes all delegates from the strategy.

virtual
bool
empty() const = 0

Returns false if the strategy contains at least one delegate.