edu.uci.isr.yancees.server.dispatcher.switcher
Class FastSwitcherAdapter

java.lang.Object
  extended byedu.uci.isr.yancees.server.dispatcher.switcher.FastSwitcherAdapter
All Implemented Interfaces:
EventDispatcherAdapterInterface

public class FastSwitcherAdapter
extends java.lang.Object
implements EventDispatcherAdapterInterface

Author:
Roberto Silveira Silva Filho [rsilvafi@ics.uci.edu] To change the template for this generated type comment go to Window>Preferences>Java>Code Generation>Code and Comments

Field Summary
static java.lang.String ADAPTER_NAME
           
static java.lang.String ALL_TAG
           
 boolean print
           
 
Constructor Summary
FastSwitcherAdapter()
          constructor
 
Method Summary
 void connect(java.lang.String address)
          Connects and initializes the registered dispatchers This method is used by the server-specific adapters
 java.lang.String getAdapterName()
           
 void publish(EventInterface evnt)
           
 void resumeDispatcher(EventDispatcherListenerInterface li)
          resumes the delivery of notifications to the given subscriber n.
 void shutdownDispatcher()
          closes this Dispatcher service access point.
 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(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
 

Field Detail

ADAPTER_NAME

public static final java.lang.String ADAPTER_NAME
See Also:
Constant Field Values

ALL_TAG

public static final java.lang.String ALL_TAG
See Also:
Constant Field Values

print

public boolean print
Constructor Detail

FastSwitcherAdapter

public FastSwitcherAdapter()
constructor

Method Detail

publish

public void publish(EventInterface evnt)
             throws DispatcherException
Specified by:
publish in interface EventDispatcherAdapterInterface
Throws:
DispatcherException
See Also:
Event

subscribe

public void subscribe(SubscriptionInterface sub,
                      EventDispatcherListenerInterface li)
               throws DispatcherException
Description copied from interface: EventDispatcherAdapterInterface
subscribes for sequences of events matching pattern p.

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.

Specified by:
subscribe in interface EventDispatcherAdapterInterface
Parameters:
li - is the subscriber
sub - is the subscription pattern
Throws:
DispatcherException
See Also:
EventDispatcherAdapterInterface.unsubscribe(edu.uci.isr.yancees.SubscriptionInterface, edu.uci.isr.yancees.dispatcher.EventDispatcherListenerInterface)

unsubscribe

public void unsubscribe(SubscriptionInterface sub,
                        EventDispatcherListenerInterface li)
                 throws DispatcherException
Description copied from interface: EventDispatcherAdapterInterface
cancels the subscriptions, posted by li, whose subscripton sub' is covered by subscripiton p.

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.

Specified by:
unsubscribe in interface EventDispatcherAdapterInterface
Parameters:
li - is the subscriber interface
Throws:
DispatcherException
See Also:
EventDispatcherAdapterInterface.subscribe(edu.uci.isr.yancees.SubscriptionInterface, edu.uci.isr.yancees.dispatcher.EventDispatcherListenerInterface)

unsubscribe

public void unsubscribe(EventDispatcherListenerInterface li)
                 throws DispatcherException
Description copied from interface: EventDispatcherAdapterInterface
cancels all the subscriptions posted by n.

Specified by:
unsubscribe in interface EventDispatcherAdapterInterface
Parameters:
li - is the subscriber
Throws:
DispatcherException
See Also:
EventDispatcherAdapterInterface.subscribe(edu.uci.isr.yancees.SubscriptionInterface, edu.uci.isr.yancees.dispatcher.EventDispatcherListenerInterface)

suspendDispatcher

public void suspendDispatcher(EventDispatcherListenerInterface li)
                       throws DispatcherException
Description copied from interface: EventDispatcherAdapterInterface
suspends the delivery of notifications to the given subscriber li.

Specified by:
suspendDispatcher in interface EventDispatcherAdapterInterface
Parameters:
li - subscriber to be suspended
Throws:
DispatcherException

resumeDispatcher

public void resumeDispatcher(EventDispatcherListenerInterface li)
                      throws DispatcherException
Description copied from interface: EventDispatcherAdapterInterface
resumes the delivery of notifications to the given subscriber n.

Specified by:
resumeDispatcher in interface EventDispatcherAdapterInterface
Throws:
DispatcherException

shutdownDispatcher

public void shutdownDispatcher()
                        throws DispatcherException
Description copied from interface: EventDispatcherAdapterInterface
closes this Dispatcher service access point. This method releases any system resources associated with the access point. In case this access point is connected to other Dispatcher servers, this method will properly disconnect it.

Specified by:
shutdownDispatcher in interface EventDispatcherAdapterInterface
Throws:
DispatcherException

connect

public void connect(java.lang.String address)
             throws DispatcherException
Description copied from interface: EventDispatcherAdapterInterface
Connects and initializes the registered dispatchers This method is used by the server-specific adapters

Specified by:
connect in interface EventDispatcherAdapterInterface
Parameters:
address - is the address of the server.
Throws:
DispatcherException

getAdapterName

public java.lang.String getAdapterName()
Specified by:
getAdapterName in interface EventDispatcherAdapterInterface
Returns:
a name that identifies this adapter.