# Poco::XML

# class EventDispatcher

Library: XML
Package: DOM
Header: Poco/DOM/EventDispatcher.h

## Description

This helper class manages event listener subscriptions and event dispatching for AbstractNode.

The EventListener list is managed in such a way that event listeners can be added and removed even from within an EventListener, while events are being dispatched.

## Member Summary

Member Functions: addEventListener, bubbleEvent, captureEvent, dispatchEvent, removeEventListener

## Constructors

### EventDispatcher

EventDispatcher();

Creates the EventDispatcher.

## Destructor

### ~EventDispatcher

~EventDispatcher();

Destroys the EventDispatcher.

## Member Functions

### addEventListener

void addEventListener(
const XMLString & type,
EventListener * listener,
bool useCapture
);

Adds an EventListener to the internal list.

### bubbleEvent

void bubbleEvent(
Event * evt
);

Dispatches the event in its bubbling phase.

Also removes all EventListeners marked for deletion from the event dispatcher list.

### captureEvent

void captureEvent(
Event * evt
);

Dispatches the event in its capturing phase.

Also removes all EventListeners marked for deletion from the event dispatcher list.

### dispatchEvent

void dispatchEvent(
Event * evt
);

Dispatches the event.

Also removes all EventListeners marked for deletion from the event dispatcher list.

### removeEventListener

void removeEventListener(
const XMLString & type,
EventListener * listener,
bool useCapture
);

Removes an EventListener from the internal list.

If a dispatch is currently in progress, the list entry is only marked for deletion. If no dispatch is currently in progress, all EventListeners marked for deletion are removed from the list.