Package org.zeromq.ZMQ

Examples of org.zeromq.ZMQ.Poller


        backend.bind("tcp://*:5560");

        System.out.println("launch and connect broker.");

        //  Initialize poll set
        Poller items = new Poller (2);
        items.register(frontend, Poller.POLLIN);
        items.register(backend, Poller.POLLIN);

        boolean more = false;
        byte[] message;

        //  Switch messages between sockets
        while (!Thread.currentThread().isInterrupted()) {           
            //  poll and memorize multipart detection
            items.poll();

            if (items.pollin(0)) {
                while (true) {
                    // receive message
                    message = frontend.recv(0);
                    more = frontend.hasReceiveMore();

                    // Broker it
                    backend.send(message, more ? ZMQ.SNDMORE : 0);
                    if(!more){
                        break;
                    }
                }
            }
            if (items.pollin(1)) {
                while (true) {
                    // receive message
                    message = backend.recv(0);
                    more = backend.hasReceiveMore();
                    // Broker it
View Full Code Here


            kvMsg.dump();
      System.out.println("receiving " + kvMsg.getSequence());
            kvMsg.store(kvMap);
    }

    Poller poller = new Poller(1);
    poller.register(subscriber);

    Random random = new Random();

    // now apply pending updates, discard out-of-getSequence messages
    long alarm = System.currentTimeMillis() + 5000;
    while (true) {
      int rc = poller.poll(Math.max(0, alarm - System.currentTimeMillis()));
            if (rc == -1)
                break;              //  Context has been shut down

      if (poller.pollin(0)) {
                kvmsg kvMsg = kvmsg.recv(subscriber);
                if (kvMsg == null)
                    break;      //  Interrupted

                if (kvMsg.getSequence() > sequence) {
View Full Code Here

    backend.bind("tcp://*:5560");

    System.out.println("launch and connect broker.");

    //  Initialize poll set
    Poller items = context.poller(2);
    items.register(frontend, Poller.POLLIN);
    items.register(backend, Poller.POLLIN);

    boolean more = false;
    byte[] message;

    //  Switch messages between sockets
    while (!Thread.currentThread().isInterrupted()) {     
      //  poll and memorize multipart detection
      items.poll();

      if (items.pollin(0)) {
        while (true) {
          // receive message
          message = frontend.recv(0);
          more = frontend.hasReceiveMore();

          // Broker it
          backend.send(message, more ? ZMQ.SNDMORE : 0);
          if(!more){
            break;
          }
        }
      }
      if (items.pollin(1)) {
        while (true) {
          // receive message
          message = backend.recv(0);
          more = backend.hasReceiveMore();
          // Broker it
View Full Code Here


    while (!Thread.currentThread().isInterrupted()) {

      //  Initialize poll set
      Poller items = context.poller(2);

      //  Always poll for worker activity on backend
      items.register(backend, Poller.POLLIN);

      //  Poll front-end only if we have available workers
      if(worker_queue.size()>0)
        items.register(frontend, Poller.POLLIN);

      items.poll();

      //  Handle worker activity on backend
      if (items.pollin(0)) {

        //  Queue worker address for LRU routing
        worker_queue.add(new String(backend.recv(0)));

        //  Second frame is empty
        String empty = new String(backend.recv(0));
        assert empty.length()==0 | true;

        //  Third frame is READY or else a client reply address
        String client_addr = new String(backend.recv(0));

        //  If client reply, send rest back to frontend
        if (!client_addr.equals("READY")) {

          empty = new String(backend.recv(0));
          assert empty.length()==0 | true;

          String reply = new String(backend.recv(0));
          frontend.send(client_addr.getBytes(), ZMQ.SNDMORE);
          frontend.send("".getBytes(), ZMQ.SNDMORE);
          frontend.send(reply.getBytes(), 0);

          if (--client_nbr == 0)
            break;
        }

      }

      if (items.pollin(1)) {
        //  Now get next client request, route to LRU worker
        //  Client request is [address][empty][request]
        String client_addr = new String(frontend.recv(0));

        String empty = new String(frontend.recv(0));
View Full Code Here

    Socket receive = context.socket(ZMQ.SUB);
    receive.connect("tcp://localhost:5000");
    receive.subscribe("".getBytes());

    Poller poller = new Poller(0);
    poller.register(receive, Poller.POLLIN);

    System.out.print("What is your name? ");
    String name = in.nextLine();

    try {
View Full Code Here

        {
            Client self = new Client (ctx, pipe);

            while (!self.stopped && !Thread.currentThread().isInterrupted ()) {

                Poller items = ctx.getContext ().poller ();
                items.register (self.pipe, Poller.POLLIN);

                int serverNbr = 0;
                //  Rebuild pollset if we need to
                if (self.dirty) {
                    for (serverNbr = 0; serverNbr < self.nbrServers; serverNbr++) {
                        Server server = self.servers [serverNbr];
                        items.register (server.dealer, Poller.POLLIN);
                    }
                }

                if (items.poll (self.heartbeat) == -1)
                    break;              //  Context has been shut down

                //  Process incoming messages; either of these can
                //  throw events into the state machine
                if (items.pollin (0))
                    self.controlMessage ();

                //  Here, array of sockets to servers
                for (serverNbr = 0; serverNbr < self.nbrServers; serverNbr++) {
                    if (items.pollin (serverNbr + 1)) {
                        Server server = self.servers [serverNbr];
                        self.serverMessage (server);
                    }
                }
            }
View Full Code Here

        @Override
        public void run (Object [] args, ZContext ctx, Socket pipe)
        {
            Server self = new Server (ctx, pipe);

            Poller items = ctx.getContext ().poller ();
            items.register (self.pipe, Poller.POLLIN);
            items.register (self.router, Poller.POLLIN);

            self.monitor_at = System.currentTimeMillis () + self.monitor;
            while (!self.stopped && !Thread.currentThread ().isInterrupted ()) {
                //  Calculate tickless timer, up to interval seconds
                long tickless = System.currentTimeMillis () + self.monitor;
                tickless = clientTickless (self.clients, tickless);

                //  Poll until at most next timer event
                long rc = items.poll (tickless - System.currentTimeMillis ());
                if (rc == -1)
                    break;              //  Context has been shut down

                //  Process incoming message from either socket
                if (items.pollin (0))
                    self.controlMessage ();

                if (items.pollin (1))
                    self.clientMessage ();

                //  Send heartbeats to idle clients as needed
                clientPing (self.clients, self);
View Full Code Here

TOP

Related Classes of org.zeromq.ZMQ.Poller

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.