JUCE
|
Holds a set of objects and can invoke a member function callback on each object in the set with a single call. More...
Classes | |
class | DummyBailOutChecker |
A dummy bail-out checker that always returns false. More... | |
class | Iterator |
Iterates the listeners in a ListenerList. More... | |
Public Types | |
typedef ListenerList< ListenerClass, ArrayType > | ThisType |
typedef ListenerClass | ListenerType |
Public Member Functions | |
ListenerList () | |
Creates an empty list. More... | |
~ListenerList () | |
Destructor. More... | |
void | add (ListenerClass *const listenerToAdd) |
Adds a listener to the list. More... | |
void | remove (ListenerClass *const listenerToRemove) |
Removes a listener from the list. More... | |
int | size () const noexcept |
Returns the number of registered listeners. More... | |
bool | isEmpty () const noexcept |
Returns true if any listeners are registered. More... | |
void | clear () |
Clears the list. More... | |
bool | contains (ListenerClass *const listener) const noexcept |
Returns true if the specified listener has been added to the list. More... | |
void | call (void(ListenerClass::*callbackFunction)()) |
Calls a member function on each listener in the list, with no parameters. More... | |
template<class BailOutCheckerType > | |
void | callChecked (const BailOutCheckerType &bailOutChecker, void(ListenerClass::*callbackFunction)()) |
Calls a member function on each listener in the list, with no parameters and a bail-out-checker. More... | |
template<LL_TEMPLATE(1) > | |
void | call (void(ListenerClass::*callbackFunction)(P1), LL_PARAM(1)) |
Calls a member function on each listener in the list, with 1 parameter. More... | |
template<class BailOutCheckerType , LL_TEMPLATE(1) > | |
void | callChecked (const BailOutCheckerType &bailOutChecker, void(ListenerClass::*callbackFunction)(P1), LL_PARAM(1)) |
Calls a member function on each listener in the list, with one parameter and a bail-out-checker. More... | |
template<LL_TEMPLATE(1) , LL_TEMPLATE(2) > | |
void | call (void(ListenerClass::*callbackFunction)(P1, P2), LL_PARAM(1), LL_PARAM(2)) |
Calls a member function on each listener in the list, with 2 parameters. More... | |
template<class BailOutCheckerType , LL_TEMPLATE(1) , LL_TEMPLATE(2) > | |
void | callChecked (const BailOutCheckerType &bailOutChecker, void(ListenerClass::*callbackFunction)(P1, P2), LL_PARAM(1), LL_PARAM(2)) |
Calls a member function on each listener in the list, with 2 parameters and a bail-out-checker. More... | |
template<LL_TEMPLATE(1) , LL_TEMPLATE(2) , LL_TEMPLATE(3) > | |
void | call (void(ListenerClass::*callbackFunction)(P1, P2, P3), LL_PARAM(1), LL_PARAM(2), LL_PARAM(3)) |
Calls a member function on each listener in the list, with 3 parameters. More... | |
template<class BailOutCheckerType , LL_TEMPLATE(1) , LL_TEMPLATE(2) , LL_TEMPLATE(3) > | |
void | callChecked (const BailOutCheckerType &bailOutChecker, void(ListenerClass::*callbackFunction)(P1, P2, P3), LL_PARAM(1), LL_PARAM(2), LL_PARAM(3)) |
Calls a member function on each listener in the list, with 3 parameters and a bail-out-checker. More... | |
template<LL_TEMPLATE(1) , LL_TEMPLATE(2) , LL_TEMPLATE(3) , LL_TEMPLATE(4) > | |
void | call (void(ListenerClass::*callbackFunction)(P1, P2, P3, P4), LL_PARAM(1), LL_PARAM(2), LL_PARAM(3), LL_PARAM(4)) |
Calls a member function on each listener in the list, with 4 parameters. More... | |
template<class BailOutCheckerType , LL_TEMPLATE(1) , LL_TEMPLATE(2) , LL_TEMPLATE(3) , LL_TEMPLATE(4) > | |
void | callChecked (const BailOutCheckerType &bailOutChecker, void(ListenerClass::*callbackFunction)(P1, P2, P3, P4), LL_PARAM(1), LL_PARAM(2), LL_PARAM(3), LL_PARAM(4)) |
Calls a member function on each listener in the list, with 4 parameters and a bail-out-checker. More... | |
template<LL_TEMPLATE(1) , LL_TEMPLATE(2) , LL_TEMPLATE(3) , LL_TEMPLATE(4) , LL_TEMPLATE(5) > | |
void | call (void(ListenerClass::*callbackFunction)(P1, P2, P3, P4, P5), LL_PARAM(1), LL_PARAM(2), LL_PARAM(3), LL_PARAM(4), LL_PARAM(5)) |
Calls a member function on each listener in the list, with 5 parameters. More... | |
template<class BailOutCheckerType , LL_TEMPLATE(1) , LL_TEMPLATE(2) , LL_TEMPLATE(3) , LL_TEMPLATE(4) , LL_TEMPLATE(5) > | |
void | callChecked (const BailOutCheckerType &bailOutChecker, void(ListenerClass::*callbackFunction)(P1, P2, P3, P4, P5), LL_PARAM(1), LL_PARAM(2), LL_PARAM(3), LL_PARAM(4), LL_PARAM(5)) |
Calls a member function on each listener in the list, with 5 parameters and a bail-out-checker. More... | |
template<LL_TEMPLATE(1) , LL_TEMPLATE(2) , LL_TEMPLATE(3) , LL_TEMPLATE(4) , LL_TEMPLATE(5) , LL_TEMPLATE(6) > | |
void | call (void(ListenerClass::*callbackFunction)(P1, P2, P3, P4, P5, P6), LL_PARAM(1), LL_PARAM(2), LL_PARAM(3), LL_PARAM(4), LL_PARAM(5), LL_PARAM(6)) |
Calls a member function on each listener in the list, with 5 parameters. More... | |
template<class BailOutCheckerType , LL_TEMPLATE(1) , LL_TEMPLATE(2) , LL_TEMPLATE(3) , LL_TEMPLATE(4) , LL_TEMPLATE(5) , LL_TEMPLATE(6) > | |
void | callChecked (const BailOutCheckerType &bailOutChecker, void(ListenerClass::*callbackFunction)(P1, P2, P3, P4, P5, P6), LL_PARAM(1), LL_PARAM(2), LL_PARAM(3), LL_PARAM(4), LL_PARAM(5), LL_PARAM(6)) |
Calls a member function on each listener in the list, with 5 parameters and a bail-out-checker. More... | |
const ArrayType & | getListeners () const noexcept |
Holds a set of objects and can invoke a member function callback on each object in the set with a single call.
Use a ListenerList to manage a set of objects which need a callback, and you can invoke a member function by simply calling call() or callChecked().
E.g.
If you add or remove listeners from the list during one of the callbacks - i.e. while it's in the middle of iterating the listeners, then it's guaranteed that no listeners will be mistakenly called after they've been removed, but it may mean that some of the listeners could be called more than once, or not at all, depending on the list's order.
Sometimes, there's a chance that invoking one of the callbacks might result in the list itself being deleted while it's still iterating - to survive this situation, you can use callChecked() instead of call(), passing it a local object to act as a "BailOutChecker". The BailOutChecker must implement a method of the form "bool shouldBailOut()", and the list will check this after each callback to determine whether it should abort the operation. For an example of a bail-out checker, see the Component::BailOutChecker class, which can be used to check when a Component has been deleted. See also ListenerList::DummyBailOutChecker, which is a dummy checker that always returns false.
typedef ListenerList<ListenerClass, ArrayType> ListenerList< ListenerClass, ArrayType >::ThisType |
typedef ListenerClass ListenerList< ListenerClass, ArrayType >::ListenerType |
ListenerList< ListenerClass, ArrayType >::ListenerList | ( | ) |
Creates an empty list.
ListenerList< ListenerClass, ArrayType >::~ListenerList | ( | ) |
Destructor.
void ListenerList< ListenerClass, ArrayType >::add | ( | ListenerClass *const | listenerToAdd | ) |
Adds a listener to the list.
A listener can only be added once, so if the listener is already in the list, this method has no effect.
void ListenerList< ListenerClass, ArrayType >::remove | ( | ListenerClass *const | listenerToRemove | ) |
Removes a listener from the list.
If the listener wasn't in the list, this has no effect.
|
noexcept |
Returns the number of registered listeners.
|
noexcept |
Returns true if any listeners are registered.
void ListenerList< ListenerClass, ArrayType >::clear | ( | ) |
Clears the list.
|
noexcept |
Returns true if the specified listener has been added to the list.
void ListenerList< ListenerClass, ArrayType >::call | ( | void(ListenerClass::*)() | callbackFunction | ) |
Calls a member function on each listener in the list, with no parameters.
void ListenerList< ListenerClass, ArrayType >::callChecked | ( | const BailOutCheckerType & | bailOutChecker, |
void(ListenerClass::*)() | callbackFunction | ||
) |
Calls a member function on each listener in the list, with no parameters and a bail-out-checker.
See the class description for info about writing a bail-out checker.
Referenced by ListenerList< MenuBarModel::Listener >::call().
void ListenerList< ListenerClass, ArrayType >::call | ( | void(ListenerClass::*)(P1) | callbackFunction, |
LL_PARAM(1) | |||
) |
Calls a member function on each listener in the list, with 1 parameter.
void ListenerList< ListenerClass, ArrayType >::callChecked | ( | const BailOutCheckerType & | bailOutChecker, |
void(ListenerClass::*)(P1) | callbackFunction, | ||
LL_PARAM(1) | |||
) |
Calls a member function on each listener in the list, with one parameter and a bail-out-checker.
See the class description for info about writing a bail-out checker.
void ListenerList< ListenerClass, ArrayType >::call | ( | void(ListenerClass::*)(P1, P2) | callbackFunction, |
LL_PARAM(1) | , | ||
LL_PARAM(2) | |||
) |
Calls a member function on each listener in the list, with 2 parameters.
void ListenerList< ListenerClass, ArrayType >::callChecked | ( | const BailOutCheckerType & | bailOutChecker, |
void(ListenerClass::*)(P1, P2) | callbackFunction, | ||
LL_PARAM(1) | , | ||
LL_PARAM(2) | |||
) |
Calls a member function on each listener in the list, with 2 parameters and a bail-out-checker.
See the class description for info about writing a bail-out checker.
void ListenerList< ListenerClass, ArrayType >::call | ( | void(ListenerClass::*)(P1, P2, P3) | callbackFunction, |
LL_PARAM(1) | , | ||
LL_PARAM(2) | , | ||
LL_PARAM(3) | |||
) |
Calls a member function on each listener in the list, with 3 parameters.
void ListenerList< ListenerClass, ArrayType >::callChecked | ( | const BailOutCheckerType & | bailOutChecker, |
void(ListenerClass::*)(P1, P2, P3) | callbackFunction, | ||
LL_PARAM(1) | , | ||
LL_PARAM(2) | , | ||
LL_PARAM(3) | |||
) |
Calls a member function on each listener in the list, with 3 parameters and a bail-out-checker.
See the class description for info about writing a bail-out checker.
void ListenerList< ListenerClass, ArrayType >::call | ( | void(ListenerClass::*)(P1, P2, P3, P4) | callbackFunction, |
LL_PARAM(1) | , | ||
LL_PARAM(2) | , | ||
LL_PARAM(3) | , | ||
LL_PARAM(4) | |||
) |
Calls a member function on each listener in the list, with 4 parameters.
void ListenerList< ListenerClass, ArrayType >::callChecked | ( | const BailOutCheckerType & | bailOutChecker, |
void(ListenerClass::*)(P1, P2, P3, P4) | callbackFunction, | ||
LL_PARAM(1) | , | ||
LL_PARAM(2) | , | ||
LL_PARAM(3) | , | ||
LL_PARAM(4) | |||
) |
Calls a member function on each listener in the list, with 4 parameters and a bail-out-checker.
See the class description for info about writing a bail-out checker.
void ListenerList< ListenerClass, ArrayType >::call | ( | void(ListenerClass::*)(P1, P2, P3, P4, P5) | callbackFunction, |
LL_PARAM(1) | , | ||
LL_PARAM(2) | , | ||
LL_PARAM(3) | , | ||
LL_PARAM(4) | , | ||
LL_PARAM(5) | |||
) |
Calls a member function on each listener in the list, with 5 parameters.
void ListenerList< ListenerClass, ArrayType >::callChecked | ( | const BailOutCheckerType & | bailOutChecker, |
void(ListenerClass::*)(P1, P2, P3, P4, P5) | callbackFunction, | ||
LL_PARAM(1) | , | ||
LL_PARAM(2) | , | ||
LL_PARAM(3) | , | ||
LL_PARAM(4) | , | ||
LL_PARAM(5) | |||
) |
Calls a member function on each listener in the list, with 5 parameters and a bail-out-checker.
See the class description for info about writing a bail-out checker.
void ListenerList< ListenerClass, ArrayType >::call | ( | void(ListenerClass::*)(P1, P2, P3, P4, P5, P6) | callbackFunction, |
LL_PARAM(1) | , | ||
LL_PARAM(2) | , | ||
LL_PARAM(3) | , | ||
LL_PARAM(4) | , | ||
LL_PARAM(5) | , | ||
LL_PARAM(6) | |||
) |
Calls a member function on each listener in the list, with 5 parameters.
void ListenerList< ListenerClass, ArrayType >::callChecked | ( | const BailOutCheckerType & | bailOutChecker, |
void(ListenerClass::*)(P1, P2, P3, P4, P5, P6) | callbackFunction, | ||
LL_PARAM(1) | , | ||
LL_PARAM(2) | , | ||
LL_PARAM(3) | , | ||
LL_PARAM(4) | , | ||
LL_PARAM(5) | , | ||
LL_PARAM(6) | |||
) |
Calls a member function on each listener in the list, with 5 parameters and a bail-out-checker.
See the class description for info about writing a bail-out checker.
|
noexcept |