package org.yamcs.artemis;
import org.apache.activemq.artemis.api.core.client.ClientMessage;
import org.yamcs.api.YamcsApiException;
import org.yamcs.api.artemis.Protocol;
import org.yamcs.protobuf.Yamcs.Event;
import org.yamcs.yarch.Tuple;
import org.yamcs.yarch.TupleDefinition;
public class EventTupleTranslator implements TupleTranslator {
@Override
public ClientMessage buildMessage(ClientMessage msg, Tuple tuple) {
Event event=(Event)tuple.getColumn("body");
Protocol.encode(msg, event);
return msg;
}
@Override
public Tuple buildTuple(TupleDefinition tdef, ClientMessage msg) {
try {
Event event=(Event)Protocol.decode(msg, Event.newBuilder());
Tuple t=new Tuple(tdef, new Object[]{event.getGenerationTime(),
event.getSource(), event.getSeqNumber(), event});
return t;
} catch (YamcsApiException e) {
throw new IllegalArgumentException(e.toString());
}
}
}