package io.muoncore.protocol;
import io.muoncore.channel.ChannelConnection;
import io.muoncore.descriptors.ProtocolDescriptor;
import io.muoncore.descriptors.SchemaDescriptor;
import io.muoncore.descriptors.SchemasDescriptor;
import io.muoncore.message.MuonInboundMessage;
import io.muoncore.message.MuonOutboundMessage;
import java.util.Map;
/**
* The server side of a communication protocol.
* Channels will be established from a remote by the transport system based
* on the incoming requested protocol.
* <p>
* Often paired with some kind of API to configure the stack.
*/
public interface ServerProtocolStack {
Map<String, SchemaDescriptor> getSchemasFor(String endpoint);
ProtocolDescriptor getProtocolDescriptor();
ChannelConnection<MuonInboundMessage, MuonOutboundMessage> createChannel();
}