package com.eucalyptus.component; import java.net.URI; import com.eucalyptus.bootstrap.Component; import com.eucalyptus.util.EucalyptusCloudException; import edu.ucsb.eucalyptus.msgs.BaseMessage; public interface Dispatcher { public abstract void dispatch( BaseMessage msg ); public abstract BaseMessage send( BaseMessage msg ) throws EucalyptusCloudException; @SuppressWarnings( "unchecked" ) public abstract <REPLY> REPLY send( BaseMessage message, Class<REPLY> replyType ) throws EucalyptusCloudException; public abstract Component getComponent( ); public abstract String getName( ); public abstract URI getAddress( ); public abstract boolean isLocal( ); public abstract String toString( ); }