package ren.yale.java.event; import io.vertx.core.buffer.Buffer; import io.vertx.core.eventbus.MessageCodec; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; /** * Yale * * 2018-01-29 17:08 **/ public class EventMessageCodec implements MessageCodec<EventMessage,EventMessage> { @Override public void encodeToWire(Buffer buffer, EventMessage eventMessage) { try { ByteArrayOutputStream b = new ByteArrayOutputStream(); ObjectOutputStream ob = new ObjectOutputStream(b); ob.writeObject(eventMessage); buffer.appendBytes(b.toByteArray()); }catch (Exception e){ } } @Override public EventMessage decodeFromWire(int i, Buffer buffer) { EventMessage eventMessage = null; try { ByteArrayInputStream b = new ByteArrayInputStream(buffer.getBytes()); ObjectInputStream oi = new ObjectInputStream(b); eventMessage = (EventMessage) oi.readObject(); }catch (Exception e){ } return eventMessage; } @Override public EventMessage transform(EventMessage eventMessage) { return eventMessage; } @Override public String name() { return "EventMessage"; } @Override public byte systemCodecID() { return -1; } }