|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectedu.uci.isr.yancees.dispatcher.EventDispatcher
public class EventDispatcher
This class works as a wrapper around an event dispatcher implementation, It allows the registration of different adapters for to handle the content-based subscriptions of the system.
Constructor Summary | |
---|---|
protected |
EventDispatcher()
This constructor, as protected, prevents the direct instantiation of this object, and guarantees the singleton characteristic of this class. |
Method Summary | |
---|---|
void |
addAdapter(EventDispatcherAdapterInterface adp)
Configures the event dispatcher with the proper adapter. |
void |
connect()
Starts the connection with the notification servers that the adapter wrapps. |
void |
connect(java.lang.String address)
Connects and initializes the registered dispatchers This method is used by the server-specific adapters |
java.util.Vector |
getAdapterList()
|
static EventDispatcher |
getInstance()
The only way to access the unique instance of EventDispatcher is by using this access method |
void |
publish(EventInterface evnt)
Multithreaded publish implementation. |
void |
removeAdapter(EventDispatcherAdapterInterface adp)
|
void |
resumeDispatcher(EventDispatcherListenerInterface li)
resumes the delivery of notifications to the given subscriber n . |
void |
shutdownDispatcher()
closes this Dispatcher service access point. |
void |
subscribe(java.lang.String adapterName,
SubscriptionInterface sub,
EventDispatcherListenerInterface li)
This is a specific subscriber, that sends a message to the specfific adapter installed in the system |
void |
subscribe(SubscriptionInterface sub,
EventDispatcherListenerInterface li)
subscribes for sequences of events matching pattern p. |
void |
suspendDispatcher(EventDispatcherListenerInterface li)
suspends the delivery of notifications to the given subscriber li . |
void |
unsubscribe(EventDispatcherListenerInterface li)
cancels all the subscriptions posted by n. |
void |
unsubscribe(java.lang.String adapterName,
EventDispatcherListenerInterface li)
|
void |
unsubscribe(java.lang.String adapterName,
SubscriptionInterface sub,
EventDispatcherListenerInterface li)
|
void |
unsubscribe(SubscriptionInterface sub,
EventDispatcherListenerInterface li)
cancels the subscriptions, posted by li, whose subscripton sub' is covered by subscripiton p. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
protected EventDispatcher()
Method Detail |
---|
public static EventDispatcher getInstance()
public void addAdapter(EventDispatcherAdapterInterface adp)
public void removeAdapter(EventDispatcherAdapterInterface adp)
public void connect()
public void connect(java.lang.String address)
EventDispatcherInterface
connect
in interface EventDispatcherInterface
address
- is the address of the server.public java.util.Vector getAdapterList()
public void publish(EventInterface evnt) throws DispatcherException
publish
in interface EventDispatcherInterface
DispatcherException
Event
public void subscribe(SubscriptionInterface sub, EventDispatcherListenerInterface li) throws DispatcherException
EventDispatcherInterface
Notice that given the distributed nature of some implementations of Dispatcher interface, there exist race conditions that might affect the semantics of subscriptions. A subscriber might miss some notifications published before or while the subscription is processed by Dispatcher.
Also, keep in mind that the current implementation of Dispatcher does not enforce any temporal order for the delivery of notifications. This limitation might affect the recognition of patterns. For example, two notifications x and y, generated at time tx and ty respectively, with tx < ty, in that order matching a pattern P=(fx fy), might in fact reach the subscriber at times Tx and Ty, with Tx > Ty, in which case pattern P would not be matched.
subscribe
in interface EventDispatcherInterface
sub
- is the subscription patternli
- is the subscriber
DispatcherException
EventDispatcherInterface.unsubscribe(edu.uci.isr.yancees.SubscriptionInterface, edu.uci.isr.yancees.dispatcher.EventDispatcherListenerInterface)
public void unsubscribe(SubscriptionInterface sub, EventDispatcherListenerInterface li) throws DispatcherException
EventDispatcherInterface
Unsubscriptions might incurr in the same kind of race conditions as subscriptions. Dispatcher will stop sending notifications to the subscriber only after it has completed the processing of the unsubscription. Due to the distributed nature of some implementations of Dispatcher, this might result in some additional ``unsolicited'' notifications.
unsubscribe
in interface EventDispatcherInterface
li
- is the subscriber interface
DispatcherException
EventDispatcherInterface.subscribe(edu.uci.isr.yancees.SubscriptionInterface, edu.uci.isr.yancees.dispatcher.EventDispatcherListenerInterface)
public void unsubscribe(EventDispatcherListenerInterface li) throws DispatcherException
EventDispatcherInterface
unsubscribe
in interface EventDispatcherInterface
li
- is the subscriber
DispatcherException
EventDispatcherInterface.subscribe(edu.uci.isr.yancees.SubscriptionInterface, edu.uci.isr.yancees.dispatcher.EventDispatcherListenerInterface)
public void suspendDispatcher(EventDispatcherListenerInterface li) throws DispatcherException
EventDispatcherInterface
li
.
suspendDispatcher
in interface EventDispatcherInterface
li
- subscriber to be suspended
DispatcherException
public void resumeDispatcher(EventDispatcherListenerInterface li) throws DispatcherException
EventDispatcherInterface
n
.
resumeDispatcher
in interface EventDispatcherInterface
DispatcherException
public void shutdownDispatcher() throws DispatcherException
EventDispatcherInterface
shutdownDispatcher
in interface EventDispatcherInterface
DispatcherException
public void subscribe(java.lang.String adapterName, SubscriptionInterface sub, EventDispatcherListenerInterface li) throws DispatcherException
EventDispatcherInterface
subscribe
in interface EventDispatcherInterface
adapterName
- is the name of the adapter to specifically subscribe tosub
- is the subscriptionli
- is the listener interface
DispatcherException
public void unsubscribe(java.lang.String adapterName, SubscriptionInterface sub, EventDispatcherListenerInterface li) throws DispatcherException
unsubscribe
in interface EventDispatcherInterface
DispatcherException
public void unsubscribe(java.lang.String adapterName, EventDispatcherListenerInterface li) throws DispatcherException
unsubscribe
in interface EventDispatcherInterface
DispatcherException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |