Class EventDispatcher
java.lang.Object
org.apache.felix.framework.util.EventDispatcher
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Map<BundleContext, List<ListenerInfo>> private Map<BundleContext, List<ListenerInfo>> private final Loggerprivate static intprivate final ServiceRegistryprivate static final List<EventDispatcher.Request> private static final List<EventDispatcher.Request> private static final SecureActionprivate static booleanprivate Map<BundleContext, List<ListenerInfo>> private Map<BundleContext, List<ListenerInfo>> private static Threadprivate static final String -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddListener(BundleContext bc, Class clazz, EventListener l, Filter filter) private static Map<BundleContext, List<ListenerInfo>> addListenerInfo(Map<BundleContext, List<ListenerInfo>> listeners, ListenerInfo info) private <T> Set<BundleContext> createWhitelistFromHooks(EventObject event, Framework felix, Map<BundleContext, List<ListenerInfo>> listeners1, Map<BundleContext, List<ListenerInfo>> listeners2, Class<T> hookClass) private Map<BundleContext, List<ListenerInfo>> filterListenersUsingHooks(ServiceEvent event, Framework felix, Map<BundleContext, List<ListenerInfo>> listeners) voidfireBundleEvent(BundleEvent event, Framework felix) private static voidfireEventAsynchronously(EventDispatcher dispatcher, int type, Map<BundleContext, List<ListenerInfo>> listeners, EventObject event) private static voidfireEventImmediately(EventDispatcher dispatcher, int type, Map<BundleContext, List<ListenerInfo>> listeners, EventObject event, Dictionary oldProps) voidfireFrameworkEvent(FrameworkEvent event) voidfireServiceEvent(ServiceEvent event, Dictionary oldProps, Framework felix) Returns all existing service listener information into a collection of ListenerHook.ListenerInfo objects.private static voidinvokeBundleListenerCallback(Bundle bundle, EventListener l, EventObject event) private static voidinvokeFrameworkListenerCallback(Bundle bundle, EventListener l, EventObject event) private static voidinvokeServiceListenerCallback(Bundle bundle, EventListener l, Filter filter, Object acc, EventObject event, Dictionary oldProps) removeListener(BundleContext bc, Class clazz, EventListener l) private static Map<BundleContext, List<ListenerInfo>> removeListenerInfo(Map<BundleContext, List<ListenerInfo>> listeners, BundleContext bc, int idx) private static Map<BundleContext, List<ListenerInfo>> removeListenerInfos(Map<BundleContext, List<ListenerInfo>> listeners, BundleContext bc) voidprivate static voidrun()This is the dispatching thread's main loop.voidvoidupdateListener(BundleContext bc, Class clazz, EventListener l, Filter filter) private static Map<BundleContext, List<ListenerInfo>> updateListenerInfo(Map<BundleContext, List<ListenerInfo>> listeners, int idx, ListenerInfo info)
-
Field Details
-
m_logger
-
m_registry
-
m_fwkListeners
-
m_bndlListeners
-
m_syncBndlListeners
-
m_svcListeners
-
m_thread
-
m_threadLock
-
m_references
private static int m_references -
m_stopping
private static volatile boolean m_stopping -
m_requestList
-
m_requestPool
-
m_secureAction
-
-
Constructor Details
-
EventDispatcher
-
-
Method Details
-
startDispatching
public void startDispatching() -
stopDispatching
public void stopDispatching() -
addListener
-
removeListener
-
removeListeners
-
updateListener
-
getAllServiceListeners
Returns all existing service listener information into a collection of ListenerHook.ListenerInfo objects. This is used the first time a listener hook is registered to synchronize it with the existing set of listeners.- Returns:
- Returns all existing service listener information into a collection of ListenerHook.ListenerInfo objects
-
fireFrameworkEvent
-
fireBundleEvent
-
fireServiceEvent
-
filterListenersUsingHooks
private Map<BundleContext, List<ListenerInfo>> filterListenersUsingHooks(ServiceEvent event, Framework felix, Map<BundleContext, List<ListenerInfo>> listeners) -
createWhitelistFromHooks
private <T> Set<BundleContext> createWhitelistFromHooks(EventObject event, Framework felix, Map<BundleContext, List<ListenerInfo>> listeners1, Map<BundleContext, List<ListenerInfo>> listeners2, Class<T> hookClass) -
fireEventAsynchronously
private static void fireEventAsynchronously(EventDispatcher dispatcher, int type, Map<BundleContext, List<ListenerInfo>> listeners, EventObject event) -
fireEventImmediately
private static void fireEventImmediately(EventDispatcher dispatcher, int type, Map<BundleContext, List<ListenerInfo>> listeners, EventObject event, Dictionary oldProps) -
invokeFrameworkListenerCallback
private static void invokeFrameworkListenerCallback(Bundle bundle, EventListener l, EventObject event) -
invokeBundleListenerCallback
-
invokeServiceListenerCallback
private static void invokeServiceListenerCallback(Bundle bundle, EventListener l, Filter filter, Object acc, EventObject event, Dictionary oldProps) -
addListenerInfo
private static Map<BundleContext, List<ListenerInfo>> addListenerInfo(Map<BundleContext, List<ListenerInfo>> listeners, ListenerInfo info) -
updateListenerInfo
private static Map<BundleContext, List<ListenerInfo>> updateListenerInfo(Map<BundleContext, List<ListenerInfo>> listeners, int idx, ListenerInfo info) -
removeListenerInfo
private static Map<BundleContext, List<ListenerInfo>> removeListenerInfo(Map<BundleContext, List<ListenerInfo>> listeners, BundleContext bc, int idx) -
removeListenerInfos
private static Map<BundleContext, List<ListenerInfo>> removeListenerInfos(Map<BundleContext, List<ListenerInfo>> listeners, BundleContext bc) -
run
private static void run()This is the dispatching thread's main loop.
-