Package com.biglybt.core.util
Class ListenerManager<T>
- java.lang.Object
-
- com.biglybt.core.util.ListenerManager<T>
-
public class ListenerManager<T> extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
async
private AEThread2
async_thread
private java.util.List<java.lang.Object[]>
dispatch_queue
private AESemaphore
dispatch_sem
private java.util.List<T>
listeners
private boolean
logged_too_many_listeners
private java.lang.String
name
private ListenerManagerDispatcher<T>
target
private ListenerManagerDispatcherWithException
target_with_exception
private static boolean
TIME_LISTENERS
-
Constructor Summary
Constructors Modifier Constructor Description protected
ListenerManager(java.lang.String _name, ListenerManagerDispatcher<T> _target, boolean _async)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addListener(T listener)
void
clear()
static <T> ListenerManager<T>
createAsyncManager(java.lang.String name, ListenerManagerDispatcher<T> target)
static <T> ListenerManager<T>
createManager(java.lang.String name, ListenerManagerDispatcher<T> target)
void
dispatch(int type, java.lang.Object value)
void
dispatch(int type, java.lang.Object value, boolean blocking)
void
dispatch(T listener, int type, java.lang.Object value)
void
dispatch(T listener, int type, java.lang.Object value, boolean blocking)
protected void
dispatchInternal(java.util.List<T> listeners_ref, int type, java.lang.Object value)
protected void
dispatchInternal(T listener, int type, java.lang.Object value)
void
dispatchLoop()
void
dispatchWithException(int type, java.lang.Object value)
static <T> void
dispatchWithTimeout(java.util.List<T> _listeners, ListenerManagerDispatcher<T> _dispatcher, long _timeout)
protected void
doDispatch(T listener, int type, java.lang.Object value)
protected void
doDispatchWithException(T listener, int type, java.lang.Object value)
protected java.lang.String
getListenerName(T listener)
java.util.List<T>
getListenersCopy()
boolean
hasListener(T listener)
void
removeListener(java.lang.Object listener)
long
size()
-
-
-
Field Detail
-
TIME_LISTENERS
private static final boolean TIME_LISTENERS
- See Also:
- Constant Field Values
-
name
private final java.lang.String name
-
target
private final ListenerManagerDispatcher<T> target
-
target_with_exception
private ListenerManagerDispatcherWithException target_with_exception
-
async
private final boolean async
-
async_thread
private AEThread2 async_thread
-
listeners
private java.util.List<T> listeners
-
dispatch_queue
private java.util.List<java.lang.Object[]> dispatch_queue
-
dispatch_sem
private AESemaphore dispatch_sem
-
logged_too_many_listeners
private boolean logged_too_many_listeners
-
-
Constructor Detail
-
ListenerManager
protected ListenerManager(java.lang.String _name, ListenerManagerDispatcher<T> _target, boolean _async)
-
-
Method Detail
-
createManager
public static <T> ListenerManager<T> createManager(java.lang.String name, ListenerManagerDispatcher<T> target)
-
createAsyncManager
public static <T> ListenerManager<T> createAsyncManager(java.lang.String name, ListenerManagerDispatcher<T> target)
-
addListener
public void addListener(T listener)
-
removeListener
public void removeListener(java.lang.Object listener)
-
hasListener
public boolean hasListener(T listener)
-
clear
public void clear()
-
getListenersCopy
public java.util.List<T> getListenersCopy()
-
dispatch
public void dispatch(int type, java.lang.Object value)
-
dispatch
public void dispatch(int type, java.lang.Object value, boolean blocking)
-
dispatchWithException
public void dispatchWithException(int type, java.lang.Object value) throws java.lang.Throwable
- Throws:
java.lang.Throwable
-
dispatch
public void dispatch(T listener, int type, java.lang.Object value)
-
dispatch
public void dispatch(T listener, int type, java.lang.Object value, boolean blocking)
-
getListenerName
protected java.lang.String getListenerName(T listener)
-
doDispatch
protected void doDispatch(T listener, int type, java.lang.Object value)
-
doDispatchWithException
protected void doDispatchWithException(T listener, int type, java.lang.Object value) throws java.lang.Throwable
- Throws:
java.lang.Throwable
-
dispatchInternal
protected void dispatchInternal(java.util.List<T> listeners_ref, int type, java.lang.Object value) throws java.lang.Throwable
- Throws:
java.lang.Throwable
-
dispatchInternal
protected void dispatchInternal(T listener, int type, java.lang.Object value) throws java.lang.Throwable
- Throws:
java.lang.Throwable
-
dispatchLoop
public void dispatchLoop()
-
dispatchWithTimeout
public static <T> void dispatchWithTimeout(java.util.List<T> _listeners, ListenerManagerDispatcher<T> _dispatcher, long _timeout)
-
size
public long size()
-
-