package io.muoncore.transport; import io.muoncore.Discovery; import io.muoncore.channel.ChannelConnection; import io.muoncore.channel.support.Scheduler; import io.muoncore.codec.Codecs; import io.muoncore.exception.MuonTransportFailureException; import io.muoncore.exception.NoSuchServiceException; import io.muoncore.message.MuonInboundMessage; import io.muoncore.message.MuonOutboundMessage; import io.muoncore.protocol.ServerStacks; import java.net.URI; public interface MuonTransport { void shutdown(); void start( Discovery discovery, ServerStacks serverStacks, Codecs codecs, Scheduler scheduler) throws MuonTransportFailureException; String getUrlScheme(); URI getLocalConnectionURI(); boolean canConnectToService(String name); ChannelConnection<MuonOutboundMessage, MuonInboundMessage> openClientChannel( String serviceName, String protocol) throws NoSuchServiceException, MuonTransportFailureException; }