#include <coherence/util/Listeners.hpp>
Inherits Object.
The implementation is optimized based on the assumption that listeners are added and removed relatively rarely, and that the list of listeners is requested relatively often.
Thread safety is implemented by synchronizing on all methods that modify any data member of the class. Read-only methods are not synchronized.
Public Types | |
typedef spec::Handle | Handle |
Listeners Handle definition. | |
typedef spec::View | View |
Listeners View definition. | |
typedef spec::Holder | Holder |
Listeners Holder definition. | |
Public Member Functions | |
virtual void | add (EventListener::Handle hListener) |
Add a listener. | |
virtual void | remove (EventListener::View vListener) |
Remove a listener. | |
virtual void | addAll (Listeners::View vListeners) |
Add all listeners from another Listeners object. | |
virtual void | removeAll () |
Remove all listeners. | |
virtual bool | isEmpty () const |
Check if there are no listeners. | |
virtual bool | contains (EventListener::Handle hListener) const |
Check if a listener is in the list of listeners. | |
virtual ObjectArray::View | listeners () const |
Get the list of listeners. | |
void | setFilters (ObjectArray::View vFilters) |
Set the array of filters associated with this listener object. | |
ObjectArray::View | getFilters () const |
Return the array of filters associated with this listener object. | |
virtual TypedHandle < const String > | toString () const |
Output a human-readable description of this Object to the given stream. Note that when overriding this method the return type must be TypedHandle<const String> rather then String::View. These two types are assignment compatible but not equivalent and declaring the override with String::View will not be a compatible override. coherence::lang::operator<<(std::ostream, Object::View) is defined and will call into the toString method, to output Objects. If a managed String object is desired, the COH_TO_STRING macro can be used to build up a String from streamable contents and is generally how toString() will be implemented.
Object::View vKey = ... Object::View vValue = ... std::cout << vKey << " = " << vValue << std::endl; String::View vs = COH_TO_STRING(vKey << " = " << vValue); The COH_TO_STRING macro is also the most common way to implement the toString method. For example:
virtual TypedHandle<const String> Person::toString() const { return COH_TO_STRING("Name: " << f_sName << " SSN: " << f_nSSN); }
| |
Protected Member Functions | |
Listeners () | |
Create a new Listeners instance. |
virtual void add | ( | EventListener::Handle | hListener | ) | [virtual] |
virtual void remove | ( | EventListener::View | vListener | ) | [virtual] |
virtual void addAll | ( | Listeners::View | vListeners | ) | [virtual] |
virtual bool isEmpty | ( | ) | const [virtual] |
Check if there are no listeners.
virtual bool contains | ( | EventListener::Handle | hListener | ) | const [virtual] |
Check if a listener is in the list of listeners.
hListener | the EventListener to search for |
virtual ObjectArray::View listeners | ( | ) | const [virtual] |
Get the list of listeners.
void setFilters | ( | ObjectArray::View | vFilters | ) |
Set the array of filters associated with this listener object.
hFilters | the array of filters |
ObjectArray::View getFilters | ( | ) | const |
Return the array of filters associated with this listener object.