Package com.biglybt.core.util
Class ListenerManager<T>
java.lang.Object
com.biglybt.core.util.ListenerManager<T>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final boolean
private AEThread2
private AESemaphore
private CopyOnWriteList
<T> private int
private final String
private final ListenerManagerDispatcher
<T> private ListenerManagerDispatcherWithException
<T> private static final boolean
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
ListenerManager
(String _name, ListenerManagerDispatcher<T> _target, boolean _async) -
Method Summary
Modifier and TypeMethodDescriptionvoid
addListener
(T listener) void
clear()
static <T> ListenerManager
<T> createAsyncManager
(String name, ListenerManagerDispatcher<T> target) static <T> ListenerManager
<T> createManager
(String name, ListenerManagerDispatcher<T> target) void
void
void
void
protected void
dispatchInternal
(List<T> listeners_ref, int type, Object value) protected void
dispatchInternal
(T listener, int type, Object value) void
void
dispatchWithException
(int type, Object value) static <T> void
dispatchWithTimeout
(List<T> _listeners, ListenerManagerDispatcher<T> _dispatcher, long _timeout) protected void
doDispatch
(T listener, int type, Object value) protected void
doDispatchWithException
(T listener, int type, Object value) protected String
getListenerName
(T listener) boolean
hasListener
(T listener) void
removeListener
(T listener) long
size()
-
Field Details
-
TIME_LISTENERS
private static final boolean TIME_LISTENERS- See Also:
-
name
-
target
-
target_with_exception
-
async
private final boolean async -
async_thread
-
listeners
-
dispatch_queue
-
dispatch_sem
-
logged_too_many_count_next
private int logged_too_many_count_next
-
-
Constructor Details
-
ListenerManager
-
-
Method Details
-
createManager
public static <T> ListenerManager<T> createManager(String name, ListenerManagerDispatcher<T> target) -
createAsyncManager
public static <T> ListenerManager<T> createAsyncManager(String name, ListenerManagerDispatcher<T> target) -
addListener
-
removeListener
-
hasListener
-
clear
public void clear() -
getListenersCopy
-
dispatch
-
dispatch
-
dispatchWithException
- Throws:
Throwable
-
dispatch
-
dispatch
-
getListenerName
-
doDispatch
-
doDispatchWithException
- Throws:
Throwable
-
dispatchInternal
- Throws:
Throwable
-
dispatchInternal
- Throws:
Throwable
-
dispatchLoop
public void dispatchLoop() -
dispatchWithTimeout
public static <T> void dispatchWithTimeout(List<T> _listeners, ListenerManagerDispatcher<T> _dispatcher, long _timeout) -
size
public long size()
-