# Poco

# template < class TArgs, class TDelegate >

# class NotificationStrategy

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

## Description

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.

## Member Summary

Member Functions: add, clear, empty, notify, remove

## Types Aliases

### DelegateHandle

using DelegateHandle = TDelegate *;

## Constructors

### NotificationStrategy

NotificationStrategy() = default;

## Destructor

### ~NotificationStrategy

virtual ~NotificationStrategy() = default;

## Member Functions

### add

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

Adds a delegate to the strategy.

### clear

virtual void clear() = 0;

Removes all delegates from the strategy.

### empty

virtual bool empty() const = 0;

Returns false if the strategy contains at least one delegate.

### notify

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

Sends a notification to all registered delegates.

### remove

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

Removes a delegate from the strategy, if found. Does nothing if the delegate has not been added.

### remove

virtual void remove(
DelegateHandle delegateHandle
) = 0;

Removes a delegate from the strategy, if found. Does nothing if the delegate has not been added.