// © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html /** ******************************************************************************* * Copyright (C) 2001-2014, International Business Machines Corporation and * * others. All Rights Reserved. * ******************************************************************************* */ #ifndef ICUNOTIF_H #define ICUNOTIF_H #include "unicode/utypes.h" #if UCONFIG_NO_SERVICE U_NAMESPACE_BEGIN /* * Allow the declaration of APIs with pointers to BreakIterator * even when break iteration is removed from the build. */ class ICUNotifier; U_NAMESPACE_END #else #include "unicode/uobject.h" #include "unicode/unistr.h" #include "mutex.h" #include "uvector.h" U_NAMESPACE_BEGIN class U_COMMON_API EventListener : public UObject { … }; /** * <p>Abstract implementation of a notification facility. Clients add * EventListeners with addListener and remove them with removeListener. * Notifiers call notifyChanged when they wish to notify listeners. * This queues the listener list on the notification thread, which * eventually dequeues the list and calls notifyListener on each * listener in the list.</p> * * <p>Subclasses override acceptsListener and notifyListener * to add type-safe notification. AcceptsListener should return * true if the listener is of the appropriate type; ICUNotifier * itself will ensure the listener is non-null and that the * identical listener is not already registered with the Notifier. * NotifyListener should cast the listener to the appropriate * type and call the appropriate method on the listener. */ class U_COMMON_API ICUNotifier : public UMemory { … }; U_NAMESPACE_END /* UCONFIG_NO_SERVICE */ #endif /* ICUNOTIF_H */ #endif