package io.muoncore.transport.sharedsocket.client; import io.muoncore.channel.ChannelConnection; import io.muoncore.codec.Codecs; import io.muoncore.message.MuonInboundMessage; import io.muoncore.message.MuonOutboundMessage; import io.muoncore.transport.sharedsocket.client.messages.SharedChannelOutboundMessage; import java.util.UUID; public class SharedSocketChannelConnection implements ChannelConnection<MuonOutboundMessage, MuonInboundMessage> { private ChannelFunction<MuonInboundMessage> inboundFunction; private ChannelFunction<SharedChannelOutboundMessage> outboundFunction; private String channelId = UUID.randomUUID().toString(); private Codecs codecs; public SharedSocketChannelConnection(Codecs codecs, ChannelConnection.ChannelFunction<SharedChannelOutboundMessage> outboundFunction) { this.outboundFunction = outboundFunction; this.codecs = codecs; } @Override public void receive(ChannelFunction<MuonInboundMessage> function) { this.inboundFunction = function; } @Override public void send(MuonOutboundMessage message) { SharedChannelOutboundMessage sharedMessage = new SharedChannelOutboundMessage(channelId, message); outboundFunction.apply(sharedMessage); } public void sendInbound(MuonInboundMessage message) { inboundFunction.apply(message); } public String getChannelId() { return channelId; } @Override public void shutdown() { } }