package cloudeventbus.server;
import cloudeventbus.Subject;
import cloudeventbus.codec.PublishFrame;
import io.netty.channel.Channel;
import java.net.SocketAddress;
/**
* @author Mike Heath <elcapo@gmail.com>
*/
public class ServerPeer implements Peer {
private final long id;
private final Channel channel;
public ServerPeer(long id, Channel channel) {
this.id = id;
this.channel = channel;
}
@Override
public long getId() {
return id;
}
@Override
public SocketAddress getAddress() {
// TODO We need to get the right remote address from the server.
return channel.remoteAddress();
}
@Override
public void publish(Subject subject, Subject replySubject, String body) {
channel.write(new PublishFrame(subject, replySubject, body));
}
@Override
public void close() {
channel.close();
}
@Override
public boolean isConnected() {
return channel.isActive();
}
}