Search in sources :

Example 66 with Socket

use of org.zeromq.ZMQ.Socket in project jeromq by zeromq.

the class TestZContext method testZContext.

@Test
public void testZContext() {
    ZContext ctx = new ZContext();
    Socket s1 = ctx.createSocket(ZMQ.PAIR);
    Socket s2 = ctx.createSocket(ZMQ.XREQ);
    Socket s3 = ctx.createSocket(ZMQ.REQ);
    Socket s4 = ctx.createSocket(ZMQ.REP);
    Socket s5 = ctx.createSocket(ZMQ.PUB);
    Socket s6 = ctx.createSocket(ZMQ.SUB);
    ctx.close();
    Assert.assertEquals(0, ctx.getSockets().size());
}
Also used : Socket(org.zeromq.ZMQ.Socket) Test(org.junit.Test)

Example 67 with Socket

use of org.zeromq.ZMQ.Socket in project jeromq by zeromq.

the class TestZContext method testZContextSocketCloseBeforeContextClose.

@Test
public void testZContextSocketCloseBeforeContextClose() {
    ZContext ctx = new ZContext();
    Socket s1 = ctx.createSocket(ZMQ.PUSH);
    Socket s2 = ctx.createSocket(ZMQ.PULL);
    s1.close();
    s2.close();
    ctx.close();
}
Also used : Socket(org.zeromq.ZMQ.Socket) Test(org.junit.Test)

Example 68 with Socket

use of org.zeromq.ZMQ.Socket in project jeromq by zeromq.

the class TestZLoop method testZLoop.

@Test
public void testZLoop() {
    int rc = 0;
    // setUp() should create the context
    assert (ctx != null);
    ZLoop loop = new ZLoop(ctx);
    assert (loop != null);
    ZLoop.IZLoopHandler timerEvent = new ZLoop.IZLoopHandler() {

        @Override
        public int handle(ZLoop loop, PollItem item, Object arg) {
            ((Socket) arg).send("PING", 0);
            return 0;
        }
    };
    ZLoop.IZLoopHandler socketEvent = new ZLoop.IZLoopHandler() {

        @Override
        public int handle(ZLoop loop, PollItem item, Object arg) {
            received = ((Socket) arg).recvStr(0);
            //  Just end the reactor
            return -1;
        }
    };
    //  After 10 msecs, send a ping message to output
    loop.addTimer(10, 1, timerEvent, input);
    //  When we get the ping message, end the reactor
    PollItem pollInput = new PollItem(output, Poller.POLLIN);
    rc = loop.addPoller(pollInput, socketEvent, output);
    Assert.assertEquals(0, rc);
    loop.start();
    loop.removePoller(pollInput);
    Assert.assertEquals("PING", received);
}
Also used : PollItem(org.zeromq.ZMQ.PollItem) Socket(org.zeromq.ZMQ.Socket) Test(org.junit.Test)

Example 69 with Socket

use of org.zeromq.ZMQ.Socket in project jeromq by zeromq.

the class TestZLoop method testZLoopAddTimerFromTimer.

@Test
public void testZLoopAddTimerFromTimer() {
    int rc = 0;
    ZLoop loop = new ZLoop(ctx);
    assert (loop != null);
    ZLoop.IZLoopHandler timerEvent = new ZLoop.IZLoopHandler() {

        @Override
        public int handle(ZLoop loop, PollItem item, Object arg) {
            final long now = System.currentTimeMillis();
            ZLoop.IZLoopHandler timerEvent2 = new ZLoop.IZLoopHandler() {

                @Override
                public int handle(ZLoop loop, PollItem item, Object arg) {
                    final long now2 = System.currentTimeMillis();
                    assert (now2 >= now + 10);
                    ((Socket) arg).send("PING", 0);
                    return 0;
                }
            };
            loop.addTimer(10, 1, timerEvent2, arg);
            return 0;
        }
    };
    ZLoop.IZLoopHandler socketEvent = new ZLoop.IZLoopHandler() {

        @Override
        public int handle(ZLoop loop, PollItem item, Object arg) {
            received = ((Socket) arg).recvStr(0);
            //  Just end the reactor
            return -1;
        }
    };
    //  After 10 msecs, fire a timer that registers
    //  another timer that sends the ping message
    loop.addTimer(10, 1, timerEvent, input);
    //  When we get the ping message, end the reactor
    PollItem pollInput = new PollItem(output, Poller.POLLIN);
    rc = loop.addPoller(pollInput, socketEvent, output);
    Assert.assertEquals(0, rc);
    loop.start();
    loop.removePoller(pollInput);
    Assert.assertEquals("PING", received);
}
Also used : PollItem(org.zeromq.ZMQ.PollItem) Socket(org.zeromq.ZMQ.Socket) Test(org.junit.Test)

Example 70 with Socket

use of org.zeromq.ZMQ.Socket in project jeromq by zeromq.

the class TestZMQ method testEventListening.

@Test
public void testEventListening() {
    Context context = ZMQ.context(1);
    ZMQ.Event event;
    Socket socket = context.socket(ZMQ.REP);
    Socket monitor = context.socket(ZMQ.PAIR);
    monitor.setReceiveTimeOut(100);
    assertTrue(socket.monitor("inproc://monitor.socket", ZMQ.EVENT_LISTENING));
    monitor.connect("inproc://monitor.socket");
    socket.bindToRandomPort("tcp://127.0.0.1");
    event = ZMQ.Event.recv(monitor);
    assertNotNull("No event was received", event);
    assertEquals(ZMQ.EVENT_LISTENING, event.getEvent());
    socket.close();
    monitor.close();
    context.term();
}
Also used : Context(org.zeromq.ZMQ.Context) Socket(org.zeromq.ZMQ.Socket) Test(org.junit.Test)

Aggregations

Socket (org.zeromq.ZMQ.Socket)84 Context (org.zeromq.ZMQ.Context)32 ZContext (org.zeromq.ZContext)30 Test (org.junit.Test)26 Poller (org.zeromq.ZMQ.Poller)20 ZMsg (org.zeromq.ZMsg)14 Random (java.util.Random)13 ZFrame (org.zeromq.ZFrame)13 PollItem (org.zeromq.ZMQ.PollItem)6 ByteBuffer (java.nio.ByteBuffer)4 ArrayList (java.util.ArrayList)4 SelectableChannel (java.nio.channels.SelectableChannel)3 HashMap (java.util.HashMap)3 IOException (java.io.IOException)2 LinkedList (java.util.LinkedList)2 Entry (java.util.Map.Entry)2 Ignore (org.junit.Ignore)2 Actor (org.zeromq.ZActor.Actor)2 BufferedWriter (java.io.BufferedWriter)1 File (java.io.File)1