import java.net.InetSocketAddress; import java.net.SocketAddress; import multiplexer.jmx.client.ConnectException; import multiplexer.jmx.client.IncomingMessageData; import multiplexer.jmx.client.JmxClient; import multiplexer.jmx.client.SendingMethod; import multiplexer.jmx.exceptions.NoPeerForTypeException; import multiplexer.jmx.exceptions.OperationFailedException; import multiplexer.jmx.server.JmxServer; import multiplexer.protocol.Protocol.MultiplexerMessage; import org.signalml.multiplexer.protocol.SvarogConstants; import org.signalml.multiplexer.protocol.SvarogProtocol.Sample; import org.signalml.multiplexer.protocol.SvarogProtocol.SampleVector; import com.google.protobuf.ByteString; import com.google.protobuf.InvalidProtocolBufferException; public class TestClient { /** * Send a message to {@link EchoBackend} via a {@link JmxServer} run by * {@link JmxServerRunner}. * * @throws NoPeerForTypeException * @throws OperationFailedException * @throws InterruptedException * @throws ConnectException * @throws InvalidProtocolBufferException */ public static void main(String[] args) throws OperationFailedException, NoPeerForTypeException, InterruptedException, ConnectException, InvalidProtocolBufferException { System.out.println("Connecting ..."); JmxClient client = new JmxClient(SvarogConstants.PeerTypes.STREAM_RECEIVER); SocketAddress socketAddress = new InetSocketAddress("127.0.0.1", 31889); client.connect(socketAddress); System.out.println("Connected!"); System.out.println("Sending ..."); ByteString message = ByteString.copyFromUtf8("1 2 3"); MultiplexerMessage mm = client.createMessage(message, SvarogConstants.MessageTypes.SIGNAL_STREAMER_START); client.send(mm, SendingMethod.THROUGH_ONE); System.out.println("Sent!"); System.out.println("Receiving ..."); IncomingMessageData imsg = client.receive(); MultiplexerMessage mmsg = imsg.getMessage(); System.out.println("Received!"); int type = mmsg.getType(); System.out.println(type); if (type != SvarogConstants.MessageTypes.STREAMED_SIGNAL_MESSAGE) System.out.println("Bad response!"); ByteString bstr = mmsg.getMessage(); System.out.println("stream size: " + bstr.size()); SampleVector sv = SampleVector.parseFrom(bstr); for (int i=0; i<sv.getSamplesCount(); i++) { Sample s = sv.getSamples(i); double t = s.getTimestamp(); double v = s.getValue(); System.out.println("sample: " + t + ":" + v); } System.out.println("Sending ..."); mm = client.createMessage(message, SvarogConstants.MessageTypes.SIGNAL_STREAMER_STOP); client.send(mm, SendingMethod.THROUGH_ONE); System.out.println("Sent!"); client.shutdown(); } }