com.netflix.curator.framework.recipes.queue
Class SimpleDistributedQueue

java.lang.Object
  extended by com.netflix.curator.framework.recipes.queue.SimpleDistributedQueue

public class SimpleDistributedQueue
extends java.lang.Object

Drop in replacement for: org.apache.zookeeper.recipes.queue.DistributedQueue that is part of the ZooKeeper distribution

This class is data compatible with the ZK version. i.e. it uses the same naming scheme so it can read from an existing queue


Constructor Summary
SimpleDistributedQueue(com.netflix.curator.framework.CuratorFramework client, java.lang.String path)
           
 
Method Summary
 byte[] element()
          Return the head of the queue without modifying the queue.
 boolean offer(byte[] data)
          Inserts data into queue.
 byte[] peek()
          Returns the data at the first element of the queue, or null if the queue is empty.
 byte[] poll()
          Attempts to remove the head of the queue and return it.
 byte[] poll(long timeout, java.util.concurrent.TimeUnit unit)
          Retrieves and removes the head of this queue, waiting up to the specified wait time if necessary for an element to become available.
 byte[] remove()
          Attempts to remove the head of the queue and return it.
 byte[] take()
          Removes the head of the queue and returns it, blocks until it succeeds.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SimpleDistributedQueue

public SimpleDistributedQueue(com.netflix.curator.framework.CuratorFramework client,
                              java.lang.String path)
Parameters:
client - the client
path - path to store queue nodes
Method Detail

element

public byte[] element()
               throws java.lang.Exception
Return the head of the queue without modifying the queue.

Returns:
the data at the head of the queue.
Throws:
java.lang.Exception - errors
java.util.NoSuchElementException - if the queue is empty

remove

public byte[] remove()
              throws java.lang.Exception
Attempts to remove the head of the queue and return it.

Returns:
The former head of the queue
Throws:
java.lang.Exception - errors
java.util.NoSuchElementException - if the queue is empty

take

public byte[] take()
            throws java.lang.Exception
Removes the head of the queue and returns it, blocks until it succeeds.

Returns:
The former head of the queue
Throws:
java.lang.Exception - errors

offer

public boolean offer(byte[] data)
              throws java.lang.Exception
Inserts data into queue.

Parameters:
data - the data
Returns:
true if data was successfully added
Throws:
java.lang.Exception - errors

peek

public byte[] peek()
            throws java.lang.Exception
Returns the data at the first element of the queue, or null if the queue is empty.

Returns:
data at the first element of the queue, or null.
Throws:
java.lang.Exception - errors

poll

public byte[] poll(long timeout,
                   java.util.concurrent.TimeUnit unit)
            throws java.lang.Exception
Retrieves and removes the head of this queue, waiting up to the specified wait time if necessary for an element to become available.

Parameters:
timeout - how long to wait before giving up, in units of unit
unit - a TimeUnit determining how to interpret the timeout parameter
Returns:
the head of this queue, or null if the specified waiting time elapses before an element is available
Throws:
java.lang.Exception - errors

poll

public byte[] poll()
            throws java.lang.Exception
Attempts to remove the head of the queue and return it. Returns null if the queue is empty.

Returns:
Head of the queue or null.
Throws:
java.lang.Exception - errors